From 3c9cae5d06c10e30a06d5ba0200415bcee643f35 Mon Sep 17 00:00:00 2001
From: Ionut Filip
Date: Mon, 22 Oct 2018 15:13:18 +0300
Subject: [PATCH] Added replicas variables for core containers
- Added back restart: always on compose flavor
- Moved Log driver from .env to docker-compose.yml
---
setup/flavors/compose/docker-compose.yml | 12 +++++++++
setup/flavors/compose/mailu.env | 2 +-
setup/flavors/stack/docker-compose.yml | 11 ++++----
setup/templates/steps/stack/03_expose.html | 3 ++-
setup/templates/steps/stack/04_replicas.html | 28 ++++++++++++++++++++
5 files changed, 49 insertions(+), 7 deletions(-)
create mode 100644 setup/templates/steps/stack/04_replicas.html
diff --git a/setup/flavors/compose/docker-compose.yml b/setup/flavors/compose/docker-compose.yml
index b01bb8fd..daea844e 100644
--- a/setup/flavors/compose/docker-compose.yml
+++ b/setup/flavors/compose/docker-compose.yml
@@ -10,13 +10,17 @@ services:
# External dependencies
redis:
image: redis:alpine
+ restart: always
volumes:
- "{{ root }}/redis:/data"
# Core services
front:
image: mailu/nginx:{{ version }}
+ restart: always
env_file: {{ env }}
+ logging:
+ driver: {{ log_driver or 'json-file' }}
ports:
{% for port in (80, 443, 25, 465, 587, 110, 995, 143, 993) %}
{% if bind4 %}
@@ -31,6 +35,7 @@ services:
admin:
image: mailu/admin:{{ version }}
+ restart: always
env_file: {{ env }}
{% if not admin_enabled %}
ports:
@@ -44,6 +49,7 @@ services:
imap:
image: mailu/dovecot:{{ version }}
+ restart: always
env_file: {{ env }}
volumes:
- "{{ root }}/mail:/mail"
@@ -53,6 +59,7 @@ services:
smtp:
image: mailu/postfix:{{ version }}
+ restart: always
env_file: {{ env }}
volumes:
- "{{ root }}/overrides:/overrides"
@@ -63,6 +70,7 @@ services:
{% if antispam_enabled %}
antispam:
image: mailu/rspamd:{{ version }}
+ restart: always
env_file: {{ env }}
volumes:
- "{{ root }}/filter:/var/lib/rspamd"
@@ -75,6 +83,7 @@ services:
{% if antivirus_enabled %}
antivirus:
image: mailu/clamav:{{ version }}
+ restart: always
env_file: {{ env }}
volumes:
- "{{ root }}/filter:/data"
@@ -83,6 +92,7 @@ services:
{% if webdav_enabled %}
webdav:
image: mailu/radicale:{{ version }}
+ restart: always
env_file: {{ env }}
volumes:
- "{{ root }}/dav:/data"
@@ -91,6 +101,7 @@ services:
{% if fetchmail_enabled %}
fetchmail:
image: mailu/fetchmail:{{ version }}
+ restart: always
env_file: {{ env }}
{% endif %}
@@ -98,6 +109,7 @@ services:
{% if webmail_type != 'none' %}
webmail:
image: mailu/{{ webmail_type }}:{{ version }}
+ restart: always
env_file: {{ env }}
volumes:
- "{{ root }}/webmail:/data"
diff --git a/setup/flavors/compose/mailu.env b/setup/flavors/compose/mailu.env
index 9fc1197d..9433ecce 100644
--- a/setup/flavors/compose/mailu.env
+++ b/setup/flavors/compose/mailu.env
@@ -138,7 +138,7 @@ DOMAIN_REGISTRATION=true
# json-file (default)
# journald (On systemd platforms, useful for Fail2Ban integration)
# syslog (Non systemd platforms, Fail2Ban integration. Disables `docker-compose log` for front!)
-LOG_DRIVER={{ log_driver or 'json-file' }}
+# LOG_DRIVER={{ log_driver or 'json-file' }}
# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME={{ compose_project_name or 'mailu' }}
diff --git a/setup/flavors/stack/docker-compose.yml b/setup/flavors/stack/docker-compose.yml
index f27b661f..728135d5 100644
--- a/setup/flavors/stack/docker-compose.yml
+++ b/setup/flavors/stack/docker-compose.yml
@@ -10,7 +10,6 @@ services:
# External dependencies
redis:
image: redis:alpine
- restart: always
volumes:
- "{{ root }}/redis:/data"
@@ -18,6 +17,8 @@ services:
front:
image: mailu/nginx:{{ version }}
env_file: {{ env }}
+ logging:
+ driver: {{ log_driver or 'json-file' }}
ports:
{% for port in (80, 443, 25, 465, 587, 110, 995, 143, 993) %}
- target: {{ port }}
@@ -27,7 +28,7 @@ services:
volumes:
- "{{ root }}/certs:/certs"
deploy:
- replicas: 1
+ replicas: {{ front_replicas }}
admin:
image: mailu/admin:{{ version }}
@@ -40,7 +41,7 @@ services:
- "{{ root }}/data:/data"
- "{{ root }}/dkim:/dkim"
deploy:
- replicas: 1
+ replicas: {{ admin_replicas }}
imap:
image: mailu/dovecot:{{ version }}
@@ -52,7 +53,7 @@ services:
- "{{ root }}/mail:/mail"
- "{{ root }}/overrides:/overrides"
deploy:
- replicas: 1
+ replicas: {{ imap_replicas }}
smtp:
image: mailu/postfix:{{ version }}
@@ -62,7 +63,7 @@ services:
volumes:
- "{{ root }}/overrides:/overrides"
deploy:
- replicas: 1
+ replicas: {{ smtp_replicas }}
# Optional services
{% if antispam_enabled %}
diff --git a/setup/templates/steps/stack/03_expose.html b/setup/templates/steps/stack/03_expose.html
index a9cffc1c..bb61a35c 100644
--- a/setup/templates/steps/stack/03_expose.html
+++ b/setup/templates/steps/stack/03_expose.html
@@ -5,7 +5,8 @@ you expose it to the world.
Subnet
-
+
You server will be available under a main hostname but may expose multiple public
diff --git a/setup/templates/steps/stack/04_replicas.html b/setup/templates/steps/stack/04_replicas.html
new file mode 100644
index 00000000..785125cc
--- /dev/null
+++ b/setup/templates/steps/stack/04_replicas.html
@@ -0,0 +1,28 @@
+{% call macros.panel("info", "Step 5 - Number of replicas for containers") %}
+
Select number of replicas for containers
+
+
+
+ Front
+
+
+
+
+ Admin
+
+
+
+
+ IMAP
+
+
+
+
+ SMPT
+
+
+{% endcall %}
\ No newline at end of file