public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
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
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