Listmonk
★ 23.8kA 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 yetNew this week
Read recap →Weekly Recap — Oct 2, 2026 – Oct 9, 2026Oct 9, 2026
Features
- newsletter management
- mailing list management
- single-binary deployment
- Docker deployment
- database setup and upgrade
- live demo
Details
- Last Updated
- Oct 13, 2026
- Created
- Jun 26, 2019
- Install Methods
- dockerdocker-composebinary
- Requirements
- PostgreSQL database
- 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 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 Jun 4, 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.
Tags
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
Related Software
Mautic
10.8k
Open source marketing automation software for creating and managing integrated marketing campaigns.
Mailing ListsSelf Hosting SolutionsAutomation Tools+3
phpList
877
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
Plunk
5.5k
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
Django-CRM
637
A free, self-hosted CRM built with Python and Django for managing leads, deals, contacts, tasks, email campaigns, and analytics.
CRM SystemsTask ManagementAnalytics Tools+4
Dittofeed
3.0k
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
Mataroa
370
A Django-based blogging platform with subdomain-based user blogs, publishing tools, and deployment support.
Blogging PlatformsPermissive LicenseCMS Platforms+4
Sendy
Self-hosted email newsletter application that lets you send bulk emails via Amazon Simple Email Service (SES) or other SMTP services.
Mailing ListsSelf Hosting SolutionsAnalytics Tools
BillionMail
15.9k
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
Keila
2.2k
Keila is an open source newsletter tool for sending campaigns and creating sign-up forms.
Mailing ListsSelf Hosting SolutionsCopyleft License
Sympa
318
Sympa is an electronic mailing list manager that automates subscription, moderation, archive management, and message delivery for mailing lists.
Mailing ListsSelf Hosting SolutionsMail Transfer Agents+2
ACP Admin
81
A web application for managing CSA, ACP, and Solawi community agriculture organizations.
Agriculture ManagementPermissive LicenseE-Commerce Solutions+4
ShipShipShip
301
A self-hostable changelog and roadmap platform with emoji reactions, themes, newsletters, and an admin dashboard.
Dev Project ManagementPermissive LicenseStatus Pages+2
Single Container
