version: "3.1" services: ketrenet-web: image: ketrenet-web container_name: ketrenet-web hostname: webserver build: context: web dockerfile: Dockerfile.web restart: always volumes: - ./web/etc/nginx/sites-enabled:/etc/nginx/sites-enabled:ro - ./web/etc/nginx/sites-available:/etc/nginx/sites-available:ro - ./web/etc/apache2/envvars:/etc/apache2/envvars:ro - ./web/etc/apache2/ports.conf:/etc/apache2/ports.conf:ro - ./web/etc/apache2/sites-enabled:/etc/apache2/sites-enabled:ro - ./web/etc/apache2/sites-available:/etc/apache2/sites-available:ro - ./keys/cron/etc/letsencrypt/live:/etc/letsencrypt/live:ro - ./keys/cron/etc/letsencrypt/archive:/etc/letsencrypt/archive:ro - ./web/entrypoint.sh:/entrypoint.sh:ro - ./data/log:/var/log:rw - ./www:/var/www:ro ports: - 80:80 - 443:443 ketrenet-mail: image: ketrenet-mail container_name: ketrenet-mail hostname: email build: context: mail dockerfile: Dockerfile.mail restart: always ports: - 143:143 # dovecot imap - 993:993 # dovecot imaps - 25:25 # postfix smtp - 465:465 # postfix smtps - 587:587 # postfix submission volumes: - ./keys/cron/etc/letsencrypt/live:/etc/letsencrypt/live:ro - ./keys/cron/etc/letsencrypt/archive:/etc/letsencrypt/archive:ro - ./mail/etc/mailname:/etc/mailname:ro - ./mail/etc/dovecot:/etc/dovecot:ro - ./mail/etc/amavis:/etc/amavis:ro - ./mail/etc/clamav:/etc/clamav:ro - ./mail/etc/hostname:/etc/hostname:ro - ./mail/etc/opendkim.conf:/etc/opendkim.conf:ro - ./mail/etc/opendkim:/etc/opendkim:ro - ./mail/etc/postfix:/etc/postfix:ro - ./mail/etc/postfix-policyd-spf-python:/etc/postfix-policyd-spf-python:ro - ./mail/etc/postgrey:/etc/postgrey:ro - ./mail/entrypoint.sh:/entrypoint.sh:ro - ./data/log:/var/log:rw - ./data/mail/var/mail:/var/mail:rw - ./data/mail/var/spool/mail:/var/spool/mail:rw - /home:/home:rw - ./www:/var/www:ro - ./data/mail/var/lib/clamav:/var/lib/clamav:rw # Keys - ./keys/mail/etc/dkimkeys:/etc/dkimkeys:ro - ./keys/mail/etc/spamassassin/sa-update-keys/:/etc/spamassassin/sa-update-keys:rw - ./keys/mail/etc/dovecot/private:/etc/dovecot-private:ro # Authentication of dovecot users via pam # #- /etc/passwd:/etc/systempasswd:ro #- /etc/group:/etc/systemgroup:ro #- /etc/shadow:/etc/systemshadow:ro #- /etc/gshadow:/etc/systemgshadow:ro # etc directories with permissions locked down ketrenet-roundcube: image: ketrenet-roundcube container_name: ketrenet-roundcube hostname: roundcube build: context: roundcube dockerfile: Dockerfile.roundcube restart: always environment: - ROUNDCUBEMAIL_DEFAULT_HOST=tls://ketrenos.com - ROUNDCUBEMAIL_SMTP_SERVER=tls://ketrenos.com - ROUNDCUBEMAIL_SMTP_PORT=587 ports: - 8124:80 volumes: - ./roundcube/var/roundcube:/var/roundcube/config:ro - ./data/roundcube/db:/var/roundcube/db:rw - ./data/roundcube/html:/var/www/html:rw ketrenet-cron: image: ketrenet-cron container_name: ketrenet-cron build: context: cron dockerfile: Dockerfile.cron restart: always volumes: - ./cron/etc/letsencrypt:/etc/letsencrypt:rw - ./keys/cron/etc/letsencrypt/live:/etc/letsencrypt/live:rw - ./keys/cron/etc/letsencrypt/archive:/etc/letsencrypt/archive:rw - ./cron/etc/cron.d:/etc/cron.d:ro - ./data/log:/var/log:rw - ./keys/letsencrypt/:/keys:ro - ./www:/var/www:rw - ./cron/entrypoint.sh:/entrypoint.sh:ro ketrenet-dns: image: ketrenet-dns container_name: ketrenet-dns hostname: dns build: context: dns dockerfile: Dockerfile.dns restart: always ports: - 53:53/udp # bind - 53:53/tcp # bind - 67:67/udp # dhcp - 68:68/udp # dhcp volumes: - ./keys/dns/ddns.key:/etc/ddns.key:ro - ./dns/etc/dhcp:/etc/dhcp:ro - ./dns/etc/bind:/etc/bind:ro - ./dns/entrypoint.sh:/entrypoint.sh:ro - ./data/log:/var/log:rw - ./data/dns/var/lib/:/var/lib:rw