# Stack env vars in Portainer are used for substitution below; each must be passed into the container. # Set at least PFA_SETUP_PASSWORD, PFA_DATABASE_PASSWORD, PFA_ADMIN_SMTP_PASSWORD in the stack. services: postfixadmin: image: git.mifi.dev/mifi-holdings/mail-postfixadmin:latest container_name: mifi-mail-postfixadmin environment: - PFA_SETUP_PASSWORD=${PFA_SETUP_PASSWORD} - PFA_DATABASE_PASSWORD=${PFA_DATABASE_PASSWORD} - PFA_ADMIN_SMTP_PASSWORD=${PFA_ADMIN_SMTP_PASSWORD} - PFA_DATABASE_HOST=${PFA_DATABASE_HOST:-mail.mifi.holdings} - PFA_DATABASE_USER=${PFA_DATABASE_USER:-postfixadmin} - PFA_DATABASE_NAME=${PFA_DATABASE_NAME:-postfix} - PFA_DATABASE_TYPE=${PFA_DATABASE_TYPE:-mysqli} - PFA_ENCRYPT=${PFA_ENCRYPT:-php_crypt:BLOWFISH:13:{BLF-CRYPT}} - PFA_SITE_URL=${PFA_SITE_URL:-https://postmaster.mifi.holdings} - PFA_SITE_NAME=${PFA_SITE_NAME:-mifi Ventures Email Service} - PFA_WELCOME_TEXT=${PFA_WELCOME_TEXT:-Welcome to mifi Ventures Email Service — help} - PFA_SHOW_HEADER_TEXT=${PFA_SHOW_HEADER_TEXT:-YES} - PFA_HEADER_TEXT=${PFA_HEADER_TEXT:-mifi Ventures Email Service} - PFA_FOOTER_TEXT=${PFA_FOOTER_TEXT:-mifi Ventures Mail} - PFA_FOOTER_LINK=${PFA_FOOTER_LINK:-https://mail.mifi.holdings} - PFA_DEFAULT_LANGUAGE=${PFA_DEFAULT_LANGUAGE:-en} - PFA_DEFAULT_CHARSET=${PFA_DEFAULT_CHARSET:-UTF-8} - PFA_SPECIAL_ALIAS_CONTROL=${PFA_SPECIAL_ALIAS_CONTROL:-NO} - PFA_BACKUP=${PFA_BACKUP:-NO} - PFA_FETCHMAIL=${PFA_FETCHMAIL:-NO} - PFA_SENDMAIL=${PFA_SENDMAIL:-NO} - PFA_APP_PASSWORDS=${PFA_APP_PASSWORDS:-YES} - PFA_QUOTA=${PFA_QUOTA:-YES} - PFA_USED_QUOTAS=${PFA_USED_QUOTAS:-YES} - PFA_MAILBOXES=${PFA_MAILBOXES:-100} - PFA_MAXQUOTA=${PFA_MAXQUOTA:-10240} - PFA_DOMAIN_QUOTA_DEFAULT=${PFA_DOMAIN_QUOTA_DEFAULT:-102400} - PFA_ADMIN_EMAIL=${PFA_ADMIN_EMAIL:-noreply@mifi.holdings} - PFA_ADMIN_NAME=${PFA_ADMIN_NAME:-mifi Ventures Postmaster} - PFA_SMTP_SERVER=${PFA_SMTP_SERVER:-mail.mifi.holdings} - PFA_SMTP_PORT=${PFA_SMTP_PORT:-587} - PFA_SMTP_TYPE=${PFA_SMTP_TYPE:-starttls} - PFA_SMTP_AUTH=${PFA_SMTP_AUTH:-true} - PFA_EDIT_MAILBOX=${PFA_EDIT_MAILBOX:-true} - PFA_EDIT_ALIAS=${PFA_EDIT_ALIAS:-true} - PFA_FORGOTTEN_ADMIN_PASSWORD_RESET=${PFA_FORGOTTEN_ADMIN_PASSWORD_RESET:-true} - PFA_FORGOTTEN_USER_PASSWORD_RESET=${PFA_FORGOTTEN_USER_PASSWORD_RESET:-true} - PFA_ADMIN_2FA=${PFA_ADMIN_2FA:-true} - PFA_API_ENABLED=${PFA_API_ENABLED:-true} - PFA_API_ALLOW_FROM=${PFA_API_ALLOW_FROM:-127.0.0.1,::1} - PFA_SESSION_TIMEOUT=${PFA_SESSION_TIMEOUT:-1800} healthcheck: test: curl --fail http://localhost || exit 1 retries: 5 start_period: 30s restart: unless-stopped networks: - traefik volumes: - /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock:ro labels: - 'traefik.enable=true' - 'traefik.docker.network=traefik' - 'traefik.http.routers.postfixadmin.rule=Host(`postmaster.mifi.holdings`)' - 'traefik.http.routers.postfixadmin.middlewares=gzip@file,security-medium@file' - 'traefik.http.routers.postfixadmin.entrypoints=websecure' - 'traefik.http.routers.postfixadmin.tls=true' - 'traefik.http.routers.postfixadmin.tls.certresolver=letsencrypt' networks: traefik: external: true