NobGit
public nobgit read

NobMail

Based on mailcow: dockerized

Languages

Repository composition by tracked source files.

PHP
PHP 49% JavaScript 35% HTML 9% CSS 4% Shell 2% Python 1% Lua 0% Perl 0% Ruby 0% SCSS 0%
Create file Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git

Commit

Easier container names, allow to set HTTPS port, Typo fix

89b5d9bd
andryyy <[email protected]> 10 years ago
data/Dockerfiles/dovecot/Dockerfile |  2 +-
 data/conf/nginx/listen.template     |  1 +
 data/conf/nginx/site.conf           |  6 +--
 docker-compose.yml                  | 83 ++++++++++++++-----------------------
 generate_config.sh                  |  1 +
 5 files changed, 38 insertions(+), 55 deletions(-)
 create mode 100644 data/conf/nginx/listen.template

Diff

diff --git a/data/Dockerfiles/dovecot/Dockerfile b/data/Dockerfiles/dovecot/Dockerfile
index febc20a8..c6e2f4bd 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 00000000..e454e832
--- /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 d754eae1..1ee52f51 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 10b01c4a..0816a75d 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 cb1a516e..d39491c1 100755
--- a/generate_config.sh
+++ b/generate_config.sh
@@ -39,6 +39,7 @@ DBROOT=$(</dev/urandom tr -dc A-Za-z0-9 | head -c 28)
 # ------------------------------
 # You should leave that alone
 # Can also be 11.22.33.44:25 or 0.0.0.0:465 etc. for specific bindings
+HTTPS_PORT=443
 SMTP_PORT=25
 SMTPS_PORT=465
 SUBMISSION_PORT=587