Make use of docker-compose.override.yml to track changes + completely disable ipv6

https://cloud.gnous.fr/apps/deck/#/board/4/card/25
https://docs.mailcow.email/post_installation/firststeps-disable_ipv6/
This commit is contained in:
thopic 2022-10-04 09:14:20 +02:00
parent 80d14e4ac5
commit 1b32cb3c24
Signed by: thopic
GPG Key ID: 292DBBF0B54AD4C5
8 changed files with 65 additions and 42 deletions

1
.gitignore vendored
View File

@ -59,7 +59,6 @@ data/web/inc/vars.local.inc.php
data/web/inc/app_info.inc.php data/web/inc/app_info.inc.php
data/web/nextcloud*/ data/web/nextcloud*/
data/web/rc*/ data/web/rc*/
docker-compose.override.yml
mailcow.conf mailcow.conf
mailcow.conf_backup mailcow.conf_backup
rebuild-images.sh rebuild-images.sh

View File

@ -159,7 +159,7 @@ service lmtp {
} }
user = vmail user = vmail
} }
listen = *,[::] listen = *
ssl_cert = </etc/ssl/mail/cert.pem ssl_cert = </etc/ssl/mail/cert.pem
ssl_key = </etc/ssl/mail/key.pem ssl_key = </etc/ssl/mail/key.pem
userdb { userdb {

View File

@ -1,6 +1,5 @@
server { server {
listen 8081; listen 8081;
listen [::]:8081;
index index.php index.html; index index.php index.html;
server_name _; server_name _;
error_log /var/log/nginx/error.log; error_log /var/log/nginx/error.log;

View File

@ -1,2 +1 @@
listen ${HTTP_PORT}; listen ${HTTP_PORT};
listen [::]:${HTTP_PORT};

View File

@ -1,2 +1 @@
listen ${HTTPS_PORT} ssl http2; listen ${HTTPS_PORT} ssl http2;
listen [::]:${HTTPS_PORT} ssl http2;

View File

@ -6,7 +6,7 @@ pm.max_children = 15
pm.start_servers = 2 pm.start_servers = 2
pm.min_spare_servers = 2 pm.min_spare_servers = 2
pm.max_spare_servers = 4 pm.max_spare_servers = 4
listen = [::]:9001 listen = 9001
access.log = /proc/self/fd/2 access.log = /proc/self/fd/2
clear_env = no clear_env = no
catch_workers_output = yes catch_workers_output = yes
@ -21,7 +21,7 @@ pm.max_children = 50
pm.start_servers = 10 pm.start_servers = 10
pm.min_spare_servers = 10 pm.min_spare_servers = 10
pm.max_spare_servers = 15 pm.max_spare_servers = 15
listen = [::]:9002 listen = 9002
access.log = /proc/self/fd/2 access.log = /proc/self/fd/2
clear_env = no clear_env = no
catch_workers_output = yes catch_workers_output = yes

View File

@ -0,0 +1,58 @@
version: '2.1'
services:
nginx-mailcow:
expose:
- "${HTTP_PORT:-80}"
networks:
proxy:
mailcow-network:
aliases:
- nginx
labels:
- traefik.enable=true
- traefik.docker.network=proxy
- traefik.http.middlewares.mail-redirect-websecure.redirectscheme.scheme=https
- traefik.http.routers.mail-http.middlewares=mail-redirect-websecure
- traefik.http.routers.mail-http.rule=Host(`${MAILCOW_HOSTNAME}`)
- traefik.http.routers.mail-http.entrypoints=web
- traefik.http.routers.mail-https.rule=Host(`${MAILCOW_HOSTNAME}`)
- traefik.http.routers.mail-https.entrypoints=websecure
- traefik.http.routers.mail-https.tls=true
- traefik.http.routers.mail-https.tls.certresolver=myhttpchallenge
- traefik.http.services.mail.loadbalancer.server.port=80
- "co.elastic.logs/module=nginx"
- "co.elastic.logs/fileset=access"
certdumper:
image: humenius/traefik-certs-dumper
restart: always
# container_name: traefik_certdumper
network_mode: none
volumes:
# mount the folder which contains Traefik's `acme.json' file
# in this case Traefik is started from its own docker-compose in ../traefik
- ${DATA_PATH}/traefik:/traefik:ro
# mount mailcow's SSL folder
- ./data/assets/ssl/:/output:rw
environment:
# only change this, if you're using another domain for mailcow's web frontend compared to the standard config
- DOMAIN=${MAILCOW_HOSTNAME}
ipv6nat-mailcow:
image: bash:latest
restart: "no"
entrypoint: ["echo", "ipv6nat disabled in compose.override.yml"]
networks:
mailcow-network:
driver_opts:
com.docker.network.bridge.name: br-mailcow
enable_ipv6: false
ipam:
driver: default
config:
- subnet: ${IPV4_NETWORK:-172.22.1}.0/24
- subnet: ${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64}
proxy:
external: true

View File

@ -375,44 +375,15 @@ services:
- ./data/assets/ssl/:/etc/ssl/mail/:ro,z - ./data/assets/ssl/:/etc/ssl/mail/:ro,z
- ./data/conf/nginx/:/etc/nginx/conf.d/:z - ./data/conf/nginx/:/etc/nginx/conf.d/:z
- ./data/conf/rspamd/meta_exporter:/meta_exporter:ro,z - ./data/conf/rspamd/meta_exporter:/meta_exporter:ro,z
- sogo-web-vol-1:/usr/lib/GNUstep/SOGo/:z - sogo-web-vol-1:/usr/lib/GNUstep/SOGo/
expose: # ports:
- "${HTTP_PORT:-80}" # - "${HTTPS_BIND:-0.0.0.0}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}"
# - "${HTTP_BIND:-0.0.0.0}:${HTTP_PORT:-80}:${HTTP_PORT:-80}"
restart: always restart: always
networks: networks:
proxy:
mailcow-network: mailcow-network:
aliases: aliases:
- nginx - nginx
labels:
- traefik.enable=true
- traefik.docker.network=proxy
- traefik.http.middlewares.mail-redirect-websecure.redirectscheme.scheme=https
- traefik.http.routers.mail-http.middlewares=mail-redirect-websecure
- traefik.http.routers.mail-http.rule=Host(`${MAILCOW_HOSTNAME}`)
- traefik.http.routers.mail-http.entrypoints=web
- traefik.http.routers.mail-https.rule=Host(`${MAILCOW_HOSTNAME}`)
- traefik.http.routers.mail-https.entrypoints=websecure
- traefik.http.routers.mail-https.tls=true
- traefik.http.routers.mail-https.tls.certresolver=myhttpchallenge
- traefik.http.services.mail.loadbalancer.server.port=80
- "co.elastic.logs/module=nginx"
- "co.elastic.logs/fileset=access"
certdumper:
image: humenius/traefik-certs-dumper
restart: always
# container_name: traefik_certdumper
network_mode: none
volumes:
# mount the folder which contains Traefik's `acme.json' file
# in this case Traefik is started from its own docker-compose in ../traefik
- ${DATA_PATH}/traefik:/traefik:ro
# mount mailcow's SSL folder
- ./data/assets/ssl/:/output:rw
environment:
# only change this, if you're using another domain for mailcow's web frontend compared to the standard config
- DOMAIN=${MAILCOW_HOSTNAME}
acme-mailcow: acme-mailcow:
depends_on: depends_on:
@ -650,8 +621,6 @@ networks:
config: config:
- subnet: ${IPV4_NETWORK:-172.22.1}.0/24 - subnet: ${IPV4_NETWORK:-172.22.1}.0/24
- subnet: ${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64} - subnet: ${IPV6_NETWORK:-fd4d:6169:6c63:6f77::/64}
proxy:
external: true
volumes: volumes:
vmail-vol-1: vmail-vol-1: