Advertisement
Guest User

mailcow

a guest
Feb 21st, 2022
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 23.86 KB | None | 0 0
  1. version: '2.1'
  2. services:
  3.  
  4.     unbound-mailcow:
  5.       image: mailcow/unbound:1.14
  6.       environment:
  7.         - TZ=${TZ}
  8.       volumes:
  9.         - ./data/hooks/unbound:/hooks:Z
  10.         - ./data/conf/unbound/unbound.conf:/etc/unbound/unbound.conf:ro,Z
  11.       restart: always
  12.       tty: true
  13.       networks:
  14.         mailcow-network:
  15.           ipv4_address: ${IPV4_NETWORK:-172.22.1}.254
  16.           aliases:
  17.             - unbound
  18.  
  19.     mysql-mailcow:
  20.       image: mariadb:10.5
  21.       depends_on:
  22.         - unbound-mailcow
  23.       stop_grace_period: 45s
  24.       volumes:
  25.         - mysql-vol-1:/var/lib/mysql/:Z
  26.         - mysql-socket-vol-1:/var/run/mysqld/:z
  27.         - ./data/conf/mysql/:/etc/mysql/conf.d/:ro,Z
  28.       environment:
  29.         - TZ=${TZ}
  30.         - MYSQL_ROOT_PASSWORD=${DBROOT}
  31.         - MYSQL_DATABASE=${DBNAME}
  32.         - MYSQL_USER=${DBUSER}
  33.         - MYSQL_PASSWORD=${DBPASS}
  34.         - MYSQL_INITDB_SKIP_TZINFO=1
  35.       restart: always
  36.       ports:
  37.         - "${SQL_PORT:-127.0.0.1:13306}:3306"
  38.       networks:
  39.         mailcow-network:
  40.           aliases:
  41.             - mysql
  42.  
  43.     redis-mailcow:
  44.       image: redis:6-alpine
  45.       volumes:
  46.         - redis-vol-1:/data/:Z
  47.       restart: always
  48.       ports:
  49.         - "${REDIS_PORT:-127.0.0.1:7654}:6379"
  50.       environment:
  51.         - TZ=${TZ}
  52.       sysctls:
  53.         - net.core.somaxconn=4096
  54.       networks:
  55.         mailcow-network:
  56.           ipv4_address: ${IPV4_NETWORK:-172.22.1}.249
  57.           aliases:
  58.             - redis
  59.  
  60.     clamd-mailcow:
  61.       image: mailcow/clamd:1.42
  62.       restart: always
  63.       dns:
  64.         - ${IPV4_NETWORK:-172.22.1}.254
  65.       environment:
  66.         - TZ=${TZ}
  67.         - SKIP_CLAMD=${SKIP_CLAMD:-n}
  68.       volumes:
  69.         - ./data/conf/clamav/:/etc/clamav/:Z
  70.       networks:
  71.         mailcow-network:
  72.           aliases:
  73.             - clamd
  74.  
  75.     rspamd-mailcow:
  76.       image: mailcow/rspamd:1.79
  77.       stop_grace_period: 30s
  78.       depends_on:
  79.         - dovecot-mailcow
  80.       environment:
  81.         - TZ=${TZ}
  82.         - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1}
  83.         - IPV6_NETWORK=${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64}
  84.         - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
  85.         - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
  86.       volumes:
  87.         - ./data/hooks/rspamd:/hooks:Z
  88.         - ./data/conf/rspamd/custom/:/etc/rspamd/custom:z
  89.         - ./data/conf/rspamd/override.d/:/etc/rspamd/override.d:Z
  90.         - ./data/conf/rspamd/local.d/:/etc/rspamd/local.d:Z
  91.         - ./data/conf/rspamd/plugins.d/:/etc/rspamd/plugins.d:Z
  92.         - ./data/conf/rspamd/lua/:/etc/rspamd/lua/:ro,Z
  93.         - ./data/conf/rspamd/rspamd.conf.local:/etc/rspamd/rspamd.conf.local:Z
  94.         - ./data/conf/rspamd/rspamd.conf.override:/etc/rspamd/rspamd.conf.override:Z
  95.         - rspamd-vol-1:/var/lib/rspamd:z
  96.       restart: always
  97.       hostname: rspamd
  98.       dns:
  99.         - ${IPV4_NETWORK:-172.22.1}.254
  100.       networks:
  101.         mailcow-network:
  102.           aliases:
  103.             - rspamd
  104.  
  105.     php-fpm-mailcow:
  106.       image: mailcow/phpfpm:1.78
  107.       command: "php-fpm -d date.timezone=${TZ} -d expose_php=0"
  108.       depends_on:
  109.         - redis-mailcow
  110.       volumes:
  111.         - ./data/hooks/phpfpm:/hooks:Z
  112.         - ./data/web:/web:z
  113.         - ./data/conf/rspamd/dynmaps:/dynmaps:ro,z
  114.         - ./data/conf/rspamd/custom/:/rspamd_custom_maps:z
  115.         - rspamd-vol-1:/var/lib/rspamd:z
  116.         - mysql-socket-vol-1:/var/run/mysqld/:z
  117.         - ./data/conf/sogo/:/etc/sogo/:z
  118.         - ./data/conf/rspamd/meta_exporter:/meta_exporter:ro,z
  119.         - ./data/conf/phpfpm/sogo-sso/:/etc/sogo-sso/:z
  120.         - ./data/conf/phpfpm/php-fpm.d/pools.conf:/usr/local/etc/php-fpm.d/z-pools.conf:Z
  121.         - ./data/conf/phpfpm/php-conf.d/opcache-recommended.ini:/usr/local/etc/php/conf.d/opcache-recommended.ini:Z
  122.         - ./data/conf/phpfpm/php-conf.d/upload.ini:/usr/local/etc/php/conf.d/upload.ini:Z
  123.         - ./data/conf/phpfpm/php-conf.d/other.ini:/usr/local/etc/php/conf.d/zzz-other.ini:Z
  124.         - ./data/conf/dovecot/global_sieve_before:/global_sieve/before:z
  125.         - ./data/conf/dovecot/global_sieve_after:/global_sieve/after:z
  126.         - ./data/assets/templates:/tpls:z
  127.         - ./data/conf/nginx/:/etc/nginx/conf.d/:z
  128.       dns:
  129.         - ${IPV4_NETWORK:-172.22.1}.254
  130.       environment:
  131.         - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
  132.         - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
  133.         - LOG_LINES=${LOG_LINES:-9999}
  134.         - TZ=${TZ}
  135.         - DBNAME=${DBNAME}
  136.         - DBUSER=${DBUSER}
  137.         - DBPASS=${DBPASS}
  138.         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
  139.         - MAILCOW_PASS_SCHEME=${MAILCOW_PASS_SCHEME:-BLF-CRYPT}
  140.         - IMAP_PORT=${IMAP_PORT:-143}
  141.         - IMAPS_PORT=${IMAPS_PORT:-993}
  142.         - POP_PORT=${POP_PORT:-110}
  143.         - POPS_PORT=${POPS_PORT:-995}
  144.         - SIEVE_PORT=${SIEVE_PORT:-4190}
  145.         - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1}
  146.         - IPV6_NETWORK=${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64}
  147.         - SUBMISSION_PORT=${SUBMISSION_PORT:-587}
  148.         - SMTPS_PORT=${SMTPS_PORT:-465}
  149.         - SMTP_PORT=${SMTP_PORT:-25}
  150.         - API_KEY=${API_KEY:-invalid}
  151.         - API_KEY_READ_ONLY=${API_KEY_READ_ONLY:-invalid}
  152.         - API_ALLOW_FROM=${API_ALLOW_FROM:-invalid}
  153.         - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
  154.         - SKIP_SOLR=${SKIP_SOLR:-y}
  155.         - SKIP_CLAMD=${SKIP_CLAMD:-n}
  156.         - SKIP_SOGO=${SKIP_SOGO:-n}
  157.         - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n}
  158.         - MASTER=${MASTER:-y}
  159.         - DEV_MODE=${DEV_MODE:-n}
  160.       restart: always
  161.       networks:
  162.         mailcow-network:
  163.           aliases:
  164.             - phpfpm
  165.  
  166.     sogo-mailcow:
  167.       image: mailcow/sogo:1.104
  168.       environment:
  169.         - DBNAME=${DBNAME}
  170.         - DBUSER=${DBUSER}
  171.         - DBPASS=${DBPASS}
  172.         - TZ=${TZ}
  173.         - LOG_LINES=${LOG_LINES:-9999}
  174.         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
  175.         - MAILCOW_PASS_SCHEME=${MAILCOW_PASS_SCHEME:-BLF-CRYPT}
  176.         - ACL_ANYONE=${ACL_ANYONE:-disallow}
  177.         - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n}
  178.         - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1}
  179.         - SOGO_EXPIRE_SESSION=${SOGO_EXPIRE_SESSION:-480}
  180.         - SKIP_SOGO=${SKIP_SOGO:-n}
  181.         - MASTER=${MASTER:-y}
  182.         - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
  183.         - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
  184.       dns:
  185.         - ${IPV4_NETWORK:-172.22.1}.254
  186.       volumes:
  187.         - ./data/hooks/sogo:/hooks:Z
  188.         - ./data/conf/sogo/:/etc/sogo/:z
  189.         - ./data/web/inc/init_db.inc.php:/init_db.inc.php:Z
  190.         - ./data/conf/sogo/custom-favicon.ico:/usr/lib/GNUstep/SOGo/WebServerResources/img/sogo.ico:z
  191.         - ./data/conf/sogo/custom-theme.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/theme.js:z
  192.         - ./data/conf/sogo/custom-sogo.js:/usr/lib/GNUstep/SOGo/WebServerResources/js/custom-sogo.js:z
  193.         - mysql-socket-vol-1:/var/run/mysqld/:z
  194.         - sogo-web-vol-1:/sogo_web:z
  195.         - sogo-userdata-backup-vol-1:/sogo_backup:Z
  196.       labels:
  197.         ofelia.enabled: "true"
  198.         ofelia.job-exec.sogo_sessions.schedule: "@every 1m"
  199.         ofelia.job-exec.sogo_sessions.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu sogo /usr/sbin/sogo-tool expire-sessions $${SOGO_EXPIRE_SESSION} || exit 0\""
  200.         ofelia.job-exec.sogo_ealarms.schedule: "@every 1m"
  201.         ofelia.job-exec.sogo_ealarms.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu sogo /usr/sbin/sogo-ealarms-notify -p /etc/sogo/sieve.creds || exit 0\""
  202.         ofelia.job-exec.sogo_eautoreply.schedule: "@every 24h"
  203.         ofelia.job-exec.sogo_eautoreply.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu sogo /usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.creds || exit 0\""
  204.         ofelia.job-exec.sogo_backup.schedule: "@every 24h"
  205.         ofelia.job-exec.sogo_backup.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu sogo /usr/sbin/sogo-tool backup /sogo_backup ALL || exit 0\""
  206.       restart: always
  207.       networks:
  208.         mailcow-network:
  209.           ipv4_address: ${IPV4_NETWORK:-172.22.1}.248
  210.           aliases:
  211.             - sogo
  212.  
  213.     dovecot-mailcow:
  214.       image: mailcow/dovecot:1.158
  215.       depends_on:
  216.         - mysql-mailcow
  217.       dns:
  218.         - ${IPV4_NETWORK:-172.22.1}.254
  219.       cap_add:
  220.         - NET_BIND_SERVICE
  221.       volumes:
  222.         - /opt/proxy/certs/mail.e-richsen.de/cert.pem:/etc/ssl/mail/cert.pem:ro
  223.         - /opt/proxy/certs/mail.e-richsen.de/key.pem:/etc/ssl/mail/key.pem:ro
  224.         - ./data/hooks/dovecot:/hooks:Z
  225.         - ./data/conf/dovecot:/etc/dovecot:z
  226.         - ./data/assets/ssl:/etc/ssl/mail/:ro,z
  227.         - ./data/conf/sogo/:/etc/sogo/:z
  228.         - ./data/conf/phpfpm/sogo-sso/:/etc/phpfpm/:z
  229.         - vmail-vol-1:/var/vmail:Z
  230.         - vmail-index-vol-1:/var/vmail_index:Z
  231.         - crypt-vol-1:/mail_crypt/:z
  232.         - ./data/conf/rspamd/custom/:/etc/rspamd/custom:z
  233.         - ./data/assets/templates:/templates:z
  234.         - rspamd-vol-1:/var/lib/rspamd:z
  235.         - mysql-socket-vol-1:/var/run/mysqld/:z
  236.       environment:
  237.         - DOVECOT_MASTER_USER=${DOVECOT_MASTER_USER:-}
  238.         - DOVECOT_MASTER_PASS=${DOVECOT_MASTER_PASS:-}
  239.         - LOG_LINES=${LOG_LINES:-9999}
  240.         - DBNAME=${DBNAME}
  241.         - DBUSER=${DBUSER}
  242.         - DBPASS=${DBPASS}
  243.         - TZ=${TZ}
  244.         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
  245.         - MAILCOW_PASS_SCHEME=${MAILCOW_PASS_SCHEME:-BLF-CRYPT}
  246.         - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1}
  247.         - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n}
  248.         - MAILDIR_GC_TIME=${MAILDIR_GC_TIME:-7200}
  249.         - ACL_ANYONE=${ACL_ANYONE:-disallow}
  250.         - SKIP_SOLR=${SKIP_SOLR:-y}
  251.         - MAILDIR_SUB=${MAILDIR_SUB:-}
  252.         - MASTER=${MASTER:-y}
  253.         - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
  254.         - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
  255.         - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
  256.       ports:
  257.         - "${DOVEADM_PORT:-127.0.0.1:19991}:12345"
  258.         - "${IMAP_PORT:-143}:143"
  259.         - "${IMAPS_PORT:-993}:993"
  260.         - "${POP_PORT:-110}:110"
  261.         - "${POPS_PORT:-995}:995"
  262.         - "${SIEVE_PORT:-4190}:4190"
  263.       restart: always
  264.       tty: true
  265.       labels:
  266.         ofelia.enabled: "true"
  267.         ofelia.job-exec.dovecot_imapsync_runner.schedule: "@every 1m"
  268.         ofelia.job-exec.dovecot_imapsync_runner.no-overlap: "true"
  269.         ofelia.job-exec.dovecot_imapsync_runner.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu nobody /usr/local/bin/imapsync_runner.pl || exit 0\""
  270.         ofelia.job-exec.dovecot_trim_logs.schedule: "@every 1m"
  271.         ofelia.job-exec.dovecot_trim_logs.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu vmail /usr/local/bin/trim_logs.sh || exit 0\""
  272.         ofelia.job-exec.dovecot_quarantine.schedule: "@every 20m"
  273.         ofelia.job-exec.dovecot_quarantine.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu vmail /usr/local/bin/quarantine_notify.py || exit 0\""
  274.         ofelia.job-exec.dovecot_clean_q_aged.schedule: "@every 24h"
  275.         ofelia.job-exec.dovecot_clean_q_aged.command: "/bin/bash -c \"[[ $${MASTER} == y ]] && /usr/local/bin/gosu vmail /usr/local/bin/clean_q_aged.sh || exit 0\""
  276.         ofelia.job-exec.dovecot_maildir_gc.schedule: "@every 30m"
  277.         ofelia.job-exec.dovecot_maildir_gc.command: "/bin/bash -c \"source /source_env.sh ; /usr/local/bin/gosu vmail /usr/local/bin/maildir_gc.sh\""
  278.         ofelia.job-exec.dovecot_sarules.schedule: "@every 24h"
  279.         ofelia.job-exec.dovecot_sarules.command: "/bin/bash -c \"/usr/local/bin/sa-rules.sh\""
  280.         ofelia.job-exec.dovecot_fts.schedule: "@every 24h"
  281.         ofelia.job-exec.dovecot_fts.command: "/usr/bin/curl http://solr:8983/solr/dovecot-fts/update?optimize=true"
  282.         ofelia.job-exec.dovecot_repl_health.schedule: "@every 5m"
  283.         ofelia.job-exec.dovecot_repl_health.command: "/bin/bash -c \"/usr/local/bin/gosu vmail /usr/local/bin/repl_health.sh\""
  284.       ulimits:
  285.         nproc: 65535
  286.         nofile:
  287.           soft: 20000
  288.           hard: 40000
  289.       networks:
  290.         mailcow-network:
  291.           ipv4_address: ${IPV4_NETWORK:-172.22.1}.250
  292.           aliases:
  293.             - dovecot
  294.         default:
  295.  
  296.     postfix-mailcow:
  297.       image: mailcow/postfix:1.66
  298.       depends_on:
  299.         - mysql-mailcow
  300.       volumes:
  301.         - /opt/proxy/certs/mail.e-richsen.de/cert.pem:/etc/ssl/mail/cert.pem:ro
  302.         - /opt/proxy/certs/mail.e-richsen.de/key.pem:/etc/ssl/mail/key.pem:ro
  303.         - ./data/hooks/postfix:/hooks:Z
  304.         - ./data/conf/postfix:/opt/postfix/conf:z
  305.         - ./data/assets/ssl:/etc/ssl/mail/:ro,z
  306.         - postfix-vol-1:/var/spool/postfix:z
  307.         - crypt-vol-1:/var/lib/zeyple:z
  308.         - rspamd-vol-1:/var/lib/rspamd:z
  309.         - mysql-socket-vol-1:/var/run/mysqld/:z
  310.       environment:
  311.         - LOG_LINES=${LOG_LINES:-9999}
  312.         - TZ=${TZ}
  313.         - DBNAME=${DBNAME}
  314.         - DBUSER=${DBUSER}
  315.         - DBPASS=${DBPASS}
  316.         - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
  317.         - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
  318.         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
  319.       cap_add:
  320.         - NET_BIND_SERVICE
  321.       ports:
  322.         - "${SMTP_PORT:-25}:25"
  323.         - "${SMTPS_PORT:-465}:465"
  324.         - "${SUBMISSION_PORT:-587}:587"
  325.       restart: always
  326.       dns:
  327.         - ${IPV4_NETWORK:-172.22.1}.254
  328.       networks:
  329.         mailcow-network:
  330.           ipv4_address: ${IPV4_NETWORK:-172.22.1}.253
  331.           aliases:
  332.             - postfix
  333.         default:
  334.  
  335.     memcached-mailcow:
  336.       image: memcached:alpine
  337.       restart: always
  338.       environment:
  339.         - TZ=${TZ}
  340.       networks:
  341.         mailcow-network:
  342.           aliases:
  343.             - memcached
  344.  
  345.     nginx-mailcow:
  346.       depends_on:
  347.         - sogo-mailcow
  348.         - php-fpm-mailcow
  349.         - redis-mailcow
  350.       image: nginx:mainline-alpine
  351.       dns:
  352.         - ${IPV4_NETWORK:-172.22.1}.254
  353.       command: /bin/sh -c "envsubst < /etc/nginx/conf.d/templates/listen_plain.template > /etc/nginx/conf.d/listen_plain.active &&
  354.        envsubst < /etc/nginx/conf.d/templates/listen_ssl.template > /etc/nginx/conf.d/listen_ssl.active &&
  355.        envsubst < /etc/nginx/conf.d/templates/sogo.template > /etc/nginx/conf.d/sogo.active &&
  356.        . /etc/nginx/conf.d/templates/server_name.template.sh > /etc/nginx/conf.d/server_name.active &&
  357.        . /etc/nginx/conf.d/templates/sites.template.sh > /etc/nginx/conf.d/sites.active &&
  358.        . /etc/nginx/conf.d/templates/sogo_eas.template.sh > /etc/nginx/conf.d/sogo_eas.active &&
  359.        nginx -qt &&
  360.        until ping phpfpm -c1 > /dev/null; do sleep 1; done &&
  361.        until ping sogo -c1 > /dev/null; do sleep 1; done &&
  362.        until ping redis -c1 > /dev/null; do sleep 1; done &&
  363.        until ping rspamd -c1 > /dev/null; do sleep 1; done &&
  364.        exec nginx -g 'daemon off;'"
  365.       environment:
  366.         - VIRTUAL_HOST=mail.e-richsen.de
  367.         - LETSENCRYPT_HOST=mail.e-richsen.de
  368.         - LETSENCRYPT_EMAIL=sven@e-richsen.de
  369.         - HTTPS_PORT=${HTTPS_PORT:-443}
  370.         - HTTP_PORT=${HTTP_PORT:-80}
  371.         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
  372.         - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1}
  373.         - TZ=${TZ}
  374.         - SKIP_SOGO=${SKIP_SOGO:-n}
  375.         - ALLOW_ADMIN_EMAIL_LOGIN=${ALLOW_ADMIN_EMAIL_LOGIN:-n}
  376.         - ADDITIONAL_SERVER_NAMES=${ADDITIONAL_SERVER_NAMES:-}
  377.       volumes:
  378.         - /opt/proxy/certs/mail.e-richsen.de/cert.pem:/etc/ssl/mail/cert.pem:ro
  379.         - /opt/proxy/certs/mail.e-richsen.de/key.pem:/etc/ssl/mail/key.pem:ro
  380.         - ./data/web:/web:ro,z
  381.         - ./data/conf/rspamd/dynmaps:/dynmaps:ro,z
  382.         - ./data/assets/ssl/:/etc/ssl/mail/:ro,z
  383.         - ./data/conf/nginx/:/etc/nginx/conf.d/:z
  384.         - ./data/conf/rspamd/meta_exporter:/meta_exporter:ro,z
  385.         - sogo-web-vol-1:/usr/lib/GNUstep/SOGo/:z
  386. #      ports:
  387. #        - "${HTTPS_BIND:-:}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}"
  388. #        - "${HTTP_BIND:-:}:${HTTP_PORT:-80}:${HTTP_PORT:-80}"
  389.       restart: always
  390.       networks:
  391.         mailcow-network:
  392.           aliases:
  393.             - nginx
  394.         default:
  395.  
  396.     acme-mailcow:
  397.       depends_on:
  398.         - nginx-mailcow
  399.       image: mailcow/acme:1.80
  400.       dns:
  401.         - ${IPV4_NETWORK:-172.22.1}.254
  402.       environment:
  403.         - LOG_LINES=${LOG_LINES:-9999}
  404.         - ACME_CONTACT=${ACME_CONTACT:-}
  405.         - ADDITIONAL_SAN=${ADDITIONAL_SAN}
  406.         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
  407.         - DBNAME=${DBNAME}
  408.         - DBUSER=${DBUSER}
  409.         - DBPASS=${DBPASS}
  410.         - SKIP_LETS_ENCRYPT=${SKIP_LETS_ENCRYPT:-n}
  411.         - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
  412.         - DIRECTORY_URL=${DIRECTORY_URL:-}
  413.         - ENABLE_SSL_SNI=${ENABLE_SSL_SNI:-n}
  414.         - SKIP_IP_CHECK=${SKIP_IP_CHECK:-n}
  415.         - SKIP_HTTP_VERIFICATION=${SKIP_HTTP_VERIFICATION:-n}
  416.         - ONLY_MAILCOW_HOSTNAME=${ONLY_MAILCOW_HOSTNAME:-n}
  417.         - LE_STAGING=${LE_STAGING:-n}
  418.         - TZ=${TZ}
  419.         - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
  420.         - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
  421.         - SNAT_TO_SOURCE=${SNAT_TO_SOURCE:-n}
  422.         - SNAT6_TO_SOURCE=${SNAT6_TO_SOURCE:-n}
  423.       volumes:
  424.         - ./data/web/.well-known/acme-challenge:/var/www/acme:z
  425.         - ./data/assets/ssl:/var/lib/acme/:z
  426.         - ./data/assets/ssl-example:/var/lib/ssl-example/:ro,Z
  427.         - mysql-socket-vol-1:/var/run/mysqld/:z
  428.       restart: always
  429.       networks:
  430.         mailcow-network:
  431.           aliases:
  432.             - acme
  433.  
  434.     netfilter-mailcow:
  435.       image: mailcow/netfilter:1.45
  436.       stop_grace_period: 30s
  437.       depends_on:
  438.         - dovecot-mailcow
  439.         - postfix-mailcow
  440.         - sogo-mailcow
  441.         - php-fpm-mailcow
  442.         - redis-mailcow
  443.       restart: always
  444.       privileged: true
  445.       environment:
  446.         - TZ=${TZ}
  447.         - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1}
  448.         - IPV6_NETWORK=${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64}
  449.         - SNAT_TO_SOURCE=${SNAT_TO_SOURCE:-n}
  450.         - SNAT6_TO_SOURCE=${SNAT6_TO_SOURCE:-n}
  451.         - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
  452.         - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
  453.       network_mode: "host"
  454.       volumes:
  455.         - /lib/modules:/lib/modules:ro
  456.  
  457.     watchdog-mailcow:
  458.       image: mailcow/watchdog:1.95
  459.       dns:
  460.         - ${IPV4_NETWORK:-172.22.1}.254
  461.       tmpfs:
  462.         - /tmp
  463.       volumes:
  464.         - rspamd-vol-1:/var/lib/rspamd:z
  465.         - mysql-socket-vol-1:/var/run/mysqld/:z
  466.         - postfix-vol-1:/var/spool/postfix:z
  467.         - ./data/assets/ssl:/etc/ssl/mail/:ro,z
  468.       restart: always
  469.       environment:
  470.         - IPV6_NETWORK=${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64}
  471.         - LOG_LINES=${LOG_LINES:-9999}
  472.         - TZ=${TZ}
  473.         - DBNAME=${DBNAME}
  474.         - DBUSER=${DBUSER}
  475.         - DBPASS=${DBPASS}
  476.         - DBROOT=${DBROOT}
  477.         - USE_WATCHDOG=${USE_WATCHDOG:-n}
  478.         - WATCHDOG_NOTIFY_EMAIL=${WATCHDOG_NOTIFY_EMAIL}
  479.         - WATCHDOG_NOTIFY_BAN=${WATCHDOG_NOTIFY_BAN:-y}
  480.         - WATCHDOG_SUBJECT=${WATCHDOG_SUBJECT:-Watchdog ALERT}
  481.         - WATCHDOG_EXTERNAL_CHECKS=${WATCHDOG_EXTERNAL_CHECKS:-n}
  482.         - WATCHDOG_MYSQL_REPLICATION_CHECKS=${WATCHDOG_MYSQL_REPLICATION_CHECKS:-n}
  483.         - WATCHDOG_VERBOSE=${WATCHDOG_VERBOSE:-n}
  484.         - MAILCOW_HOSTNAME=${MAILCOW_HOSTNAME}
  485.         - COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME:-mailcow-dockerized}
  486.         - IPV4_NETWORK=${IPV4_NETWORK:-172.22.1}
  487.         - IP_BY_DOCKER_API=${IP_BY_DOCKER_API:-0}
  488.         - CHECK_UNBOUND=${CHECK_UNBOUND:-1}
  489.         - SKIP_CLAMD=${SKIP_CLAMD:-n}
  490.         - SKIP_LETS_ENCRYPT=${SKIP_LETS_ENCRYPT:-n}
  491.         - SKIP_SOGO=${SKIP_SOGO:-n}
  492.         - HTTPS_PORT=${HTTPS_PORT:-443}
  493.         - REDIS_SLAVEOF_IP=${REDIS_SLAVEOF_IP:-}
  494.         - REDIS_SLAVEOF_PORT=${REDIS_SLAVEOF_PORT:-}
  495.         - EXTERNAL_CHECKS_THRESHOLD=${EXTERNAL_CHECKS_THRESHOLD:-1}
  496.         - NGINX_THRESHOLD=${NGINX_THRESHOLD:-5}
  497.         - UNBOUND_THRESHOLD=${UNBOUND_THRESHOLD:-5}
  498.         - REDIS_THRESHOLD=${REDIS_THRESHOLD:-5}
  499.         - MYSQL_THRESHOLD=${MYSQL_THRESHOLD:-5}
  500.         - MYSQL_REPLICATION_THRESHOLD=${MYSQL_REPLICATION_THRESHOLD:-1}
  501.         - SOGO_THRESHOLD=${SOGO_THRESHOLD:-3}
  502.         - POSTFIX_THRESHOLD=${POSTFIX_THRESHOLD:-8}
  503.         - CLAMD_THRESHOLD=${CLAMD_THRESHOLD:-15}
  504.         - DOVECOT_THRESHOLD=${DOVECOT_THRESHOLD:-12}
  505.         - DOVECOT_REPL_THRESHOLD=${DOVECOT_REPL_THRESHOLD:-20}
  506.         - PHPFPM_THRESHOLD=${PHPFPM_THRESHOLD:-5}
  507.         - RATELIMIT_THRESHOLD=${RATELIMIT_THRESHOLD:-1}
  508.         - FAIL2BAN_THRESHOLD=${FAIL2BAN_THRESHOLD:-1}
  509.         - ACME_THRESHOLD=${ACME_THRESHOLD:-1}
  510.         - RSPAMD_THRESHOLD=${RSPAMD_THRESHOLD:-5}
  511.         - OLEFY_THRESHOLD=${OLEFY_THRESHOLD:-5}
  512.         - MAILQ_THRESHOLD=${MAILQ_THRESHOLD:-20}
  513.         - MAILQ_CRIT=${MAILQ_CRIT:-30}
  514.       networks:
  515.         mailcow-network:
  516.           aliases:
  517.             - watchdog
  518.  
  519.     dockerapi-mailcow:
  520.       image: mailcow/dockerapi:1.40
  521.       security_opt:
  522.         - label=disable
  523.       restart: always
  524.       oom_kill_disable: true
  525.       dns:
  526.         - ${IPV4_NETWORK:-172.22.1}.254
  527.       environment:
  528.         - DBROOT=${DBROOT}
  529.         - TZ=${TZ}
  530.       volumes:
  531.         - /var/run/docker.sock:/var/run/docker.sock:ro
  532.       networks:
  533.         mailcow-network:
  534.           aliases:
  535.             - dockerapi
  536.  
  537.     solr-mailcow:
  538.       image: mailcow/solr:1.8
  539.       restart: always
  540.       volumes:
  541.         - solr-vol-1:/opt/solr/server/solr/dovecot-fts/data:Z
  542.       ports:
  543.         - "${SOLR_PORT:-127.0.0.1:18983}:8983"
  544.       environment:
  545.         - TZ=${TZ}
  546.         - SOLR_HEAP=${SOLR_HEAP:-1024}
  547.         - SKIP_SOLR=${SKIP_SOLR:-y}
  548.       networks:
  549.         mailcow-network:
  550.           aliases:
  551.             - solr
  552.  
  553.     olefy-mailcow:
  554.       image: mailcow/olefy:1.8
  555.       restart: always
  556.       environment:
  557.         - TZ=${TZ}
  558.         - OLEFY_BINDADDRESS=0.0.0.0
  559.         - OLEFY_BINDPORT=10055
  560.         - OLEFY_TMPDIR=/tmp
  561.         - OLEFY_PYTHON_PATH=/usr/bin/python3
  562.         - OLEFY_OLEVBA_PATH=/usr/bin/olevba3
  563.         - OLEFY_LOGLVL=20
  564.         - OLEFY_MINLENGTH=500
  565.         - OLEFY_DEL_TMP=1
  566.       networks:
  567.         mailcow-network:
  568.           aliases:
  569.             - olefy
  570.  
  571.     ofelia-mailcow:
  572.       image: mcuadros/ofelia:latest
  573.       restart: always
  574.       command: daemon --docker
  575.         - TZ=${TZ}
  576.       depends_on:
  577.         - sogo-mailcow
  578.         - dovecot-mailcow
  579.       labels:
  580.         ofelia.enabled: "true"
  581.       security_opt:
  582.         - label=disable
  583.       volumes:
  584.         - /var/run/docker.sock:/var/run/docker.sock:ro
  585.       networks:
  586.         mailcow-network:
  587.           aliases:
  588.             - ofelia
  589.  
  590.     ipv6nat-mailcow:
  591.       depends_on:
  592.         - unbound-mailcow
  593.         - mysql-mailcow
  594.         - redis-mailcow
  595.         - clamd-mailcow
  596.         - rspamd-mailcow
  597.         - php-fpm-mailcow
  598.         - sogo-mailcow
  599.         - dovecot-mailcow
  600.         - postfix-mailcow
  601.         - memcached-mailcow
  602.         - nginx-mailcow
  603.         - acme-mailcow
  604.         - netfilter-mailcow
  605.         - watchdog-mailcow
  606.         - dockerapi-mailcow
  607.         - solr-mailcow
  608.       environment:
  609.         - TZ=${TZ}
  610.       image: robbertkl/ipv6nat
  611.       security_opt:
  612.         - label=disable
  613.       restart: always
  614.       privileged: true
  615.       network_mode: "host"
  616.       volumes:
  617.         - /var/run/docker.sock:/var/run/docker.sock:ro
  618.         - /lib/modules:/lib/modules:ro
  619.  
  620. networks:
  621.   mailcow-network:
  622.     driver: bridge
  623.     driver_opts:
  624.       com.docker.network.bridge.name: br-mailcow
  625.     enable_ipv6: true
  626.     ipam:
  627.       driver: default
  628.       config:
  629.         - subnet: ${IPV4_NETWORK:-172.22.1}.0/24
  630.         - subnet: ${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64}
  631.   default:
  632.     external:
  633.       name: proxy-tier
  634.  
  635. volumes:
  636.   certs:
  637.   acme:
  638.   vhost.d:
  639.   html:
  640.   vmail-vol-1:
  641.   vmail-index-vol-1:
  642.   mysql-vol-1:
  643.   mysql-socket-vol-1:
  644.   redis-vol-1:
  645.   rspamd-vol-1:
  646.   solr-vol-1:
  647.   postfix-vol-1:
  648.   crypt-vol-1:
  649.   sogo-web-vol-1:
  650.   sogo-userdata-backup-vol-1:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement