diff --git a/Makefile b/Makefile index c8816e7..67ed766 100644 --- a/Makefile +++ b/Makefile @@ -6,8 +6,8 @@ COMMIT_DATE := $(shell git show -s --format=%ci ${HASH}) BUILD_DATE := $(shell date '+%Y-%m-%d %H:%M:%S') VERSION := ${HASH} (${COMMIT_DATE}) -.PHONY: build_frontend -build_frontend: +.PHONY: build-frontend +build-frontend: cd frontend/my && yarn install && yarn build .PHONY: quickdev diff --git a/README.dev.md b/README.dev.md new file mode 100644 index 0000000..1bc28e7 --- /dev/null +++ b/README.dev.md @@ -0,0 +1,84 @@ +# 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 +- subscriber status "Enabled" -> "Active" +- 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. diff --git a/README.md b/README.md index 17df269..a2e7427 100644 --- a/README.md +++ b/README.md @@ -1,46 +1,3 @@ # listmonk -Full fledged, high performance newsletter and mailing list manager - -# Development - -Install dependencies - -```bash -make deps -``` - -Build frontend assets - -```bash -make build_frontend -``` - -Create config file and edit the necessary params - -```bash -cp config.toml.sample config.toml -``` - -Use [stuffbin](https://github.com/knadh/stuffbin) to package static assets and build binary - -```bash -make build -``` - -Binary comes up with installer to setup schema and superadmin - -```bash -./listmonk --install -``` - -Run binary -```bash -./listmonk -``` - -For new developers, you can also run all at once using `quickdev` option. - -```bash -make quickdev -``` +See [developer README](README.dev.md).