services: listmonk-db: image: postgres:13-alpine restart: unless-stopped networks: - listmonk environment: - POSTGRES_USER=${POSTGRES_USER:-listmonk} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-securepassword} - POSTGRES_DB=${POSTGRES_DB:-listmonk} volumes: - listmonk-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER"] interval: 10s timeout: 5s retries: 6 listmonk-init: image: listmonk/listmonk:latest depends_on: listmonk-db: condition: service_healthy networks: - listmonk volumes: - ./config/config.toml:/listmonk/config.toml command: [ "sh", "-c", "yes | ./listmonk --install --config /listmonk/config.toml" ] listmonk: image: listmonk/listmonk:latest restart: unless-stopped depends_on: listmonk-db: condition: service_healthy listmonk-init: condition: service_completed_successfully ports: - "9000:9000" networks: - listmonk volumes: - ./config/config.toml:/listmonk/config.toml - ./data/listmonk:/app/data environment: - SECRET_KEY=${SECRET_KEY} - DB_PROVIDER=postgres - DB_HOST=db - DB_PORT=5432 - DB_USER=${POSTGRES_USER:-listmonk} - DB_PASSWORD=${POSTGRES_DB:-listmonk} - DB_NAME=${POSTGRES_DB} - WEB_SERVER_HOST=0.0.0.0 - WEB_SERVER_PORT=8000 networks: listmonk: volumes: listmonk-data: