Developer setup¶
The app has two distinct components, the Go backend and the VueJS frontend. In the dev environment, both are run independently.
Pre-requisites¶
gonodejs(if you are working on the frontend) andyarn- Postgres database. If there is no local installation, the demo docker DB can be used for development (
docker compose up demo-db)
First time setup¶
git clone https://github.com/knadh/listmonk.git. The project uses go.mod, so it's best to clone it outside the Go src path.
- Copy
config.toml.sampleasconfig.tomland add your config. make distto build the listmonk binary. Once the binary is built, run./listmonk --installto run the DB setup. For subsequent dev runs, usemake run.
mailhog is an excellent standalone mock SMTP server (with a UI) for testing and dev.
Running the dev environment¶
- Run
make runto start the listmonk dev server on:9000. - Run
make run-frontendto start the Vue frontend in dev mode using yarn on:8080. All/api/*calls are proxied to the app running on:9000. Refer to the frontend README for an overview on how the frontend is structured. - Visit
http://localhost:8080
Production build¶
Run make dist to build the Go binary, build the Javascript frontend, and embed the static assets producing a single self-contained binary, listmonk