feat: add listmonk mailing list service

This commit is contained in:
Phillip Skentelbery
2026-06-27 17:57:03 -06:00
parent e47465c34d
commit 767ff9dae6
7 changed files with 90 additions and 2 deletions
@@ -0,0 +1,58 @@
services:
listmonk:
image: listmonk/listmonk:latest
restart: unless-stopped
ports:
- "9000:9000"
depends_on:
db:
condition: service_healthy
command: [sh, -c, "./listmonk --install --idempotent --yes --config '' && ./listmonk --upgrade --yes --config '' && ./listmonk --config ''"]
environment:
LISTMONK_app__address: 0.0.0.0:9000
LISTMONK_db__user: listmonk
LISTMONK_db__password: {{ vault_listmonk.postgres_password }}
LISTMONK_db__database: listmonk
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: {{ vault_listmonk.admin_user }}
LISTMONK_ADMIN_PASSWORD: {{ vault_listmonk.admin_password }}
volumes:
- uploads:/listmonk/uploads
labels:
glance.name: Listmonk
glance.url: https://{{ subdomains.listmonk }}/
glance.description: Mailing list manager
glance.id: listmonk
db:
image: postgres:17-alpine
restart: unless-stopped
environment:
POSTGRES_USER: listmonk
POSTGRES_PASSWORD: {{ vault_listmonk.postgres_password }}
POSTGRES_DB: listmonk
healthcheck:
test: ["CMD-SHELL", "pg_isready -U listmonk"]
interval: 10s
timeout: 5s
retries: 6
volumes:
- listmonk-data:/var/lib/postgresql/data
labels:
glance.parent: listmonk
glance.name: DB
volumes:
uploads:
listmonk-data:
networks:
default:
external: true
name: {{ docker.network_name }}