services: mailserver: # image: docker.io/mailserver/docker-mailserver:latest # AUSKOMMENTIERT build: context: . dockerfile: Dockerfile image: dms-custom:latest container_name: mailserver hostname: mail.email-srvr.com domainname: email-srvr.com ports: - "25:25" # SMTP (parallel zu MailCow auf Port 25) - "587:587" # SMTP Submission - "465:465" # SMTP SSL - "143:143" # IMAP - "993:993" # IMAP SSL - "110:110" # POP3 - "995:995" # POP3 SSL volumes: - ./docker-data/dms/mail-data/:/var/mail/ - ./docker-data/dms/mail-state/:/var/mail-state/ - ./docker-data/dms/mail-logs/:/var/log/mail/ - ./docker-data/dms/config/:/tmp/docker-mailserver/ - ./docker-data/dms/config/dovecot/conf.d/95-sieve-redirect.conf:/etc/dovecot/conf.d/95-sieve-redirect.conf:ro - /etc/localtime:/etc/localtime:ro - ./sync_dynamodb_to_sieve.py:/scripts/sync.py:ro - ./sieve-cron:/etc/cron.d/sieve-sync:ro - /var/lib/docker/volumes/caddy_data/_data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/mail.email-srvr.com:/etc/mail/certs:ro environment: # Wichtig: Rspamd und andere Services deaktivieren für ersten Test - SSL_TYPE=manual # Diese Pfade beziehen sich auf das INNERE des Containers (wo wir hin mounten) - SSL_CERT_PATH=/etc/mail/certs/mail.email-srvr.com.crt - SSL_KEY_PATH=/etc/mail/certs/mail.email-srvr.com.key - ENABLE_RSPAMD=0 - ENABLE_OPENDKIM=1 - ENABLE_OPENDMARC=0 - ENABLE_POLICYD_SPF=0 - ENABLE_AMAVIS=0 - ENABLE_SPAMASSASSIN=0 - ENABLE_POSTGREY=0 - RSPAMD_GREYLISTING=0 - ENABLE_CLAMAV=0 #- ENABLE_FAIL2BAN=1 - ENABLE_FAIL2BAN=0 #- ENABLE_MANAGESIEVE=1 - ENABLE_MANAGESIEVE=0 - ENABLE_POP3=1 - RSPAMD_LEARN=1 - MOVE_SPAM_TO_JUNK=1 - RSPAMD_CHECK_AUTHENTICATED=0 - RSPAMD_HFILTER=0 - ONE_DIR=1 - ENABLE_UPDATE_CHECK=0 - PERMIT_DOCKER=network # - PERMIT_DOCKER=empty - SSL_TYPE=manual - SSL_CERT_PATH=/tmp/docker-mailserver/ssl/cert.pem - SSL_KEY_PATH=/tmp/docker-mailserver/ssl/key.pem # Amazon SES SMTP Relay - RELAY_HOST=email-smtp.us-east-2.amazonaws.com - RELAY_PORT=587 - RELAY_USER=${SES_SMTP_USER} - RELAY_PASSWORD=${SES_SMTP_PASSWORD} # Content Filter AWS Credentials - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID} - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY} - AWS_REGION=us-east-2 # Weitere Einstellungen - POSTFIX_OVERRIDE_HOSTNAME=email-srvr.com - POSTFIX_MYNETWORKS=172.16.0.0/12 172.17.0.0/12 172.18.0.0/12 [::1]/128 [fe80::]/64 - POSTFIX_MAILBOX_SIZE_LIMIT=0 - POSTFIX_MESSAGE_SIZE_LIMIT=0 - SPOOF_PROTECTION=0 - ENABLE_SRS=0 # Debug-Einstellungen - LOG_LEVEL=info cap_add: - NET_ADMIN - SYS_PTRACE restart: unless-stopped networks: mail_network: aliases: - mail.email-srvr.com - mailserver roundcube: image: roundcube/roundcubemail:latest container_name: roundcube depends_on: - roundcube-db - mailserver environment: - LANGUAGE=en_US - ROUNDCUBEMAIL_DB_TYPE=pgsql - ROUNDCUBEMAIL_DB_HOST=roundcube-db - ROUNDCUBEMAIL_DB_NAME=roundcube - ROUNDCUBEMAIL_DB_USER=roundcube - ROUNDCUBEMAIL_DB_PASSWORD=${ROUNDCUBE_DB_PASSWORD} # Einfache Konfiguration ohne SSL-Probleme (für ersten Test) - ROUNDCUBEMAIL_DEFAULT_HOST=ssl://mail.email-srvr.com - ROUNDCUBEMAIL_DEFAULT_PORT=993 - ROUNDCUBEMAIL_SMTP_SERVER=tls://mail.email-srvr.com - ROUNDCUBEMAIL_SMTP_PORT=587 #- ROUNDCUBEMAIL_PLUGINS=password,email_config,managesieve - ROUNDCUBEMAIL_PLUGINS=password,email_config # In docker-compose.yml bei roundcube hinzufügen: ports: - "8888:80" # Host:Container volumes: - ./docker-data/roundcube/config:/var/roundcube/config - ./docker-data/roundcube/plugins/email_config:/var/www/html/plugins/email_config:ro networks: - mail_network restart: unless-stopped roundcube-db: image: postgres:15 container_name: roundcube-db environment: - POSTGRES_DB=roundcube - POSTGRES_USER=roundcube - POSTGRES_PASSWORD=${ROUNDCUBE_DB_PASSWORD} ports: - "5555:5432" volumes: - ./docker-data/roundcube/db:/var/lib/postgresql/data networks: - mail_network restart: unless-stopped networks: mail_network: external: true