Files
docker-compose-cookbooks/listmonk/compose.yaml
T
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

68 lines
1.9 KiB
YAML

services:
listmonk-db:
image: ${POSTGRES_IMAGE:-postgres:18.3-alpine}
restart: ${POSTGRES_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/listmonk/db:/var/lib/postgresql
environment:
- POSTGRES_USER=${POSTGRES_USER:-listmonk}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-ChangeThisPassword}
- POSTGRES_DB=${POSTGRES_DB:-listmonk}
networks:
- listmonk
listmonk:
image: ${LISTMONK_IMAGE:-listmonk/listmonk:latest}
restart: ${LISTMONK_RESTART:-unless-stopped}
volumes:
- ${VOL_PATH:-/data}/listmonk/uploads:/listmonk/uploads:rw
environment:
- LISTMONK_app__address=0.0.0.0:${LISTMONK_PORT:-9000}
# Database
- LISTMONK_db__user=${POSTGRES_USER:-listmonk}
- LISTMONK_db__password=${POSTGRES_PASSWORD:-ChangeThisPassword}
- LISTMONK_db__database=${POSTGRES_DB:-listmonk}
- LISTMONK_db__host=listmonk-db
- LISTMONK_db__port=5432
- LISTMONK_db__ssl_mode=${LISTMONK_SSLMODE:-disable}
# DB Pool
- LISTMONK_db__max_open=${LISTMONK_MAX_OPEN:-25}
- LISTMONK_db__max_idle=${LISTMONK_MAX_IDLE:-25}
- LISTMONK_db__max_lifetime=${LISTMONK_MAX_LIFETIME:-300s}
# Timezone
- TZ=${TZ:-America/Vancouver}
# Initial Admin User
- LISTMONK_ADMIN_USER=${LISTMONK_ADMIN_USER:-admin}
- LISTMONK_ADMIN_PASSWORD=${LISTMONK_ADMIN_PASSWORD:-ChangeThisPassword}
ports:
- "${LISTMONK_PORT:-9000}:${LISTMONK_PORT:-9000}"
networks:
- listmonk
- proxy
hostname: ${LISTMONK_HOSTNAME:-listmonk.example.com}
depends_on:
- listmonk-db
command:
[
sh,
-c,
"./listmonk --install --idempotent --yes --config '' &&
./listmonk --upgrade --yes --config '' &&
./listmonk --config ''"
]
networks:
listmonk:
driver: bridge
proxy:
external: true