272 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			272 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
version: '2.1'
 | 
						|
 | 
						|
services:
 | 
						|
    bind9-mailcow:
 | 
						|
      image: resystit/bind9
 | 
						|
      command: "named -c /etc/bind/named.conf -g -u named -4"
 | 
						|
      depends_on:
 | 
						|
        mysql-mailcow:
 | 
						|
          condition: service_healthy
 | 
						|
      volumes:
 | 
						|
        - ./data/conf/bind9/named.conf:/etc/bind/named.conf
 | 
						|
      restart: always
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          ipv4_address: 172.22.1.254
 | 
						|
          aliases:
 | 
						|
            - bind9
 | 
						|
 | 
						|
    mysql-mailcow:
 | 
						|
      image: mariadb:10.1
 | 
						|
      healthcheck:
 | 
						|
        test: ["CMD", "mysqladmin", "ping", "--host", "localhost", "--silent"]
 | 
						|
        interval: 10s
 | 
						|
        timeout: 30s
 | 
						|
        retries: 5
 | 
						|
      volumes:
 | 
						|
        - mysql-vol-1:/var/lib/mysql/
 | 
						|
        - ./data/conf/mysql/:/etc/mysql/conf.d/:ro
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      environment:
 | 
						|
        - MYSQL_ROOT_PASSWORD=${DBROOT}
 | 
						|
        - MYSQL_DATABASE=${DBNAME}
 | 
						|
        - MYSQL_USER=${DBUSER}
 | 
						|
        - MYSQL_PASSWORD=${DBPASS}
 | 
						|
      restart: always
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          aliases:
 | 
						|
            - mysql
 | 
						|
 | 
						|
    redis-mailcow:
 | 
						|
      image: redis
 | 
						|
      depends_on:
 | 
						|
        - bind9-mailcow
 | 
						|
      volumes:
 | 
						|
        - redis-vol-1:/data/
 | 
						|
      restart: always
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          aliases:
 | 
						|
            - redis
 | 
						|
 | 
						|
    rspamd-mailcow:
 | 
						|
      image: mailcow/rspamd
 | 
						|
      build: ./data/Dockerfiles/rspamd
 | 
						|
      command: > 
 | 
						|
        /bin/bash -c "
 | 
						|
        sleep 5;
 | 
						|
        /usr/bin/rspamd -f -u _rspamd -g _rspamd
 | 
						|
        "
 | 
						|
      depends_on:
 | 
						|
        nginx-mailcow:
 | 
						|
          condition: service_healthy
 | 
						|
      volumes:
 | 
						|
        - ./data/conf/rspamd/override.d/:/etc/rspamd/override.d:ro
 | 
						|
        - ./data/conf/rspamd/local.d/:/etc/rspamd/local.d:ro
 | 
						|
        - ./data/conf/rspamd/lua/:/etc/rspamd/lua/:ro
 | 
						|
        - dkim-vol-1:/data/dkim
 | 
						|
        - rspamd-vol-1:/var/lib/rspamd
 | 
						|
      restart: always
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          ipv4_address: 172.22.1.253
 | 
						|
          aliases:
 | 
						|
            - rspamd
 | 
						|
 | 
						|
    php-fpm-mailcow:
 | 
						|
      image: mailcow/phpfpm
 | 
						|
      build: ./data/Dockerfiles/php-fpm
 | 
						|
      command: "php-fpm -d date.timezone=${TZ}"
 | 
						|
      depends_on:
 | 
						|
        - bind9-mailcow
 | 
						|
      volumes:
 | 
						|
        - ./data/web:/web:ro
 | 
						|
        - ./data/conf/rspamd/dynmaps:/dynmaps:ro
 | 
						|
        - dkim-vol-1:/data/dkim
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      environment:
 | 
						|
        - DBNAME=${DBNAME}
 | 
						|
        - DBUSER=${DBUSER}
 | 
						|
        - DBPASS=${DBPASS}
 | 
						|
        - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
 | 
						|
      restart: always
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          aliases:
 | 
						|
            - phpfpm
 | 
						|
 | 
						|
    sogo-mailcow:
 | 
						|
      image: mailcow/sogo
 | 
						|
      build: ./data/Dockerfiles/sogo
 | 
						|
      depends_on:
 | 
						|
        - bind9-mailcow
 | 
						|
      environment:
 | 
						|
        - DBNAME=${DBNAME}
 | 
						|
        - DBUSER=${DBUSER}
 | 
						|
        - DBPASS=${DBPASS}
 | 
						|
        - TZ=${TZ}
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      volumes:
 | 
						|
        - ./data/conf/sogo/:/etc/sogo/
 | 
						|
        - /usr/lib/GNUstep/SOGo/WebServerResources/
 | 
						|
      restart: always
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          ipv4_address: 172.22.1.252
 | 
						|
          aliases:
 | 
						|
            - sogo
 | 
						|
 | 
						|
    rmilter-mailcow:
 | 
						|
      image: mailcow/rmilter
 | 
						|
      build: ./data/Dockerfiles/rmilter
 | 
						|
      depends_on:
 | 
						|
        - bind9-mailcow
 | 
						|
      volumes:
 | 
						|
        - ./data/conf/rmilter/:/etc/rmilter.conf.d/:ro
 | 
						|
      restart: always
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          aliases:
 | 
						|
            - rmilter
 | 
						|
 | 
						|
    dovecot-mailcow:
 | 
						|
      image: mailcow/dovecot
 | 
						|
      build: ./data/Dockerfiles/dovecot
 | 
						|
      depends_on:
 | 
						|
        - bind9-mailcow
 | 
						|
      volumes:
 | 
						|
        - ./data/conf/dovecot:/usr/local/etc/dovecot
 | 
						|
        - ./data/assets/ssl:/etc/ssl/mail/:ro
 | 
						|
        - ./data/conf/sogo/:/etc/sogo/
 | 
						|
        - vmail-vol-1:/var/vmail
 | 
						|
        - crypt-vol-1:/mail_crypt/
 | 
						|
      environment:
 | 
						|
        - DBNAME=${DBNAME}
 | 
						|
        - DBUSER=${DBUSER}
 | 
						|
        - DBPASS=${DBPASS}
 | 
						|
      ports:
 | 
						|
        - "${IMAP_PORT:-143}:143"
 | 
						|
        - "${IMAPS_PORT:-993}:993"
 | 
						|
        - "${POP_PORT-110}:110"
 | 
						|
        - "${POPS_PORT:-995}:995"
 | 
						|
        - "${SIEVE_PORT:-4190}:4190"
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      restart: always
 | 
						|
      hostname: ${MAILCOW_HOSTNAME}
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          aliases:
 | 
						|
            - dovecot
 | 
						|
 | 
						|
    postfix-mailcow:
 | 
						|
      image: mailcow/postfix
 | 
						|
      build: ./data/Dockerfiles/postfix
 | 
						|
      depends_on:
 | 
						|
        - bind9-mailcow
 | 
						|
      volumes:
 | 
						|
        - ./data/conf/postfix:/opt/postfix/conf
 | 
						|
        - ./data/assets/ssl:/etc/ssl/mail/:ro
 | 
						|
        - postfix-vol-1:/var/spool/postfix
 | 
						|
        - crypt-vol-1:/var/lib/zeyple
 | 
						|
      environment:
 | 
						|
        - DBNAME=${DBNAME}
 | 
						|
        - DBUSER=${DBUSER}
 | 
						|
        - DBPASS=${DBPASS}
 | 
						|
      ports:
 | 
						|
        - "${SMTP_PORT:-25}:25"
 | 
						|
        - "${SMTPS_PORT:-465}:465"
 | 
						|
        - "${SUBMISSION_PORT:-587}:587"
 | 
						|
      restart: always
 | 
						|
      hostname: ${MAILCOW_HOSTNAME}
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          aliases:
 | 
						|
            - postfix
 | 
						|
 | 
						|
    memcached-mailcow:
 | 
						|
      image: memcached
 | 
						|
      depends_on:
 | 
						|
        - bind9-mailcow
 | 
						|
      restart: always
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          aliases:
 | 
						|
            - memcached
 | 
						|
 | 
						|
    nginx-mailcow:
 | 
						|
      depends_on:
 | 
						|
        - sogo-mailcow
 | 
						|
        - php-fpm-mailcow
 | 
						|
      image: nginx:mainline
 | 
						|
      healthcheck:
 | 
						|
        test: ["CMD", "ping", "php-fpm-mailcow", "-c", "10"]
 | 
						|
        interval: 10s
 | 
						|
        timeout: 30s
 | 
						|
        retries: 5
 | 
						|
      command: /bin/bash -c "envsubst < /etc/nginx/conf.d/templates/listen_plain.template > /etc/nginx/conf.d/listen_plain.active &&
 | 
						|
        envsubst < /etc/nginx/conf.d/templates/listen_ssl.template > /etc/nginx/conf.d/listen_ssl.active &&
 | 
						|
        envsubst < /etc/nginx/conf.d/templates/server_name.template > /etc/nginx/conf.d/server_name.active &&
 | 
						|
        nginx -g 'daemon off;'"
 | 
						|
      environment:
 | 
						|
        - HTTPS_PORT=${HTTPS_PORT:-443}
 | 
						|
        - HTTP_PORT=${HTTP_PORT:-80}
 | 
						|
        - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
 | 
						|
      volumes:
 | 
						|
        - ./data/web:/web:ro
 | 
						|
        - ./data/conf/rspamd/dynmaps:/dynmaps:ro
 | 
						|
        - ./data/assets/ssl/:/etc/ssl/mail/:ro
 | 
						|
        - ./data/conf/nginx/:/etc/nginx/conf.d/:rw
 | 
						|
      dns:
 | 
						|
        - 172.22.1.254
 | 
						|
      dns_search: mailcow-network
 | 
						|
      ports:
 | 
						|
        - "${HTTPS_BIND:-0.0.0.0}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}"
 | 
						|
        - "${HTTP_BIND:-127.0.0.1}:${HTTP_PORT:-80}:${HTTP_PORT:-80}"
 | 
						|
      restart: always
 | 
						|
      networks:
 | 
						|
        mailcow-network:
 | 
						|
          ipv4_address: 172.22.1.251
 | 
						|
          aliases:
 | 
						|
            - nginx
 | 
						|
 | 
						|
networks:
 | 
						|
  mailcow-network:
 | 
						|
    driver: bridge
 | 
						|
    ipam:
 | 
						|
      driver: default
 | 
						|
      config:
 | 
						|
        - subnet: 172.22.1.0/24
 | 
						|
 | 
						|
volumes:
 | 
						|
  vmail-vol-1:
 | 
						|
  mysql-vol-1:
 | 
						|
  dkim-vol-1:
 | 
						|
  redis-vol-1:
 | 
						|
  rspamd-vol-1:
 | 
						|
  postfix-vol-1:
 | 
						|
  crypt-vol-1:
 |