diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile index febc20a88..c6e2f4bd5 100644 --- a/data/Dockerfiles/dovecot/Dockerfile +++ b/data/Dockerfiles/dovecot/Dockerfile @@ -22,7 +22,7 @@ RUN apt-get -y install dovecot-common \ syslog-ng \ syslog-ng-core \ ca-certificates \ - supervisor \ + supervisor \ wget \ curl \ build-essential \ diff --git a/data/conf/nginx/listen.template b/data/conf/nginx/listen.template new file mode 100644 index 000000000..e454e832e --- /dev/null +++ b/data/conf/nginx/listen.template @@ -0,0 +1 @@ +listen ${HTTPS_PORT}; diff --git a/data/conf/nginx/site.conf b/data/conf/nginx/site.conf index d754eae15..1ee52f511 100644 --- a/data/conf/nginx/site.conf +++ b/data/conf/nginx/site.conf @@ -1,5 +1,5 @@ server { - listen 443; + include /etc/nginx/conf.d/listen.active; ssl on; ssl_certificate /etc/ssl/mail/cert.pem; ssl_certificate_key /etc/ssl/mail/key.pem; @@ -72,7 +72,7 @@ server { proxy_set_header x-webobjects-server-protocol HTTP/1.0; proxy_set_header x-webobjects-remote-host $remote_addr; proxy_set_header x-webobjects-server-name $server_name; - proxy_set_header x-webobjects-server-url $scheme://$host; + proxy_set_header x-webobjects-server-url $scheme://$host:$server_port; proxy_set_header x-webobjects-server-port $server_port; client_body_buffer_size 128k; client_max_body_size 100m; @@ -86,7 +86,7 @@ server { proxy_set_header x-webobjects-server-protocol HTTP/1.0; proxy_set_header x-webobjects-remote-host $remote_addr; proxy_set_header x-webobjects-server-name $server_name; - proxy_set_header x-webobjects-server-url $scheme://$host; + proxy_set_header x-webobjects-server-url $scheme://$host:$server_port; proxy_set_header x-webobjects-server-port $server_port; #proxy_connect_timeout 90; #proxy_send_timeout 90; diff --git a/docker-compose.yml b/docker-compose.yml index 10b01c4a0..0816a75d8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '2' services: - pdns-mailcow: + pdns: image: andryyy/mailcow-dockerized:pdns volumes: - ./data/conf/pdns/:/etc/powerdns/ @@ -9,13 +9,11 @@ services: networks: mailcow-network: ipv4_address: 172.22.1.254 - aliases: - - pdns - mysql-mailcow: + mysql: image: mariadb:10.1 depends_on: - - pdns-mailcow + - pdns command: mysqld --default-time-zone="${TZ}" volumes: - mysql-vol-1:/var/lib/mysql/ @@ -31,13 +29,11 @@ services: restart: always networks: mailcow-network: - aliases: - - mysql - redis-mailcow: + redis: image: redis depends_on: - - pdns-mailcow + - pdns volumes: - redis-vol-1:/data/ restart: always @@ -46,13 +42,11 @@ services: dns_search: mailcow-network networks: mailcow-network: - aliases: - - redis - rspamd-mailcow: + rspamd: image: andryyy/mailcow-dockerized:rspamd depends_on: - - pdns-mailcow + - pdns volumes: - ./data/conf/rspamd/override.d/:/etc/rspamd/override.d:ro - ./data/conf/rspamd/local.d/:/etc/rspamd/local.d:ro @@ -65,14 +59,12 @@ services: dns_search: mailcow-network networks: mailcow-network: - aliases: - - rspamd - php-fpm-mailcow: + phpfpm: image: andryyy/mailcow-dockerized:phpfpm command: "php-fpm -d date.timezone=${TZ}" depends_on: - - pdns-mailcow + - pdns volumes: - ./data/web:/web:ro - ./data/conf/rspamd/dynmaps:/dynmaps:ro @@ -88,14 +80,12 @@ services: restart: always networks: mailcow-network: - aliases: - - phpfpm - sogo-mailcow: + sogo: image: andryyy/mailcow-dockerized:sogo depends_on: - - pdns-mailcow - - mysql-mailcow + - pdns + - mysql environment: - DBNAME=${DBNAME} - DBUSER=${DBUSER} @@ -110,13 +100,11 @@ services: restart: always networks: mailcow-network: - aliases: - - sogo - rmilter-mailcow: + rmilter: image: andryyy/mailcow-dockerized:rmilter depends_on: - - pdns-mailcow + - pdns volumes: - ./data/conf/rmilter/:/etc/rmilter.conf.d/:ro restart: always @@ -125,19 +113,17 @@ services: dns_search: mailcow-network networks: mailcow-network: - aliases: - - rmilter - dovecot-mailcow: + dovecot: image: andryyy/mailcow-dockerized:dovecot depends_on: - - pdns-mailcow + - pdns volumes: - ./data/conf/dovecot:/etc/dovecot - ./data/assets/ssl:/etc/ssl/mail/:ro - vmail-vol-1:/var/vmail volumes_from: - - sogo-mailcow + - sogo environment: - DBNAME=${DBNAME} - DBUSER=${DBUSER} @@ -155,13 +141,11 @@ services: hostname: ${MAILCOW_HOSTNAME} networks: mailcow-network: - aliases: - - dovecot - postfix-mailcow: + postfix: image: andryyy/mailcow-dockerized:postfix depends_on: - - pdns-mailcow + - pdns volumes: - ./data/conf/postfix:/opt/postfix/conf - ./data/assets/ssl:/etc/ssl/mail/:ro @@ -180,46 +164,43 @@ services: dns_search: mailcow-network networks: mailcow-network: - aliases: - - postfix - memcached-mailcow: + memcached: image: memcached depends_on: - - pdns-mailcow + - pdns restart: always dns: - 172.22.1.254 dns_search: mailcow-network networks: mailcow-network: - aliases: - - memcached - nginx-mailcow: + nginx: depends_on: - - mysql-mailcow - - sogo-mailcow - - php-fpm-mailcow - - rspamd-mailcow + - mysql + - sogo + - phpfpm + - rspamd image: nginx:mainline + command: /bin/bash -c "envsubst < /etc/nginx/conf.d/listen.template > /etc/nginx/conf.d/listen.active && nginx -g 'daemon off;'" + environment: + - HTTPS_PORT=${HTTPS_PORT} volumes_from: - - sogo-mailcow + - sogo 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/:ro + - ./data/conf/nginx/:/etc/nginx/conf.d/:rw dns: - 172.22.1.254 dns_search: mailcow-network ports: - - "443:443" + - "${HTTPS_PORT}:${HTTPS_PORT}" restart: always networks: mailcow-network: - aliases: - - nginx networks: mailcow-network: diff --git a/generate_config.sh b/generate_config.sh index cb1a516e5..d39491c12 100755 --- a/generate_config.sh +++ b/generate_config.sh @@ -39,6 +39,7 @@ DBROOT=$(