====== Mailcow Dockerized Mail Server ======
Environment: ''jwilder/nginx-proxy''
https://mailcow.github.io/mailcow-dockerized-docs/firststeps-rp/#nginx
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100m;
"webproxy" is the network from docker-compose-letsencrypt-nginx-proxy-companion.
version: '2.1'
services:
nginx-mailcow:
environment:
- LETSENCRYPT_HOST=${MAILCOW_HOSTNAME},${ADDITIONAL_SAN}
- LETSENCRYPT_EMAIL=${LETSENCRYPT_EMAIL}
- VIRTUAL_HOST=${MAILCOW_HOSTNAME},${ADDITIONAL_SAN}
- VIRTUAL_PROTO=http
- VIRTUAL_PORT=80
networks:
webproxy:
networks:
webproxy:
external:
name: webproxy
disable HTTPS and HTTP port, as [[https://github.com/docker/compose/pull/3939|you can't currently override this]].
nginx-mailcow:
…
# ports:
# - "${HTTPS_BIND:-0.0.0.0}:${HTTPS_PORT:-443}:${HTTPS_PORT:-443}"
# - "${HTTP_BIND:-0.0.0.0}:${HTTP_PORT:-80}:${HTTP_PORT:-80}"
"LETSENCRYPT_EMAIL" is a new variable
LETSENCRYPT_EMAIL=webmaster@example.com
http to https redirect must be disabled.
Please also deactivate the Strict-Transport-Security header in the http section, otherwise there will be an duplicate HSTS header error on https://www.ssllabs.com/ssltest
…
# add_header Strict-Transport-Security "max-age=15768000; includeSubDomains";
…
Source: [[https://github.com/mailcow/mailcow-dockerized/issues/570|Github Issue "reverse proxy in different network"]]
===== Troubleshooting =====
==== mysql container doesn't start properly ====
source mailcow.conf; docker-compose exec mysql-mailcow mysql_upgrade -uroot -p${DBROOT}
==== mysql container throws errors after DB migration/update ====
If you encounter these or similar errors:
[ERROR] Incorrect definition of table mysql.event: expected column 'sql_mode' at position 14 to have type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRE
SQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USE
R','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH','EMPTY_STRING_IS_NULL','SIMULTANEOUS_ASSIGNMENT'), found type set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','IGNORE_BAD_TABLE_OPTIONS','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE'
,'MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALU
[ERROR] mysqld: Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler.
Execute the following in the folder with mailcow's ''docker-compose.yml'':
docker-compose stop mysql-mailcow watchdog-mailcow
docker-compose run --rm --entrypoint '/bin/sh -c "gosu mysql mysqld --skip-grant-tables & sleep 10 && bash && exit 0"' mysql-mailcow
# then issue:
mysql_upgrade --force
exit
docker-compose up -d