84 lines
1.7 KiB
Markdown
84 lines
1.7 KiB
Markdown
|
# 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.
|
||
|
3. Run `make deps` to install React / frontend dependencies
|
||
|
|
||
|
# Dev environment
|
||
|
|
||
|
### 1. Run the backend
|
||
|
|
||
|
`make run`
|
||
|
|
||
|
### 2. Run the frontend
|
||
|
|
||
|
`cd frontend/my` 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.
|
||
|
|
||
|
---
|
||
|
|
||
|
# 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.
|