Try describing what you need:

Listmonk logo

Listmonk

★ 24.3k

A self-hosted alternative to Mailchimp, Substack

GNU Affero General Public License v3.0Open Source — No Paywall2 Containers — 2 containers — light hosting footprintDocker · Compose · BinaryNeeds Postgres58+ active committers (12mo)

About

listmonk is a self-hosted newsletter and mailing list manager intended for users who want to run email list infrastructure on their own servers. It is presented as a fast, feature-rich application...

Community Ratings

No ratings yet

Features

  • newsletter management
  • mailing list management
  • single-binary deployment
  • Docker deployment
  • database setup and upgrade
  • live demo

Details

Last Updated
Nov 11, 2026
Created
Jun 26, 2019
Install Methods
dockerdocker-composebinary
Requirements
PostgreSQL database
Default Port
9000web UI
Backup & Export
database-dump
Runtime / Stack
GoDocker
Privacy & Independence
No Cloud RequiredOffline Capable
User Model
Multi-User
Deployment

Deployment: Docker Compose ✓2 Containers — light hosting footprintRuns as 2 containers

Run Listmonk yourself

Pick how much you want to manage.

5 more ways to host

Some links earn us a commission. netcup pays us one and is our preferred VPS host.

Is this your project? Sponsor a listing

Run Listmonk with Docker Compose

Compose file from the Listmonk project repository.

2 services · database: postgres · infra: postgres

no resource limits declared

needs persistent storage (2 volumes)

docker-compose.yml · @ 03fd8ce · scanned Nov 3, 2026

# All LISTMONK_* env variables also support the LISTMONK_*_FILE pattern for loading secrets from files with Docker secrets and Podman
# eg: LISTMONK_ADMIN_USER -> LISTMONK_ADMIN_USER_FILE=/path/to/file_with_value

x-db-credentials: &db-credentials                             # Use the default POSTGRES_ credentials if they're available or simply default to "listmonk"
  POSTGRES_USER: &db-user listmonk                            # for database user, password, and database name
  POSTGRES_PASSWORD: &db-password listmonk
  POSTGRES_DB: &db-name listmonk

services:
  # listmonk app
  app:
    image: listmonk/listmonk:latest
    container_name: listmonk_app
    restart: unless-stopped
    ports:
      - "9000:9000"                                           # To change the externally exposed port, change to: $custom_port:9000
    networks:
      - listmonk
    hostname: listmonk.example.com                            # Recommend using FQDN for hostname
    depends_on:
      - db
    command: [sh, -c, "./listmonk --install --idempotent --yes --config '' && ./listmonk --upgrade --yes --config '' && ./listmonk --config ''"]
                                                              # --config (file) param is set to empty so that listmonk only uses the env vars (below) for config.
                                                              # --install --idempotent ensures that DB installation happens only once on an empty DB, on the first ever start.
                                                              # --upgrade automatically runs any DB migrations when a new image is pulled.

    environment:                                              # The same params as in config.toml are passed as env vars here.
      LISTMONK_app__address: 0.0.0.0:9000
      LISTMONK_db__user: *db-user
      LISTMONK_db__password: *db-password
      LISTMONK_db__database: *db-name
      LISTMONK_db__host: db
      LISTMONK_db__port: 5432
      LISTMONK_db__ssl_mode: disable
      LISTMONK_db__max_open: 25
      LISTMONK_db__max_idle: 25
      LISTMONK_db__max_lifetime: 300s
      TZ: Etc/UTC
      LISTMONK_ADMIN_USER: ${LISTMONK_ADMIN_USER:-}           # If these (optional) are set during the first `docker compose up`, then the Super Admin user is automatically created.
      LISTMONK_ADMIN_PASSWORD: ${LISTMONK_ADMIN_PASSWORD:-}   # Otherwise, the user can be setup on the web app after the first visit to http://localhost:9000
    volumes:
      - ./uploads:/listmonk/uploads:rw                        # Mount an uploads directory on the host to /listmonk/uploads inside the container.
                                                              # To use this, change directory path in Admin -> Settings -> Media to /listmonk/uploads

  # Postgres database
  db:
    image: postgres:17-alpine
    container_name: listmonk_db
    restart: unless-stopped
    ports:
      - "127.0.0.1:5432:5432"                                 # Only bind on the local interface. To connect to Postgres externally, change this to 0.0.0.0
    networks:
      - listmonk
    environment:
      <<: *db-credentials
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U listmonk"]
      interval: 10s
      timeout: 5s
      retries: 6
    volumes:
      - type: volume
        source: listmonk-data
        target: /var/lib/postgresql/data

networks:
  listmonk:

volumes:
  listmonk-data:

This file may be out of date. Check the Listmonk documentation for current setup steps.

Track your self-hosted stack

Bookmark software to try, rate tools you've used, and keep your collection in one place.

Metadata extracted from README on Mar 25, 2026

Alternatives to Listmonk

Keila logo

Keila

2.3k
Keila is an open source newsletter tool for sending campaigns and creating sign-up forms.
Mailing ListsSelf Hosting SolutionsCopyleft License
Details
phpList logo

phpList

883
phpList is an open source email marketing manager for creating, sending, integrating, and analysing email campaigns and newsletters.
Mailing ListsSelf Hosting SolutionsAnalytics Tools+3
6 ContainersFully FOSS
Details
Plunk logo

Plunk

5.6k
Plunk is an open-source email platform for sending transactional emails, campaigns, and automations from self-hosted applications.
Email SolutionsMailing ListsAutomation Tools+2
Cloud Required
Details
BillionMail logo

BillionMail

16.2k
BillionMail is an open-source mail server and email marketing platform for sending newsletters, promotional emails, and transactional messages.
Mailing ListsEmail SolutionsMail Transfer Agents+2
Details
Sendy logo

Sendy

Email newsletter application that lets you send bulk emails via Amazon Simple Email Service (SES) or other SMTP services.
Mailing ListsSelf Hosting SolutionsAnalytics Tools
Details
Mailman logo

Mailman

Manage electronic mail discussion and e-newsletter lists.
Mailing ListsCopyleft LicenseSelf Hosting Solutions+1
Details
mlmmj logo

mlmmj

28
Mailing list management made joyful.
Mail Transfer AgentsSelf Hosting SolutionsFully FOSS+1
Fully FOSS
Details

Related Software

Postal logo

Postal

16.9k
Postal is a complete, self-hosted mail server for websites and web servers.
Email SolutionsPermissive LicenseMail Transfer Agents+2
Details
Mailcow logo

Mailcow

13.8k
mailcow is a dockerized mail server suite for self-hosted email management.
Email SolutionsCopyleft LicenseMail Transfer Agents+3
18 Containers
Details
Simple NixOS Mailserver logo

Simple NixOS Mailserver

320
Complete mailserver solution leveraging the Nix Ecosystem.
Email SolutionsCopyleft LicenseMail Transfer Agents+2
Details
OpenTrashmail logo

OpenTrashmail

969
Open Trashmail is a self-hosted trashmail service for receiving emails through a web UI, JSON API, RSS feeds, and custom webhooks.
Mail Transfer AgentsEmail SolutionsSelf Hosting Solutions+2
Details
Mox logo

Mox

5.9k
Mox is an open source self-hosted email server with SMTP, IMAP, webmail, and a web admin interface.
Email SolutionsMail Transfer AgentsMail Delivery Agents+3
Details
NexMail logo

NexMail

13
A modern webmail for self-hosted mail servers
Webmail ClientsSelf Hosting Solutions
Details
Modoboa logo

Modoboa

3.5k
Modoboa is a mail hosting and management platform with a web user interface, administration panel, and webmail.
Email SolutionsPermissive LicenseSelf Hosting Solutions+4
Details
Dittofeed logo

Dittofeed

3.1k
Dittofeed is an open-source omni-channel customer engagement platform for sending broadcasts and automated user journeys across channels like email, SMS, WhatsApp, Slack, and mobile push.
Automation ToolsMailing ListsCRM Systems+3
Open Core
Details
Poste.io logo

Poste.io

Full-featured solution for your Email server. Native implementation of last anti-SPAM methods, webmail and easy administration included. Free tier available.
Self Hosting SolutionsEmail SolutionsWebmail Clients+1
Details
Postorius logo

Postorius

96
Web user interface to access GNU Mailman.
Mailing ListsCopyleft LicenseSelf Hosting Solutions+1
Fully FOSS
Details
SimpleLogin logo

SimpleLogin

7.1k
SimpleLogin is an email aliasing service that helps protect online identity by routing mail through aliases.
Email SolutionsSelf Hosting SolutionsPermissive License
Details