services: mailserver: image: hardware/mailserver:1.1-stable container_name: mailserver_mailserver restart: unless-stopped domainname: odamus.com hostname: mail ports: - "25:25" - "110:110" - "143:143" - "465:465" - "587:587" - "993:993" - "995:995" - "4190:4190" - "11334:11334" environment: - FQDN=mail.odamus.com - DOMAIN=odamus.com - DBDRIVER=pgsql - DBUSER=odamus_mail - DBNAME=postfix - DBPORT=5432 - DBHOST=postgres_simple - DBPASS=2olT5bpUj2lJUhY8eYxvcqFIx4KB2m - RSPAMD_PASSWORD=PvA7Nuk54P4iuXhOKbZJ4UpR3yz6Sk - ADD_DOMAINS=nuuditalu.ee - ENABLE_POP3=true - ENABLE_FETCHMAIL=true - DISABLE_RSPAMD_MODULE=true - DISABLE_CLAMAV=true - RSPAMD_CONTROLLER_BIND=127.0.0.1:11334 - RSPAMD_SECURE_IP=127.0.0.1 - RSPAMD_ENABLE_PASSWORD=PvA7Nuk54P4iuXhOKbZJ4UpR3yz6Sk - RSPAMD_WWWDIR=/usr/share/rspamd/www volumes: - mailserver_mail:/var/mail - /etc/localtime:/etc/localtime:ro - mailserver_backups:/srv/backups - mailserver_ssl:/ssl - traefik_certs:/etc/letsencrypt/acme:ro - ./configs/postfix_custom_conf:/var/mail/postfix/custom.conf:ro - ./configs/postfix_sender_access:/var/mail/postfix/sender_access:ro - ./configs/dumpcerts_traefik:/usr/local/bin/dumpcerts.traefik.v2.sh:ro - ./configs/certs_helper:/usr/local/bin/certs_helper.sh:ro - ./configs/run_sh:/usr/local/bin/run.sh:ro networks: - traefik-network - db-migration labels: - "traefik.enable=true" - traefik.docker.network=traefik-network - traefik.constraint-label=traefik-network - traefik.http.routers.mailserver-http.middlewares=http-to-https - traefik.http.routers.mailserver-https.rule=Host(`spam.odamus.com`) - traefik.http.routers.mailserver-https.entrypoints=websecure - traefik.http.routers.mailserver-http.rule=Host(`spam.odamus.com`) - traefik.http.routers.mailserver-http.entrypoints=web - "traefik.http.routers.mailserver-https.tls.certresolver=mychallenge" - traefik.http.services.mailserver.loadbalancer.server.port=11334 - traefik.port=11334 postfixadmin: image: hardware/postfixadmin container_name: mailserver_postfixadmin restart: unless-stopped environment: - DBDRIVER=pgsql - DBUSER=odamus_mail - DBNAME=postfix - DBPORT=5432 - DBHOST=postgres_simple - DBPASS=2olT5bpUj2lJUhY8eYxvcqFIx4KB2m - DOMAIN=odamus.com volumes: - mailserver_postfixadmin:/postfixadmin - /etc/localtime:/etc/localtime - mailserver_backups:/srv/backups networks: - traefik-network - db-migration labels: - "traefik.enable=true" - traefik.docker.network=traefik-network - traefik.constraint-label=traefik-network - traefik.http.routers.postfixadmin-http.middlewares=http-to-https - traefik.http.routers.postfixadmin-https.rule=Host(`postfixadmin.odamus.com`) - traefik.http.routers.postfixadmin-https.entrypoints=websecure - traefik.http.routers.postfixadmin-http.rule=Host(`postfixadmin.odamus.com`) - traefik.http.routers.postfixadmin-http.entrypoints=web - "traefik.http.routers.postfixadmin-https.tls.certresolver=mychallenge" - traefik.http.services.postfixadmin.loadbalancer.server.port=8888 rainloop: image: hardware/rainloop container_name: mailserver_rainloop restart: unless-stopped volumes: - mailserver_rainloop:/rainloop/data - /etc/localtime:/etc/localtime - mailserver_backups:/srv/backups networks: - traefik-network labels: - "traefik.enable=true" - traefik.docker.network=traefik-network - traefik.constraint-label=traefik-network - traefik.http.routers.webmail-http.middlewares=http-to-https - traefik.http.routers.webmail-https.rule=Host(`webmail.odamus.com`) - traefik.http.routers.webmail-https.entrypoints=websecure - traefik.http.routers.webmail-http.rule=Host(`webmail.odamus.com`) - traefik.http.routers.webmail-http.entrypoints=web - "traefik.http.routers.webmail-https.tls.certresolver=mychallenge" - traefik.http.services.webmail.loadbalancer.server.port=8888 mta: image: nginx:latest container_name: mailserver_mta restart: unless-stopped volumes: - /etc/localtime:/etc/localtime - mailserver_html:/usr/share/nginx/html - mailserver_backups:/srv/backups networks: - traefik-network labels: - "traefik.enable=true" - traefik.docker.network=traefik-network - traefik.constraint-label=traefik-network - traefik.http.routers.mta-sts-https.rule=Host(`mta-sts.odamus.com`) - traefik.http.routers.mta-sts-https.entrypoints=websecure - traefik.http.routers.mta-sts-http.rule=Host(`mta-sts.odamus.com`) - traefik.http.routers.mta-sts-http.entrypoints=web - "traefik.http.routers.mta-sts-https.tls.certresolver=mychallenge" - traefik.http.services.mta-sts.loadbalancer.server.port=80 - traefik.http.routers.mta-sts-http.service=mta-sts - traefik.http.routers.mta-sts-https.service=mta-sts - traefik.http.routers.mail-odamus-https.rule=Host(`mail.odamus.com`) - traefik.http.routers.mail-odamus-https.entrypoints=websecure - traefik.http.routers.mail-odamus-http.rule=Host(`mail.odamus.com`) - traefik.http.routers.mail-odamus-http.entrypoints=web - "traefik.http.routers.mail-odamus-https.tls.certresolver=mychallenge" - traefik.http.services.mail-odamus.loadbalancer.server.port=80 - traefik.http.routers.mail-odamus-http.service=mta-sts - traefik.http.routers.mail-odamus-https.service=mta-sts volumes: mailserver_mail: external: true mailserver_backups: external: true mailserver_ssl: external: true mailserver_postfixadmin: external: true mailserver_rainloop: external: true mailserver_html: external: true traefik_certs: external: true networks: traefik-network: external: true db-migration: external: true