services-mail/docker-compose.yml
2024-03-09 23:39:54 +00:00

110 lines
2.5 KiB
YAML

version: '2'
name: mailuwuemail
volumes:
# SSL
certs:
vhost.d:
html:
acme:
# mail
mail_data:
mail_state:
# webmail
roundcube_app:
roundcube_sqlite:
services:
# Mail
mail:
image: docker.io/mailserver/docker-mailserver:latest
hostname: mail
domainname: uwu.email
container_name: mail
ports:
- "25:25"
- "587:587"
- "465:465"
- "143:143"
- "993:993"
volumes:
- mail_data:/var/mail/
- mail_state:/var/mail-state/
- certs:/etc/letsencrypt/live/
- ./config/:/tmp/docker-mailserver/
environment:
- SSL_TYPE=letsencrypt
- LETSENCRYPT_HOST=mail.uwu.email
- VIRTUAL_HOST=mail.uwu.email
- ONE_DIR=1
- DMS_DEBUG=1
- SPOOF_PROTECTION=0 #1
- REPORT_RECIPIENT=1
- ENABLE_SPAMASSASSIN=0
- ENABLE_CLAMAV=0
- ENABLE_FAIL2BAN=1
- ENABLE_POSTGREY=0
cap_add:
- NET_ADMIN
- SYS_PTRACE
restart: always
webmail:
image: docker.io/roundcube/roundcubemail:latest
hostname: webmail.uwu.email
container_name: webmail
restart: always
expose:
- 80
environment:
- ROUNDCUBEMAIL_DB_TYPE=sqlite
- ROUNDCUBEMAIL_SKIN=elastic
- ROUNDCUBEMAIL_DEFAULT_HOST=tls://mail.uwu.email
- ROUNDCUBEMAIL_SMTP_SERVER=tls://mail.uwu.email
- VIRTUAL_HOST=webmail.uwu.email
- LETSENCRYPT_HOST=webmail.uwu.email
- ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE=9M
volumes:
- roundcube_app:/var/www/html
# TODO Use Postgres
- roundcube_sqlite:/var/roundcube/db
networks:
- proxy-tier
- default
# SSL
reverse_proxy:
image: docker.io/nginxproxy/nginx-proxy:alpine
restart: always
labels:
com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
volumes:
- certs:/etc/nginx/certs:ro
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/tmp/docker.sock:ro
- ./config/nginx/uploadsize.conf:/etc/nginx/conf.d/uploadsize.conf:ro
ports:
- 80:80
- 443:443
networks:
- proxy-tier
letsencrypt-companion:
image: docker.io/nginxproxy/acme-companion
restart: always
volumes:
- certs:/etc/nginx/certs
- acme:/etc/acme.sh
- vhost.d:/etc/nginx/vhost.d
- html:/usr/share/nginx/html
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- proxy-tier
depends_on:
- reverse_proxy
environment:
#- ACME_CA_URI=https://acme-staging-v02.api.letsencrypt.org/directory # test-server
- DEFAULT_EMAIL=admin@uwu.email
networks:
proxy-tier: