services: mailman-core: image: maxking/mailman-core:0.5 # Use a specific version tag (tag latest is not published) container_name: mailman-core hostname: mailman-core restart: unless-stopped volumes: - ./conf/mailman-core:/opt/mailman/ - ./logs/mailman-core:/opt/mailman/var/logs/ stop_grace_period: 30s links: - database:database depends_on: database: condition: service_healthy environment: - PUID=1000 - PGID=1000 - DATABASE_URL=postgresql://mailman:idaamailmanpass@database/mailmandb - DATABASE_TYPE=postgres - DATABASE_CLASS=mailman.database.postgresql.PostgreSQLDatabase - HYPERKITTY_API_KEY=${HYPERKITTY_API_KEY} - SMTP_HOST_USER=${MAILMAN_SMTP_USER} - SMTP_HOST_PASSWORD=${MAILMAN_SMTP_PASSWORD} - SMTP_SECURE_MODE=starttls - SMTP_VERIFY_HOSTNAME=False - SMTP_VERIFY_CERT=False - MTA=postfix - MM_HOSTNAME=172.29.199.10 - MAILMAN_REST_USER=restadmin - MAILMAN_REST_PASSWORD=NewSimplePassword-2026 ports: - "8008:8001" # API - "8024:8024" # LMTP - incoming emails # - "127.0.0.1:8024:8024" # LMTP - incoming emails networks: mailman: ipv4_address: 172.29.199.10 extra_hosts: - "dgr-srv-prime:192.168.32.7" - "linode.oneskyit.com:104.237.143.4" - "mail.oneskyit.com:104.237.143.4" mailman-web: image: maxking/mailman-web:0.5 # Use a specific version tag (tag latest is not published) container_name: mailman-web hostname: mailman-web restart: unless-stopped depends_on: database: condition: service_healthy links: - mailman-core:mailman-core - database:database volumes: - ./conf/mailman-web:/opt/mailman-web-data - ./logs/mailman-web:/opt/mailman-web-data/logs/ environment: - PUID=1000 - PGID=1000 - DATABASE_TYPE=postgres - DATABASE_URL=postgresql://mailman:idaamailmanpass@database/mailmandb # - SERVE_FROM_DOMAIN=lists.idaa.org - SERVE_FROM_DOMAIN=idaa.org # - ALLOWED_HOSTS=mailman3.idaa.org,lists.idaa.org,dgr-srv-prime,dgr-srv-prime:8000,dgr-srv-prime:8080 - DJANGO_ALLOWED_HOSTS=mailman3.idaa.org,lists.idaa.org,lists.oneskyit.com,lists.dgrzone.com,dgr-srv-prime,dgr-srv-prime:8000,dgr-srv-prime:8080,192.168.32.7 - DJANGO_CSRF_TRUSTED_ORIGINS=mailman3.idaa.org,lists.idaa.org,lists.oneskyit.com,lists.dgrzone.com,dgr-srv-prime,dgr-srv-prime:8000,dgr-srv-prime:8080,192.168.32.7 - MAILMAN_REST_USER=restadmin - MAILMAN_REST_PASSWORD=NewSimplePassword-2026 - HYPERKITTY_API_KEY=${HYPERKITTY_API_KEY} - MAILMAN_ADMIN_USER=administrator - MAILMAN_ADMIN_EMAIL=scott.idem+admin@oneskyit.com - SECRET_KEY=${DJANGO_SECRET_KEY} - UWSGI_STATIC_MAP=/static=/opt/mailman-web-data/static # - SMTP_HOST=127.0.0.1 # - SMTP_HOST=104.237.143.4 - SMTP_HOST=linode.oneskyit.com - SMTP_PORT=587 - SMTP_HOST_USER=${MAILMAN_SMTP_USER} - SMTP_HOST_PASSWORD=${MAILMAN_SMTP_PASSWORD} - SMTP_SECURE_MODE=starttls - SMTP_USE_TLS=True # Do not set SMTP_USE_SSL # Setting the verify hostname/cert seems to have no effect - SMTP_VERIFY_HOSTNAME=False - SMTP_VERIFY_CERT=False ports: - "8000:8000" # HTTP - "8080:8080" # uwsgi networks: mailman: extra_hosts: - "dgr-srv-prime:192.168.32.7" - "linode.oneskyit.com:104.237.143.4" - "mail.oneskyit.com:104.237.143.4" database: environment: - PUID=1000 - PGID=1000 - POSTGRES_DB=mailmandb - POSTGRES_USER=mailman - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} # Can not use PostgreSQL 17 at this time 2025-02-04 image: postgres:16-alpine volumes: - ./srv/postgresql16:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready --dbname mailmandb --username mailman"] interval: 10s timeout: 5s retries: 5 networks: mailman: logrotate: image: alpine:latest container_name: logrotate hostname: logrotate restart: always volumes: - ./logs/mailman-core:/var/log/mailman-core - ./logs/mailman-web:/var/log/mailman-web - ./config/cron.d:/etc/periodic/daily command: ["crond", "-f", "-L", "/dev/stdout"] networks: - mailman networks: mailman: driver: bridge ipam: driver: default config: - subnet: 172.29.199.0/24