High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.
Find a file
Kailash Nadh 562e52cd22 Introduce LISTMONK_ADMIN_API_USER to --install. Closes #2314, #2322.
- During install, listmonk now accepts the env `LISTMONK_ADMIN_API_USER`
  and creates an API user (with username $LISTMONK_ADMIN_API_USER)
  with full superadmin permissions. This requires LISTMONK_ADMIN_USER and
  LISTMONK_ADMIN_API_PASSWORD to be set so that that there's always a superadmin
  user to avoid bad states, mainly: bot superadmin exists, but no admin user
  exists, leaving the installation perpetually open with the superadmin user
  creation UI on the first login.
  The API user's token is printed to stderr in the following format:
  `export LISTMONK_ADMIN_API_TOKEN="7I81VSd90UWhKDj5Kq9c6YopToRduyDF"`
  This can be redirected to a file with ./listmonk 2> /tmp/token or captured
  directly and then source()'d.
- Add new function `core.GetRole(id)`.
- Fix `at least one super admin` query in user deletion.
2025-04-10 13:06:04 +05:30
.devcontainer Fix outdated docker local dev suite (#2200) 2024-12-10 23:05:12 +05:30
.github Update Go version to v1.24.1 2025-03-18 20:22:44 +05:30
cmd Introduce LISTMONK_ADMIN_API_USER to --install. Closes #2314, #2322. 2025-04-10 13:06:04 +05:30
dev Fix outdated docker local dev suite (#2200) 2024-12-10 23:05:12 +05:30
docs Add Nuxt.js module to Supported Libraries Lists (#2371) 2025-03-27 00:18:40 +05:30
frontend Bump vite from 5.4.15 to 5.4.17 in /frontend (#2391) 2025-04-06 15:33:41 +05:30
i18n Fix inconsistent behaviour in campaign scheduling on the UI. 2025-03-31 13:00:51 +05:30
internal Introduce LISTMONK_ADMIN_API_USER to --install. Closes #2314, #2322. 2025-04-10 13:06:04 +05:30
models Turn notifs into a special stateful global singleton package, removing clunky deps. 2025-04-05 22:45:19 +05:30
scripts Update i18n refresh script to remove deleted base keys from all other files. 2025-03-29 14:07:26 +05:30
static fix(static): no matching closing anchor tag 2025-01-24 11:02:21 +13:00
.dockerignore feat: Add blobstore package 2019-10-31 11:25:31 +05:30
.gitattributes Added end of line config for git 2022-01-26 09:50:06 +01:00
.gitignore feat: Add separate config for demo setup, tweak docs 2020-07-08 22:38:31 +05:30
.goreleaser.yml Remove obsolete demo file reference from Docker build commands. 2024-10-27 18:55:21 +05:30
config.toml.sample Remove admin user/password from sample config generation. 2024-10-13 16:59:52 +05:30
CONTRIBUTING.md Fix link to the docs repo. 2023-03-26 11:17:15 +05:30
docker-compose.yml Change the docker-compose example to bind Postgres locally. Closes #2357. 2025-03-20 11:07:06 +05:30
docker-entrypoint.sh Don't fail on chown in Docker entry script. Closes #2104. 2024-10-28 12:56:49 +05:30
Dockerfile #2114 - Fix issue of wrong platform used during docker build (#2123) 2024-10-30 10:13:00 +05:30
go.mod Upgrade smtppool to v2 and add support for concrete SSL options. 2025-03-29 17:05:03 +05:30
go.sum Upgrade smtppool to v2 and add support for concrete SSL options. 2025-03-29 17:05:03 +05:30
LICENSE Refactor and add new build routines 2019-07-09 15:57:04 +05:30
listmonk-simple.service Update listmonk-simple.service - add optional log file (#1640) 2024-01-09 23:41:14 +05:30
listmonk@.service Enable extra system calls in systemd service (#1309) 2023-07-12 19:42:54 +05:30
Makefile Update gorelease command and remove deprecated flags. 2024-10-27 18:14:32 +05:30
permissions.json Introduce per-campaign filter permissions. Closes #2325. 2025-03-31 16:39:42 +05:30
project.inlang.json fix: update inlang settings (#1529) 2023-09-20 14:19:08 +05:30
queries.sql Introduce LISTMONK_ADMIN_API_USER to --install. Closes #2314, #2322. 2025-04-10 13:06:04 +05:30
README.md Fix docker-compose curl command examples. 2024-10-28 00:16:26 +05:30
schema.sql Add support for domain allowlists in addition to blocklists. Closes #2230. 2025-03-29 23:31:34 +05:30
VERSION Add a VERSION file for git-archive export 2021-08-14 13:41:19 +05:30

listmonk-logo

listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL (⩾ 12) database as its data store.

listmonk-dashboard

Visit listmonk.app for more info. Check out the live demo.

Installation

Docker

The latest image is available on DockerHub at listmonk/listmonk:latest. Download and use the sample docker-compose.yml.

# Download the compose file to the current directory.
curl -LO https://github.com/knadh/listmonk/raw/master/docker-compose.yml

# Run the services in the background.
docker compose up -d

Visit http://localhost:9000

See installation docs


Binary

  • Download the latest release and extract the listmonk binary.
  • ./listmonk --new-config to generate config.toml. Edit it.
  • ./listmonk --install to setup the Postgres DB (or --upgrade to upgrade an existing DB. Upgrades are idempotent and running them multiple times have no side effects).
  • Run ./listmonk and visit http://localhost:9000

See installation docs


Developers

listmonk is free and open source software licensed under AGPLv3. If you are interested in contributing, refer to the developer setup. The backend is written in Go and the frontend is Vue with Buefy for UI.

License

listmonk is licensed under the AGPL v3 license.