mail-fetch01/compose/mail/compose.yaml

106 lines
No EOL
3.3 KiB
YAML

x-logging: &default-logging
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
services:
mailserver:
image: mailserver/docker-mailserver:latest
container_name: mailserver
hostname: mail
domainname: theboxhub.ch
restart: unless-stopped
stop_grace_period: 1m
dns:
- 10.100.20.49
- 1.1.1.1
environment:
TZ: Europe/Zurich
ENABLE_FETCHMAIL: 1
FETCHMAIL_POLL: 60
OVERTAKE_IP: 1
ENABLE_SPAMASSASSIN: 1
ENABLE_CLAMAV: 0
SSL_TYPE: manual
SSL_CERT_PATH: /etc/letsencrypt/live/mailserver/fullchain.pem
SSL_KEY_PATH: /etc/letsencrypt/live/mailserver/privkey.pem
PERMIT_DOCKER: none
ONE_DIR: 1
DMS_DEBUG: 0
ports:
- "25:25"
- "143:143"
- "465:465"
- "587:587"
- "993:993"
volumes:
- /srv/mail-fetch01/data/mailserver/maildata:/var/mail
- /srv/mail-fetch01/config/mailserver:/tmp/docker-mailserver
- /srv/mail-fetch01/data/mailserver/state:/var/mail-state
- /srv/mail-fetch01/data/mailserver/logs:/var/log/mail
- /srv/mail-fetch01/data/mailserver/dkim:/etc/opendkim/keys
- /srv/mail-fetch01/data/mailserver/certs/fullchain.pem:/etc/letsencrypt/live/mailserver/fullchain.pem:ro
- /srv/mail-fetch01/data/mailserver/certs/privkey.pem:/etc/letsencrypt/live/mailserver/privkey.pem:ro
- /srv/mail-fetch01/config/mailserver/fetchmailrc:/etc/fetchmailrc:ro
cap_add:
- NET_ADMIN
- SYS_PTRACE
healthcheck:
test: ["CMD-SHELL", "ss -ltn | grep -q ':25' || exit 1"]
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
logging: *default-logging
db-mail:
image: mariadb:10.11
container_name: db-mail
restart: unless-stopped
environment:
TZ: Europe/Zurich
MYSQL_ROOT_PASSWORD: "MAILROOT_9kL4mQ2xT7vP1cD8"
MYSQL_DATABASE: "roundcube"
MYSQL_USER: "roundcube"
MYSQL_PASSWORD: "RCPASS_8xT2mQ7vL4pD1cK9"
volumes:
- /srv/mail-fetch01/data/mariadb:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
start_period: 15s
logging: *default-logging
roundcube:
image: roundcube/roundcubemail:latest
container_name: roundcube
restart: unless-stopped
depends_on:
db-mail:
condition: service_healthy
environment:
TZ: Europe/Zurich
ROUNDCUBEMAIL_DB_TYPE: mysql
ROUNDCUBEMAIL_DB_HOST: db-mail
ROUNDCUBEMAIL_DB_NAME: roundcube
ROUNDCUBEMAIL_DB_USER: roundcube
ROUNDCUBEMAIL_DB_PASSWORD: "RCPASS_8xT2mQ7vL4pD1cK9"
ROUNDCUBEMAIL_SKIN: elastic
ROUNDCUBEMAIL_DEFAULT_HOST: "tls://mail.theboxhub.ch"
ROUNDCUBEMAIL_DEFAULT_PORT: 143
ROUNDCUBEMAIL_SMTP_SERVER: "tls://mail.theboxhub.ch"
ROUNDCUBEMAIL_SMTP_PORT: 587
ROUNDCUBEMAIL_IMAP_CONN_OPTIONS: '{"ssl":{"verify_peer":true,"verify_peer_name":true,"allow_self_signed":false}}'
ROUNDCUBEMAIL_SMTP_CONN_OPTIONS: '{"ssl":{"verify_peer":true,"verify_peer_name":true,"allow_self_signed":false}}'
ports:
- "8080:80"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost/"]
interval: 30s
timeout: 10s
retries: 5
start_period: 20s
logging: *default-logging