Refactor README for publishing
This commit is contained in:
parent
95038d3f3c
commit
c952b7a2e8
3 changed files with 45 additions and 84 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,3 +4,4 @@ frontend/yarn.lock
|
||||||
.vscode/
|
.vscode/
|
||||||
|
|
||||||
config.toml
|
config.toml
|
||||||
|
node_modules
|
||||||
|
|
|
@ -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.
|
|
46
README.md
46
README.md
|
@ -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.
|
||||||
|
|
Loading…
Reference in a new issue