High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.
Go to file
Kailash Nadh 414c5c0c99 Refactor the core concurrent campaign manager logic.
This commit fully refactors the core campaign manager logic.
It applies a whole new approach to campaign state and lifecycle management.

- Create a new "pipeline" abstraction on top of campaign
  for state management.
- Account for every message processed and end campaigns
  based on the actual count.
- Discard in-queue messages in the pipeline of a paused
  or cancelled campaign.
2024-01-02 14:57:04 +05:30
.github Update general-question.md 2023-12-22 19:16:49 +05:30
cmd Refactor the core concurrent campaign manager logic. 2024-01-02 14:57:04 +05:30
dev Provide a default configuration file for containerized development 2022-01-19 09:30:23 -05:00
docs Update configuration.md +logs section (#1641) 2023-12-28 22:13:38 +05:30
frontend Add a ?v=hash cache breaker (that changes on restart) to static assets. 2023-12-31 22:20:37 +05:30
i18n Make all ID/UUID labels on the UI onclick -> clipboard copy. 2023-12-31 21:39:19 +05:30
internal Refactor the core concurrent campaign manager logic. 2024-01-02 14:57:04 +05:30
models Replace c3js with chart.js for major dep size reduction. 2023-12-29 22:17:53 +05:30
scripts Add script to merge and normalize i18n files 2021-04-14 13:52:13 +05:30
static Add a ?v=hash cache breaker (that changes on restart) to static assets. 2023-12-31 22:20:37 +05:30
.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 Docker Multi Arch (esp. ARM) builds: Improving Build File (#1451) 2023-09-07 22:23:17 +05:30
config-demo.toml Don't indent TOML keys deeper than their sections 2021-05-06 18:28:04 +03:00
config.toml.sample Add optional params in DB config to accept arbitrary Postgres params. Closes #1016. 2022-12-25 16:28:19 +05:30
CONTRIBUTING.md Fix link to the docs repo. 2023-03-26 11:17:15 +05:30
docker-compose.yml feat: docker compose use alpine for postgres (#1603) 2023-11-24 14:48:57 +05:30
Dockerfile feat: Add timezone config in app container 2021-12-29 11:42:04 +05:30
go.mod Bump golang.org/x/crypto from 0.15.0 to 0.17.0 (#1632) 2023-12-19 20:58:53 +05:30
go.sum Bump golang.org/x/crypto from 0.15.0 to 0.17.0 (#1632) 2023-12-19 20:58:53 +05:30
install-demo.sh fix: replace docker-compose with docker compose (#1490) 2023-08-28 20:13:03 +05:30
install-prod.sh fix: replace docker-compose with docker compose (#1490) 2023-08-28 20:13:03 +05:30
LICENSE Refactor and add new build routines 2019-07-09 15:57:04 +05:30
listmonk-simple.service Addte listmonk-simple.service (#1622) 2023-12-22 19:37:19 +05:30
listmonk@.service Enable extra system calls in systemd service (#1309) 2023-07-12 19:42:54 +05:30
Makefile Add a ?v=hash cache breaker (that changes on restart) to static assets. 2023-12-31 22:20:37 +05:30
project.inlang.json fix: update inlang settings (#1529) 2023-09-20 14:19:08 +05:30
queries.sql Fix preconfirm option not working on bulk 'select all' subscriber list management. Closes #1646. 2023-12-30 20:52:14 +05:30
README.md Update Postgres version in doc strings. 2023-07-27 23:45:39 +05:30
schema.sql Fix invalid suffix 'd' in timestring string in s3 expiry config. 2023-09-19 14:45:51 +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. Use the sample docker-compose.yml to run manually or use the helper script.

Demo

mkdir listmonk-demo && cd listmonk-demo
sh -c "$(curl -fsSL https://raw.githubusercontent.com/knadh/listmonk/master/install-demo.sh)"

DO NOT use this demo setup in production.

Production

mkdir listmonk && cd listmonk
sh -c "$(curl -fsSL https://raw.githubusercontent.com/knadh/listmonk/master/install-prod.sh)"

Visit http://localhost:9000.

NOTE: Always examine the contents of shell scripts before executing them.

See installation docs.


Binary

  • Download the latest release and extract the listmonk binary.
  • ./listmonk --new-config to generate config.toml. Then, edit the file.
  • ./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 a 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.