Advertisement
Guest User

docker-compose.yml

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