High performance, self-hosted, newsletter and mailing list manager with a modern dashboard. Single binary app.
Find a file
2021-09-27 17:36:02 +05:30
.github Bump Go compiler to v1.17 in GitHub actions. 2021-09-25 16:03:18 +05:30
cmd Add a landing login page and a logout option. 2021-09-26 23:42:57 +05:30
frontend Replace TinyMCE UI pt font sizes with px. 2021-09-27 17:36:02 +05:30
i18n Add a landing login page and a logout option. 2021-09-26 23:42:57 +05:30
internal Remove obsolete bounce routines from manager package. 2021-09-26 18:57:25 +05:30
models Introduce @TrackLink shorthand for generating tracking links. 2021-09-26 16:03:05 +05:30
scripts Add script to merge and normalize i18n files 2021-04-14 13:52:13 +05:30
static Add a landing login page and a logout option. 2021-09-26 23:42:57 +05:30
.dockerignore feat: Add blobstore package 2019-10-31 11:25:31 +05:30
.gitattributes Add a VERSION file for git-archive export 2021-08-14 13:41:19 +05:30
.gitignore feat: Add separate config for demo setup, tweak docs 2020-07-08 22:38:31 +05:30
.goreleaser.yml fix: remove deprecated syntax in goreleaser 2021-03-19 12:21:35 +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 Document tidbits about listening addresses for non-sysadmin types 2021-05-07 14:44:17 +03:00
docker-compose.yml feat: Add easy install script 2021-06-15 18:38:45 +05:30
Dockerfile chore(dockerfile): not are using multi-stage build 2021-04-19 18:14:32 -03:00
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 Refactor and add new build routines 2019-07-09 15:57:04 +05:30
listmonk@.service add systemd service unit 2021-07-07 14:15:16 +02:00
Makefile Merge branch 'refactor-frontend-path' 2021-09-23 19:26:45 +05:30
queries.sql Fix broken Cypress tests. 2021-09-25 18:05:15 +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 Add support for campaign view tracking with {{ TrackView }} pixel tag 2018-11-02 13:20:32 +05:30
TODO.md Remove completed items 2020-05-25 11:55:02 +05:30
VERSION Add a VERSION file for git-archive export 2021-08-14 13:41:19 +05:30

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.