Files
docker-compose-cookbooks/listmonk
codeandClaude Fable 5 8ab413804a normalize all stacks to conventions
- VOL_PATH always defaults to /data; vscode/opencode VOL_PROJECTS nests it
- TZ defaults to America/Vancouver (was UTC in etherpad, ntfy, redis)
- compose section order fixed (volumes before environment, command after networks)
- all default secrets are the literal ChangeThisPassword (grep-friendly,
  users must change them); removed a real key from ollama sample.env
- sample.env synced with compose: missing vars added with defaults, dead vars removed
- invoiceninja_dev/openarchiver_dev: app services had no environment block,
  wired all sample.env vars through so the stacks actually work
- opencode: sample.env OLLAMA_HOST renamed to OLLAMA_HOST_URL to match compose
- TZ values unquoted consistently

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 06:24:54 +00:00
..
2026-05-08 13:14:01 +00:00
2026-07-16 06:24:54 +00:00

listmonk

Overview

Self-hosted newsletter and mailing list manager powered by PostgreSQL. This stack deploys listmonk with persistent storage, automatic database initialization/upgrades, and support for reverse proxy integration.

Project Details

Environment Variable Notes

Most variables are optional because sane defaults are already included in the compose file.

Database

POSTGRES_IMAGE  PostgreSQL container image
POSTGRES_RESTART  Restart policy for PostgreSQL
POSTGRES_USER  PostgreSQL username
POSTGRES_PASSWORD  PostgreSQL password
POSTGRES_DB  PostgreSQL database name

listmonk

LISTMONK_IMAGE  listmonk container image
LISTMONK_RESTART  Restart policy for listmonk
LISTMONK_PORT  Web UI / proxy port
LISTMONK_HOSTNAME  Container hostname
LISTMONK_SSLMODE  PostgreSQL SSL mode
LISTMONK_MAX_OPEN  Maximum open DB connections
LISTMONK_MAX_IDLE  Maximum idle DB connections
LISTMONK_MAX_LIFETIME  DB connection lifetime

Initial Admin User

These are only used during first startup.

LISTMONK_ADMIN_USER  Initial admin username
LISTMONK_ADMIN_PASSWORD  Initial admin password

General

VOL_PATH  Base path for persistent storage
TZ  Container timezone

Volume Notes

/data/listmonk/db
    PostgreSQL database storage

/data/listmonk/uploads
    listmonk uploads and media storage

Back up both directories regularly.

Network Notes

Requires an external Docker network named:

proxy

Create it manually if it does not already exist:

docker network create proxy

Internal application traffic uses the private:

listmonk

bridge network.

Additional Notes / Gotchas

  • The stack automatically runs:

    • database installation
    • schema upgrades
    • application startup

    on container launch.

  • The install and upgrade commands are idempotent and safe to rerun.

  • Change all default passwords before exposing publicly.

  • Designed for use behind a reverse proxy such as Traefik, Caddy, Nginx Proxy Manager, or SWAG.

Dockhand Stack, Deploy from Git

Cookbooks Repository

stackname: listmonk
Compose file path: listmonk/compose.yaml
Additional env file (optional): listmonk/sample.env

Then load:

listmonk/sample.env

into the Environmental Variables section in Dockhand.

Create the Stack.