Refactor README for publishing

This commit is contained in:
Kailash Nadh 2019-06-26 16:05:50 +05:30
parent 95038d3f3c
commit c952b7a2e8
3 changed files with 45 additions and 84 deletions

1
.gitignore vendored
View file

@ -4,3 +4,4 @@ frontend/yarn.lock
.vscode/
config.toml
node_modules

View file

@ -1,82 +0,0 @@
# Dev
There are two independent components, the Go backend and the React frontend. In the dev environment, both have to run.
### First time setup
1. Write `config.toml`
2. Run `listmonk --install` to do the DB setup.
# Dev environment
### 1. Run the backend
`make deps` (once, to install dependencies) and then `make run`
### 2. Run the frontend
`cd frontend` and `yarn start`
### 3. Setup an Nginx proxy endpoint
```
# listmonk
server {
listen 9001;
# Proxy all /api/* requests to the Go backend.
location /api {
proxy_pass http://localhost:9000;
}
# Proxy everything else to the yarn server
# that's running the React frontend.
location / {
proxy_pass http://localhost:3000;
}
}
```
Visit `http://localhost:9001` to access the frontend running in development mode where Javascript updates are pushed live.
# Production
1. To build the Javascript frontend, run `make build-frontend`. This only needs to be run if the frontend has changed.
2. `make build` builds a single production ready binary with all static assets embeded in it. Make sure to have installed the dependencies with `make deps` once.
---
# TODO: Essentials for v0.10
- update list time after import
- dockerize
- add an http call to do version checks and alerts
- make the design responsive
- error pause should be % and not absolute
- views for faster dashboard analytics
- bounce processing
- docs
- tests
### Features
- running campaigns widget on the dashboard
- analytics
- GDPR
# Features
Features
- userdb
- campaign error logs
- upgrade + migration
- views for fast analytics widgets
- tab navigation in links and buttons
- inject semver into build version
- permalink for lists
- props.config race condition
- app.Messenger is flawed. Add multi-messenger support to app as well.

View file

@ -1,3 +1,45 @@
# listmonk
![listmonk](https://user-images.githubusercontent.com/547147/60170989-41681f00-9827-11e9-93a8-a871a40be913.png)
See [developer README](README.dev.md).
> listmonk is **alpha** software and may change and break. Use with caution. That said, it has been in active use at [zerodha.com](https://zerodha.com) for several months where it has processed hundreds of campaigns and tens of millions of e-mails.
listmonk is a standalone newsletter and mailing list manager written in Go. It is fast, performant, and comes as a single binary. It uses a PostgreSQL database as its data store.
### Installation and use
- Download the [latest release](https://github.com/knadh/listmonk/releases) and extract the listmonk binary somewhere.
- Copy `config.toml.sample` to `config.toml` and add your configuration (SMTP and Postgres DB credentials primarily).
- `./listmonk --install` to setup the DB.
- Visit `http://localhost:9000`.
- Since there is no user auth yet, it's best to put listmonk behind a proxy like Nginx and setup basicauth on all endpoints except for the few endpoints that need to be public. Here is a [sample nginx config](https://github.com/knadh/listmonk/wiki/Production-Nginx-config) for production use.
### Current features
- Admin dashboard
- Multiple public and private lists
- Fast bulk subscriber import
- Custom subscriber attributes
- Subscriber querying and segmentation with ad-hoc SQL
- Rich Go templates and WYSIWYG editor
- Media gallery
- Multi-threaded multi-SMTP e-mail queues for fast campaign delivery
- HTTP/JSON APIs for everything
- Clicks and view tracking
- and more ...
### Todo
- DB migrations
- Bounce tracking
- User auth, management, permissions
- Privacy features for subscribers (Download and wipe all tracking data)
- Ability to write raw campaign logs to a target
- Analytics views and reports
- Make Ant design UI components responsive
- Better widgets on dashboard
- Tests!
## Developers
listmonk is free, open source software licensed under AGPLv3. There are a few of essential features such as user auth/management and bounce tracking that are currently missing. Contributions are welcome.
The backend is written in Go and the frontend is in React with Ant Design for UI. See [developer setup](https://github.com/knadh/listmonk/wiki/Developer-setup) to get started.