services: mailserver: image: ghcr.io/docker-mailserver/docker-mailserver:latest container_name: dms-mailserver hostname: mail.andreasknuth.de # Passe an deine Haupt-Domain an env_file: mailserver.env ports: - "2525:25" # SMTP (extern auf 2525, um MailCow nicht zu stören) - "1443:143" # IMAP (extern auf 1443) - "1465:465" # SMTPS - "1993:993" # IMAPS (extern auf 994, um Konflikte zu vermeiden) - "2587:587" # Submission (extern auf 2587 für Lambda) volumes: - ./data/:/var/mail/ - ./state/:/var/mail-state/ - ./config/:/tmp/docker-mailserver/ environment: - ENABLE_FAIL2BAN=1 - SSL_TYPE=letsencrypt # Oder self-signed für Test - PERMIT_DOCKER=host - ONE_DIR=1 cap_add: - NET_ADMIN restart: always networks: - dms_network - mail_network # Verbinde mit deinem bestehenden mail_network für Caddy roundcube: image: roundcube/roundcubemail:latest container_name: dms-roundcube environment: - ROUNDCUBEMAIL_DEFAULT_HOST=mail.andreasknuth.de - ROUNDCUBEMAIL_DEFAULT_PORT=1443 # Dein IMAP-Port - ROUNDCUBEMAIL_SMTP_SERVER=mail.andreasknuth.de - ROUNDCUBEMAIL_SMTP_PORT=2587 - ROUNDCUBEMAIL_PLUGINS=archive,zipdownload,managesieve,password # Für Sieve (Auto-Reply/Forward), Password-Change volumes: - ./roundcube/:/var/roundcube/config/ ports: - "9000:80" # Intern auf 80, extern via Caddy depends_on: - mailserver restart: always networks: - dms_network - mail_network networks: dms_network: external: true mail_network: external: true