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¶
go
nodejs
(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.sample
asconfig.toml
and add your config. make deps
(to install Go dependencies for the backend and the JS dependencies for the frontend).make build-frontend
(to setup thefrontend/dist
directory).make build
to build the listmonk binary. Once the binary is built, run./listmonk --install
to run the DB setup.
mailhog is an excellent standalone mock SMTP server (with a UI) for testing and dev.
Running the dev environment¶
- Run
make run
to start the listmonk Go server on:9000
. - Run
make run-frontend
to 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