High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.
Find a file
Kailash Nadh 7aee36eab1 Add support for blocklisting e-mail domains.
E-mails in the domain blocklist are disallowed on the admin UI, public
subscription forms, API, and in the bulk importer.

- Add blocklist setting that takes a list of multi-line domains on the
  Settings -> Privacy UI.
- Refactor e-mail validation in subimporter to add blocklist checking
  centrally.
- Add Cypress testr testing domain blocklist behaviour on admin
  and non-admin views.

Closes #336.
2021-09-25 15:39:09 +05:30
.github Update issue templates 2021-09-02 17:42:31 +05:30
cmd Add support for blocklisting e-mail domains. 2021-09-25 15:39:09 +05:30
frontend Add support for blocklisting e-mail domains. 2021-09-25 15:39:09 +05:30
i18n Add support for blocklisting e-mail domains. 2021-09-25 15:39:09 +05:30
internal Add support for blocklisting e-mail domains. 2021-09-25 15:39:09 +05:30
models Refactor SQL schema and queries for performance improvements. 2021-09-18 17:25:08 +05:30
scripts
static Improve codeflask HTML syntax highlighting colours. 2021-09-19 17:11:48 +05:30
.dockerignore
.gitattributes
.gitignore
.goreleaser.yml
config-demo.toml
config.toml.sample
docker-compose.yml
Dockerfile
go.mod Add custom S3 backend support (eg: Minio) to media uploads 2021-08-15 16:09:00 +05:30
go.sum Add custom S3 backend support (eg: Minio) to media uploads 2021-08-15 16:09:00 +05:30
install-demo.sh Fix whitespace inconsistency in install scripts 2021-08-28 19:13:51 +05:30
install-prod.sh Fix whitespace inconsistency in install scripts 2021-08-28 19:13:51 +05:30
LICENSE
listmonk@.service
Makefile Merge branch 'refactor-frontend-path' 2021-09-23 19:26:45 +05:30
queries.sql Refactor individual subscriber edit view. 2021-09-19 13:27:14 +05:30
README.md CD to directory before install script 2021-09-21 20:33:37 +02:00
schema.sql Add support for blocklisting e-mail domains. 2021-09-25 15:39:09 +05:30
stats.sql
TODO.md
VERSION

listmonk

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 database as its data store.

listmonk-dashboard Visit listmonk.app

Installation

Docker

The latest image is available on DockerHub at listmonk/listmonk:latest. Use the sample docker-compose.yml to run listmonk and Postgres DB with docker-compose as follows:

Demo

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

The demo does not persist Postgres after the containers are removed. DO NOT use this demo setup in production.

Production

Easy Docker install

This setup is recommended if you want to quickly setup listmonk in production.

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

The above shell script performs the following actions:

  • Downloads docker-compose.yml and generates a config.toml.
  • Runs a Postgres container and installs the database schema.
  • Runs the listmonk container.

NOTE: It's recommended to examine the contents of the shell script, before running in your environment.

Manual Docker install

The following workflow is recommended to setup listmonk manually using docker-compose. You are encouraged to customise the contents of docker-compose.yml to your needs. The overall setup looks like:

  • docker-compose up db to run the Postgres DB.
  • docker-compose run --rm app ./listmonk --install to setup the DB (or --upgrade to upgrade an existing DB).
  • Copy config.toml.sample to your directory and make the following changes:
    • app.address => 0.0.0.0:9000 (Port forwarding on Docker will work only if the app is advertising on all interfaces.)
    • db.host => listmonk_db (Container Name of the DB container)
  • Run docker-compose up app and visit http://localhost:9000.

More information on 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.

Heroku

Deploy

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.