Created test cases from latest setup revision

master
Tim Möhlmann 6 years ago
parent 72e931f4b4
commit dde7ccca97
No known key found for this signature in database
GPG Key ID: AFABC30066A39335

@ -12,10 +12,17 @@ python:
install: install:
- pip install -r tests/requirements.txt - pip install -r tests/requirements.txt
script: before_script:
- docker-compose -f tests/build.yml build - docker-compose -f tests/build.yml build
script:
# test.py, test name and timeout between start and tests. # test.py, test name and timeout between start and tests.
- python tests/compose/test.py core 1 - python tests/compose/test.py core 1
- python tests/compose/test.py fetchmail 1
- travis_wait python tests/compose/test.py filters 10
- python tests/compose/test.py rainloop 1
- python tests/compose/test.py roundcube 1
- python tests/compose/test.py webdav 1
deploy: deploy:
provider: script provider: script

@ -9,13 +9,17 @@ services:
# External dependencies # External dependencies
redis: redis:
image: redis:alpine image: redis:alpine
restart: always
volumes: volumes:
- "/mailu/redis:/data" - "/mailu/redis:/data"
# Core services # Core services
front: front:
image: mailu/nginx:master image: ${DOCKER_ORG:-mailu}/nginx:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
logging:
driver: json-file
ports: ports:
- "127.0.0.1:80:80" - "127.0.0.1:80:80"
- "::1:80:80" - "::1:80:80"
@ -38,9 +42,9 @@ services:
volumes: volumes:
- "/mailu/certs:/certs" - "/mailu/certs:/certs"
admin: admin:
image: mailu/admin:master image: ${DOCKER_ORG:-mailu}/admin:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/data:/data" - "/mailu/data:/data"
@ -49,7 +53,8 @@ services:
- redis - redis
imap: imap:
image: mailu/dovecot:master image: ${DOCKER_ORG:-mailu}/dovecot:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/mail:/mail" - "/mailu/mail:/mail"
@ -58,16 +63,17 @@ services:
- front - front
smtp: smtp:
image: mailu/postfix:master image: ${DOCKER_ORG:-mailu}/postfix:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/overrides:/overrides" - "/mailu/overrides:/overrides"
depends_on: depends_on:
- front - front
# Optional services
antispam: antispam:
image: mailu/rspamd:master image: ${DOCKER_ORG:-mailu}/rspamd:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/filter:/var/lib/rspamd" - "/mailu/filter:/var/lib/rspamd"
@ -76,7 +82,8 @@ services:
depends_on: depends_on:
- front - front
# Optional services
# Webmail # Webmail

@ -18,16 +18,13 @@
#VERSION=master #VERSION=master
# Set to a randomly generated 16 bytes string # Set to a randomly generated 16 bytes string
SECRET_KEY=1DS36JPBRGPM5JUC SECRET_KEY=DY8PPWQXCFV84N4K
# Address where listening ports should bind # Address where listening ports should bind
# This variables are now set directly in `docker-compose.yml by the setup utility # This variables are now set directly in `docker-compose.yml by the setup utility
# PUBLIC_IPV4= 127.0.0.1 (default: 127.0.0.1) # PUBLIC_IPV4= 127.0.0.1 (default: 127.0.0.1)
# PUBLIC_IPV6= ::1 (default: ::1) # PUBLIC_IPV6= ::1 (default: ::1)
# Subnet
SUBNET=192.168.0.0/24
# Main mail domain # Main mail domain
DOMAIN=mailu.io DOMAIN=mailu.io
@ -38,7 +35,7 @@ HOSTNAMES=mail.mailu.io
POSTMASTER=admin POSTMASTER=admin
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt) # Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
TLS_FLAVOR=cert TLS_FLAVOR=letsencrypt
# Authentication rate limit (per source IP address) # Authentication rate limit (per source IP address)
AUTH_RATELIMIT=10/minute;1000/hour AUTH_RATELIMIT=10/minute;1000/hour
@ -123,7 +120,7 @@ WEBSITE=https://mailu.io
# json-file (default) # json-file (default)
# journald (On systemd platforms, useful for Fail2Ban integration) # journald (On systemd platforms, useful for Fail2Ban integration)
# syslog (Non systemd platforms, Fail2Ban integration. Disables `docker-compose log` for front!) # syslog (Non systemd platforms, Fail2Ban integration. Disables `docker-compose log` for front!)
LOG_DRIVER=json-file # LOG_DRIVER=json-file
# Docker-compose project name, this will prepended to containers names. # Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mailu COMPOSE_PROJECT_NAME=mailu

@ -9,13 +9,17 @@ services:
# External dependencies # External dependencies
redis: redis:
image: redis:alpine image: redis:alpine
restart: always
volumes: volumes:
- "/mailu/redis:/data" - "/mailu/redis:/data"
# Core services # Core services
front: front:
image: mailu/nginx:master image: ${DOCKER_ORG:-mailu}/nginx:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
logging:
driver: json-file
ports: ports:
- "127.0.0.1:80:80" - "127.0.0.1:80:80"
- "::1:80:80" - "::1:80:80"
@ -38,9 +42,9 @@ services:
volumes: volumes:
- "/mailu/certs:/certs" - "/mailu/certs:/certs"
admin: admin:
image: mailu/admin:master image: ${DOCKER_ORG:-mailu}/admin:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/data:/data" - "/mailu/data:/data"
@ -49,7 +53,8 @@ services:
- redis - redis
imap: imap:
image: mailu/dovecot:master image: ${DOCKER_ORG:-mailu}/dovecot:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/mail:/mail" - "/mailu/mail:/mail"
@ -58,27 +63,31 @@ services:
- front - front
smtp: smtp:
image: mailu/postfix:master image: ${DOCKER_ORG:-mailu}/postfix:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/overrides:/overrides" - "/mailu/overrides:/overrides"
depends_on: depends_on:
- front - front
antispam:
image: ${DOCKER_ORG:-mailu}/rspamd:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
volumes:
- "/mailu/filter:/var/lib/rspamd"
- "/mailu/dkim:/dkim"
- "/mailu/overrides/rspamd:/etc/rspamd/override.d"
depends_on:
- front
# Optional services # Optional services
fetchmail:
image: ${DOCKER_ORG:-mailu}/fetchmail:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
# Webmail # Webmail
webmail:
image: mailu/rainloop:master
env_file: mailu.env
volumes:
- "/mailu/webmail:/data"
depends_on:
- imap
- resolver
dns:
- 192.168.0.254

@ -1,77 +0,0 @@
# This file is auto-generated by the Mailu configuration wizard.
# Please read the documentation before attempting any change.
# Generated for compose flavor
version: '3.6'
services:
# External dependencies
redis:
image: redis:alpine
volumes:
- "/mailu/redis:/data"
# Core services
front:
image: mailu/nginx:master
env_file: mailu.env
ports:
- "127.0.0.1:80:80"
- "::1:80:80"
- "127.0.0.1:443:443"
- "::1:443:443"
- "127.0.0.1:25:25"
- "::1:25:25"
- "127.0.0.1:465:465"
- "::1:465:465"
- "127.0.0.1:587:587"
- "::1:587:587"
- "127.0.0.1:110:110"
- "::1:110:110"
- "127.0.0.1:995:995"
- "::1:995:995"
- "127.0.0.1:143:143"
- "::1:143:143"
- "127.0.0.1:993:993"
- "::1:993:993"
volumes:
- "/mailu/certs:/certs"
admin:
image: mailu/admin:master
env_file: mailu.env
volumes:
- "/mailu/data:/data"
- "/mailu/dkim:/dkim"
depends_on:
- redis
imap:
image: mailu/dovecot:master
env_file: mailu.env
volumes:
- "/mailu/mail:/mail"
- "/mailu/overrides:/overrides"
depends_on:
- front
smtp:
image: mailu/postfix:master
env_file: mailu.env
volumes:
- "/mailu/overrides:/overrides"
depends_on:
- front
# Optional services
fetchmail:
image: mailu/fetchmail:master
env_file: mailu.env
# Webmail

@ -0,0 +1,139 @@
# Mailu main configuration file
#
# Generated for compose flavor
#
# This file is autogenerated by the configuration management wizard.
# For a detailed list of configuration variables, see the documentation at
# https://mailu.io
###################################
# Common configuration variables
###################################
# Set this to the path where Mailu data and configuration is stored
# This variable is now set directly in `docker-compose.yml by the setup utility
# ROOT=/mailu
# Mailu version to run (1.0, 1.1, etc. or master)
#VERSION=master
# Set to a randomly generated 16 bytes string
SECRET_KEY=PDK7N9UC7FDQ2UWE
# Address where listening ports should bind
# This variables are now set directly in `docker-compose.yml by the setup utility
# PUBLIC_IPV4= 127.0.0.1 (default: 127.0.0.1)
# PUBLIC_IPV6= ::1 (default: ::1)
# Main mail domain
DOMAIN=mailu.io
# Hostnames for this server, separated with comas
HOSTNAMES=mail.mailu.io
# Postmaster local part (will append the main mail domain)
POSTMASTER=admin
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
TLS_FLAVOR=letsencrypt
# Authentication rate limit (per source IP address)
AUTH_RATELIMIT=10/minute;1000/hour
# Opt-out of statistics, replace with "True" to opt out
DISABLE_STATISTICS=False
###################################
# Optional features
###################################
# Expose the admin interface (value: true, false)
ADMIN=true
# Choose which webmail to run if any (values: roundcube, rainloop, none)
WEBMAIL=none
# Dav server implementation (value: radicale, none)
WEBDAV=none
# Antivirus solution (value: clamav, none)
#ANTIVIRUS=none
#Antispam solution
ANTISPAM=none
###################################
# Mail settings
###################################
# Message size limit in bytes
# Default: accept messages up to 50MB
MESSAGE_SIZE_LIMIT=50000000
# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
RELAYNETS=172.17.0.0/16
# Will relay all outgoing mails if configured
RELAYHOST=
# Fetchmail delay
FETCHMAIL_DELAY=600
# Recipient delimiter, character used to delimiter localpart from custom address part
RECIPIENT_DELIMITER=+
# DMARC rua and ruf email
DMARC_RUA=admin
DMARC_RUF=admin
# Maildir Compression
# choose compression-method, default: none (value: bz2, gz)
COMPRESSION=
# change compression-level, default: 6 (value: 1-9)
COMPRESSION_LEVEL=
###################################
# Web settings
###################################
# Path to the admin interface if enabled
WEB_ADMIN=/admin
# Path to the webmail if enabled
WEB_WEBMAIL=/webmail
# Website name
SITENAME=Mailu
# Linked Website URL
WEBSITE=https://mailu.io
###################################
# Advanced settings
###################################
# Log driver for front service. Possible values:
# 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=json-file
# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mailu
# Default password scheme used for newly created accounts and changed passwords
# (value: BLF-CRYPT, SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
PASSWORD_SCHEME=BLF-CRYPT
# Header to take the real ip from
REAL_IP_HEADER=
# IPs for nginx set_real_ip_from (CIDR list separated by commas)
REAL_IP_FROM=
# choose wether mailu bounces (no) or rejects (yes) mail when recipient is unknown (value: yes, no)
REJECT_UNLISTED_RECIPIENT=

@ -0,0 +1,95 @@
# This file is auto-generated by the Mailu configuration wizard.
# Please read the documentation before attempting any change.
# Generated for compose flavor
version: '3.6'
services:
# External dependencies
redis:
image: redis:alpine
restart: always
volumes:
- "/mailu/redis:/data"
# Core services
front:
image: ${DOCKER_ORG:-mailu}/nginx:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
logging:
driver: json-file
ports:
- "127.0.0.1:80:80"
- "::1:80:80"
- "127.0.0.1:443:443"
- "::1:443:443"
- "127.0.0.1:25:25"
- "::1:25:25"
- "127.0.0.1:465:465"
- "::1:465:465"
- "127.0.0.1:587:587"
- "::1:587:587"
- "127.0.0.1:110:110"
- "::1:110:110"
- "127.0.0.1:995:995"
- "::1:995:995"
- "127.0.0.1:143:143"
- "::1:143:143"
- "127.0.0.1:993:993"
- "::1:993:993"
volumes:
- "/mailu/certs:/certs"
admin:
image: ${DOCKER_ORG:-mailu}/admin:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
volumes:
- "/mailu/data:/data"
- "/mailu/dkim:/dkim"
depends_on:
- redis
imap:
image: ${DOCKER_ORG:-mailu}/dovecot:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
volumes:
- "/mailu/mail:/mail"
- "/mailu/overrides:/overrides"
depends_on:
- front
smtp:
image: ${DOCKER_ORG:-mailu}/postfix:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
volumes:
- "/mailu/overrides:/overrides"
depends_on:
- front
antispam:
image: ${DOCKER_ORG:-mailu}/rspamd:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
volumes:
- "/mailu/filter:/var/lib/rspamd"
- "/mailu/dkim:/dkim"
- "/mailu/overrides/rspamd:/etc/rspamd/override.d"
depends_on:
- front
# Optional services
antivirus:
image: ${DOCKER_ORG:-mailu}/clamav:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
volumes:
- "/mailu/filter:/data"
# Webmail

@ -0,0 +1,139 @@
# Mailu main configuration file
#
# Generated for compose flavor
#
# This file is autogenerated by the configuration management wizard.
# For a detailed list of configuration variables, see the documentation at
# https://mailu.io
###################################
# Common configuration variables
###################################
# Set this to the path where Mailu data and configuration is stored
# This variable is now set directly in `docker-compose.yml by the setup utility
# ROOT=/mailu
# Mailu version to run (1.0, 1.1, etc. or master)
#VERSION=master
# Set to a randomly generated 16 bytes string
SECRET_KEY=IUFE7Z57URZH1ZM1
# Address where listening ports should bind
# This variables are now set directly in `docker-compose.yml by the setup utility
# PUBLIC_IPV4= 127.0.0.1 (default: 127.0.0.1)
# PUBLIC_IPV6= ::1 (default: ::1)
# Main mail domain
DOMAIN=mailu.io
# Hostnames for this server, separated with comas
HOSTNAMES=mail.mailu.io
# Postmaster local part (will append the main mail domain)
POSTMASTER=admin
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
TLS_FLAVOR=letsencrypt
# Authentication rate limit (per source IP address)
AUTH_RATELIMIT=10/minute;1000/hour
# Opt-out of statistics, replace with "True" to opt out
DISABLE_STATISTICS=False
###################################
# Optional features
###################################
# Expose the admin interface (value: true, false)
ADMIN=true
# Choose which webmail to run if any (values: roundcube, rainloop, none)
WEBMAIL=none
# Dav server implementation (value: radicale, none)
WEBDAV=none
# Antivirus solution (value: clamav, none)
#ANTIVIRUS=clamav
#Antispam solution
ANTISPAM=none
###################################
# Mail settings
###################################
# Message size limit in bytes
# Default: accept messages up to 50MB
MESSAGE_SIZE_LIMIT=50000000
# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
RELAYNETS=172.17.0.0/16
# Will relay all outgoing mails if configured
RELAYHOST=
# Fetchmail delay
FETCHMAIL_DELAY=600
# Recipient delimiter, character used to delimiter localpart from custom address part
RECIPIENT_DELIMITER=+
# DMARC rua and ruf email
DMARC_RUA=admin
DMARC_RUF=admin
# Maildir Compression
# choose compression-method, default: none (value: bz2, gz)
COMPRESSION=
# change compression-level, default: 6 (value: 1-9)
COMPRESSION_LEVEL=
###################################
# Web settings
###################################
# Path to the admin interface if enabled
WEB_ADMIN=/admin
# Path to the webmail if enabled
WEB_WEBMAIL=/webmail
# Website name
SITENAME=Mailu
# Linked Website URL
WEBSITE=https://mailu.io
###################################
# Advanced settings
###################################
# Log driver for front service. Possible values:
# 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=json-file
# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mailu
# Default password scheme used for newly created accounts and changed passwords
# (value: BLF-CRYPT, SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
PASSWORD_SCHEME=BLF-CRYPT
# Header to take the real ip from
REAL_IP_HEADER=
# IPs for nginx set_real_ip_from (CIDR list separated by commas)
REAL_IP_FROM=
# choose wether mailu bounces (no) or rejects (yes) mail when recipient is unknown (value: yes, no)
REJECT_UNLISTED_RECIPIENT=

@ -9,13 +9,17 @@ services:
# External dependencies # External dependencies
redis: redis:
image: redis:alpine image: redis:alpine
restart: always
volumes: volumes:
- "/mailu/redis:/data" - "/mailu/redis:/data"
# Core services # Core services
front: front:
image: mailu/nginx:master image: ${DOCKER_ORG:-mailu}/nginx:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
logging:
driver: json-file
ports: ports:
- "127.0.0.1:80:80" - "127.0.0.1:80:80"
- "::1:80:80" - "::1:80:80"
@ -38,16 +42,9 @@ services:
volumes: volumes:
- "/mailu/certs:/certs" - "/mailu/certs:/certs"
resolver:
image: mailu/unbound:master
env_file: mailu.env
restart: always
networks:
default:
ipv4_address: 192.168.0.254
admin: admin:
image: mailu/admin:master image: ${DOCKER_ORG:-mailu}/admin:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/data:/data" - "/mailu/data:/data"
@ -56,7 +53,8 @@ services:
- redis - redis
imap: imap:
image: mailu/dovecot:master image: ${DOCKER_ORG:-mailu}/dovecot:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/mail:/mail" - "/mailu/mail:/mail"
@ -65,19 +63,17 @@ services:
- front - front
smtp: smtp:
image: mailu/postfix:master image: ${DOCKER_ORG:-mailu}/postfix:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/overrides:/overrides" - "/mailu/overrides:/overrides"
depends_on: depends_on:
- front - front
- resolver
dns:
- 192.168.0.254
# Optional services
antispam: antispam:
image: mailu/rspamd:master image: ${DOCKER_ORG:-mailu}/rspamd:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/filter:/var/lib/rspamd" - "/mailu/filter:/var/lib/rspamd"
@ -85,35 +81,17 @@ services:
- "/mailu/overrides/rspamd:/etc/rspamd/override.d" - "/mailu/overrides/rspamd:/etc/rspamd/override.d"
depends_on: depends_on:
- front - front
- resolver
dns:
- 192.168.0.254
antivirus: # Optional services
image: mailu/clamav:master
env_file: mailu.env
volumes:
- "/mailu/filter:/data"
depends_on:
- resolver
dns:
- 192.168.0.254
# Webmail # Webmail
webmail: webmail:
image: mailu/rainloop:master image: ${DOCKER_ORG:-mailu}/rainloop:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/webmail:/data" - "/mailu/webmail:/data"
depends_on: depends_on:
- imap - imap
networks:
default:
driver: bridge
ipam:
driver: default
config:
- subnet: 192.168.0.0/24

@ -0,0 +1,139 @@
# Mailu main configuration file
#
# Generated for compose flavor
#
# This file is autogenerated by the configuration management wizard.
# For a detailed list of configuration variables, see the documentation at
# https://mailu.io
###################################
# Common configuration variables
###################################
# Set this to the path where Mailu data and configuration is stored
# This variable is now set directly in `docker-compose.yml by the setup utility
# ROOT=/mailu
# Mailu version to run (1.0, 1.1, etc. or master)
#VERSION=master
# Set to a randomly generated 16 bytes string
SECRET_KEY=QWE7CJZOET9BN4BU
# Address where listening ports should bind
# This variables are now set directly in `docker-compose.yml by the setup utility
# PUBLIC_IPV4= 127.0.0.1 (default: 127.0.0.1)
# PUBLIC_IPV6= ::1 (default: ::1)
# Main mail domain
DOMAIN=mailu.io
# Hostnames for this server, separated with comas
HOSTNAMES=mail.mailu.io
# Postmaster local part (will append the main mail domain)
POSTMASTER=admin
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
TLS_FLAVOR=letsencrypt
# Authentication rate limit (per source IP address)
AUTH_RATELIMIT=10/minute;1000/hour
# Opt-out of statistics, replace with "True" to opt out
DISABLE_STATISTICS=False
###################################
# Optional features
###################################
# Expose the admin interface (value: true, false)
ADMIN=true
# Choose which webmail to run if any (values: roundcube, rainloop, none)
WEBMAIL=rainloop
# Dav server implementation (value: radicale, none)
WEBDAV=none
# Antivirus solution (value: clamav, none)
#ANTIVIRUS=none
#Antispam solution
ANTISPAM=none
###################################
# Mail settings
###################################
# Message size limit in bytes
# Default: accept messages up to 50MB
MESSAGE_SIZE_LIMIT=50000000
# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
RELAYNETS=172.17.0.0/16
# Will relay all outgoing mails if configured
RELAYHOST=
# Fetchmail delay
FETCHMAIL_DELAY=600
# Recipient delimiter, character used to delimiter localpart from custom address part
RECIPIENT_DELIMITER=+
# DMARC rua and ruf email
DMARC_RUA=admin
DMARC_RUF=admin
# Maildir Compression
# choose compression-method, default: none (value: bz2, gz)
COMPRESSION=
# change compression-level, default: 6 (value: 1-9)
COMPRESSION_LEVEL=
###################################
# Web settings
###################################
# Path to the admin interface if enabled
WEB_ADMIN=/admin
# Path to the webmail if enabled
WEB_WEBMAIL=/webmail
# Website name
SITENAME=Mailu
# Linked Website URL
WEBSITE=https://mailu.io
###################################
# Advanced settings
###################################
# Log driver for front service. Possible values:
# 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=json-file
# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mailu
# Default password scheme used for newly created accounts and changed passwords
# (value: BLF-CRYPT, SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
PASSWORD_SCHEME=BLF-CRYPT
# Header to take the real ip from
REAL_IP_HEADER=
# IPs for nginx set_real_ip_from (CIDR list separated by commas)
REAL_IP_FROM=
# choose wether mailu bounces (no) or rejects (yes) mail when recipient is unknown (value: yes, no)
REJECT_UNLISTED_RECIPIENT=

@ -9,13 +9,17 @@ services:
# External dependencies # External dependencies
redis: redis:
image: redis:alpine image: redis:alpine
restart: always
volumes: volumes:
- "/mailu/redis:/data" - "/mailu/redis:/data"
# Core services # Core services
front: front:
image: mailu/nginx:master image: ${DOCKER_ORG:-mailu}/nginx:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
logging:
driver: json-file
ports: ports:
- "127.0.0.1:80:80" - "127.0.0.1:80:80"
- "::1:80:80" - "::1:80:80"
@ -38,9 +42,9 @@ services:
volumes: volumes:
- "/mailu/certs:/certs" - "/mailu/certs:/certs"
admin: admin:
image: mailu/admin:master image: ${DOCKER_ORG:-mailu}/admin:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/data:/data" - "/mailu/data:/data"
@ -49,7 +53,8 @@ services:
- redis - redis
imap: imap:
image: mailu/dovecot:master image: ${DOCKER_ORG:-mailu}/dovecot:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/mail:/mail" - "/mailu/mail:/mail"
@ -58,27 +63,35 @@ services:
- front - front
smtp: smtp:
image: mailu/postfix:master image: ${DOCKER_ORG:-mailu}/postfix:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/overrides:/overrides" - "/mailu/overrides:/overrides"
depends_on: depends_on:
- front - front
antispam:
image: ${DOCKER_ORG:-mailu}/rspamd:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
volumes:
- "/mailu/filter:/var/lib/rspamd"
- "/mailu/dkim:/dkim"
- "/mailu/overrides/rspamd:/etc/rspamd/override.d"
depends_on:
- front
# Optional services # Optional services
# Webmail # Webmail
webmail: webmail:
image: mailu/roundcube:master image: ${DOCKER_ORG:-mailu}/roundcube:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/webmail:/data" - "/mailu/webmail:/data"
depends_on: depends_on:
- imap - imap
- resolver
dns:
- 192.168.0.254

@ -0,0 +1,139 @@
# Mailu main configuration file
#
# Generated for compose flavor
#
# This file is autogenerated by the configuration management wizard.
# For a detailed list of configuration variables, see the documentation at
# https://mailu.io
###################################
# Common configuration variables
###################################
# Set this to the path where Mailu data and configuration is stored
# This variable is now set directly in `docker-compose.yml by the setup utility
# ROOT=/mailu
# Mailu version to run (1.0, 1.1, etc. or master)
#VERSION=master
# Set to a randomly generated 16 bytes string
SECRET_KEY=KXGYDHIHWTS7VRUP
# Address where listening ports should bind
# This variables are now set directly in `docker-compose.yml by the setup utility
# PUBLIC_IPV4= 127.0.0.1 (default: 127.0.0.1)
# PUBLIC_IPV6= ::1 (default: ::1)
# Main mail domain
DOMAIN=mailu.io
# Hostnames for this server, separated with comas
HOSTNAMES=mail.mailu.io
# Postmaster local part (will append the main mail domain)
POSTMASTER=admin
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
TLS_FLAVOR=letsencrypt
# Authentication rate limit (per source IP address)
AUTH_RATELIMIT=10/minute;1000/hour
# Opt-out of statistics, replace with "True" to opt out
DISABLE_STATISTICS=False
###################################
# Optional features
###################################
# Expose the admin interface (value: true, false)
ADMIN=true
# Choose which webmail to run if any (values: roundcube, rainloop, none)
WEBMAIL=roundcube
# Dav server implementation (value: radicale, none)
WEBDAV=none
# Antivirus solution (value: clamav, none)
#ANTIVIRUS=none
#Antispam solution
ANTISPAM=none
###################################
# Mail settings
###################################
# Message size limit in bytes
# Default: accept messages up to 50MB
MESSAGE_SIZE_LIMIT=50000000
# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
RELAYNETS=172.17.0.0/16
# Will relay all outgoing mails if configured
RELAYHOST=
# Fetchmail delay
FETCHMAIL_DELAY=600
# Recipient delimiter, character used to delimiter localpart from custom address part
RECIPIENT_DELIMITER=+
# DMARC rua and ruf email
DMARC_RUA=admin
DMARC_RUF=admin
# Maildir Compression
# choose compression-method, default: none (value: bz2, gz)
COMPRESSION=
# change compression-level, default: 6 (value: 1-9)
COMPRESSION_LEVEL=
###################################
# Web settings
###################################
# Path to the admin interface if enabled
WEB_ADMIN=/admin
# Path to the webmail if enabled
WEB_WEBMAIL=/webmail
# Website name
SITENAME=Mailu
# Linked Website URL
WEBSITE=https://mailu.io
###################################
# Advanced settings
###################################
# Log driver for front service. Possible values:
# 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=json-file
# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mailu
# Default password scheme used for newly created accounts and changed passwords
# (value: BLF-CRYPT, SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
PASSWORD_SCHEME=BLF-CRYPT
# Header to take the real ip from
REAL_IP_HEADER=
# IPs for nginx set_real_ip_from (CIDR list separated by commas)
REAL_IP_FROM=
# choose wether mailu bounces (no) or rejects (yes) mail when recipient is unknown (value: yes, no)
REJECT_UNLISTED_RECIPIENT=

@ -1,57 +0,0 @@
#!/bin/bash
containers=(
webmail
imap
smtp
antispam
admin
redis
antivirus
webdav
# fetchmail
front
)
# Time to sleep in minutes after starting the containers
WAIT=1
containers_check() {
status=0
for container in "${containers[@]}"; do
name="${DOCKER_ORG}_${container}_1"
echo "Checking $name"
docker inspect "$name" | grep '"Status": "running"' || status=1
done
docker ps -a
return $status
}
container_logs() {
for container in "${containers[@]}"; do
name="${DOCKER_ORG}_${container}_1"
echo "Showing logs for $name"
docker container logs "$name"
done
}
clean() {
docker-compose -f tests/compose/run.yml -p $DOCKER_ORG down || exit 1
rm -fv .env
}
# Cleanup before callig exit
die() {
clean
exit $1
}
for file in tests/compose/*.env ; do
cp $file .env
docker-compose -f tests/compose/run.yml -p $DOCKER_ORG up -d
echo -e "\nSleeping for ${WAIT} minutes" # Clean terminal distortion from docker-compose in travis
travis_wait sleep ${WAIT}m || sleep ${WAIT}m #Fallback sleep for local run
container_logs
containers_check || die 1
clean
done

@ -7,21 +7,16 @@ from colorama import Fore, Style
# Declare variables for service name and sleep time # Declare variables for service name and sleep time
test_name=sys.argv[1] test_name=sys.argv[1]
timeout=int(sys.argv[2]) timeout=int(sys.argv[2])
compose_file="tests/compose/" + test_name + "/docker-compose.yml"
client = docker.APIClient(base_url='unix://var/run/docker.sock') client = docker.APIClient(base_url='unix://var/run/docker.sock')
containers = [] containers = []
# Start up containers
def start():
os.system("cp mailu.env " + test_name + "/")
os.system("docker-compose -f " + test_name + "/" + test_name + ".yml -p $DOCKER_ORG up -d ")
# Stop containers # Stop containers
def stop(exit_code): def stop(exit_code):
print_logs() print_logs()
os.system("docker-compose -f " + test_name + "/" + test_name + ".yml -p $DOCKER_ORG down") os.system("docker-compose -f " + compose_file + " -p ${DOCKER_ORG:-mailu} down")
os.system("rm " + test_name +"/mailu.env")
sys.exit(exit_code) sys.exit(exit_code)
# Sleep for a defined amount of time # Sleep for a defined amount of time
@ -79,7 +74,8 @@ def hooks():
elif test_file.endswith(".sh"): elif test_file.endswith(".sh"):
os.system("./" + test_name + "/" + test_file) os.system("./" + test_name + "/" + test_file)
start() # Start up containers
os.system("docker-compose -f " + compose_file + " -p ${DOCKER_ORG:-mailu} up -d ")
print() print()
sleep() sleep()
print() print()

@ -9,13 +9,17 @@ services:
# External dependencies # External dependencies
redis: redis:
image: redis:alpine image: redis:alpine
restart: always
volumes: volumes:
- "/mailu/redis:/data" - "/mailu/redis:/data"
# Core services # Core services
front: front:
image: mailu/nginx:master image: ${DOCKER_ORG:-mailu}/nginx:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
logging:
driver: json-file
ports: ports:
- "127.0.0.1:80:80" - "127.0.0.1:80:80"
- "::1:80:80" - "::1:80:80"
@ -38,9 +42,9 @@ services:
volumes: volumes:
- "/mailu/certs:/certs" - "/mailu/certs:/certs"
admin: admin:
image: mailu/admin:master image: ${DOCKER_ORG:-mailu}/admin:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/data:/data" - "/mailu/data:/data"
@ -49,7 +53,8 @@ services:
- redis - redis
imap: imap:
image: mailu/dovecot:master image: ${DOCKER_ORG:-mailu}/dovecot:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/mail:/mail" - "/mailu/mail:/mail"
@ -58,22 +63,33 @@ services:
- front - front
smtp: smtp:
image: mailu/postfix:master image: ${DOCKER_ORG:-mailu}/postfix:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/overrides:/overrides" - "/mailu/overrides:/overrides"
depends_on: depends_on:
- front - front
antispam:
image: ${DOCKER_ORG:-mailu}/rspamd:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env
volumes:
- "/mailu/filter:/var/lib/rspamd"
- "/mailu/dkim:/dkim"
- "/mailu/overrides/rspamd:/etc/rspamd/override.d"
depends_on:
- front
# Optional services # Optional services
webdav: webdav:
image: mailu/radicale:master image: ${DOCKER_ORG:-mailu}/radicale:${MAILU_VERSION:-master}
restart: always
env_file: mailu.env env_file: mailu.env
volumes: volumes:
- "/mailu/dav:/data" - "/mailu/dav:/data"
# Webmail # Webmail

@ -0,0 +1,139 @@
# Mailu main configuration file
#
# Generated for compose flavor
#
# This file is autogenerated by the configuration management wizard.
# For a detailed list of configuration variables, see the documentation at
# https://mailu.io
###################################
# Common configuration variables
###################################
# Set this to the path where Mailu data and configuration is stored
# This variable is now set directly in `docker-compose.yml by the setup utility
# ROOT=/mailu
# Mailu version to run (1.0, 1.1, etc. or master)
#VERSION=master
# Set to a randomly generated 16 bytes string
SECRET_KEY=QDHY5C0EME3YBI2W
# Address where listening ports should bind
# This variables are now set directly in `docker-compose.yml by the setup utility
# PUBLIC_IPV4= 127.0.0.1 (default: 127.0.0.1)
# PUBLIC_IPV6= ::1 (default: ::1)
# Main mail domain
DOMAIN=mailu.io
# Hostnames for this server, separated with comas
HOSTNAMES=mail.mailu.io
# Postmaster local part (will append the main mail domain)
POSTMASTER=admin
# Choose how secure connections will behave (value: letsencrypt, cert, notls, mail, mail-letsencrypt)
TLS_FLAVOR=letsencrypt
# Authentication rate limit (per source IP address)
AUTH_RATELIMIT=10/minute;1000/hour
# Opt-out of statistics, replace with "True" to opt out
DISABLE_STATISTICS=False
###################################
# Optional features
###################################
# Expose the admin interface (value: true, false)
ADMIN=true
# Choose which webmail to run if any (values: roundcube, rainloop, none)
WEBMAIL=none
# Dav server implementation (value: radicale, none)
WEBDAV=radicale
# Antivirus solution (value: clamav, none)
#ANTIVIRUS=none
#Antispam solution
ANTISPAM=none
###################################
# Mail settings
###################################
# Message size limit in bytes
# Default: accept messages up to 50MB
MESSAGE_SIZE_LIMIT=50000000
# Networks granted relay permissions, make sure that you include your Docker
# internal network (default to 172.17.0.0/16)
RELAYNETS=172.17.0.0/16
# Will relay all outgoing mails if configured
RELAYHOST=
# Fetchmail delay
FETCHMAIL_DELAY=600
# Recipient delimiter, character used to delimiter localpart from custom address part
RECIPIENT_DELIMITER=+
# DMARC rua and ruf email
DMARC_RUA=admin
DMARC_RUF=admin
# Maildir Compression
# choose compression-method, default: none (value: bz2, gz)
COMPRESSION=
# change compression-level, default: 6 (value: 1-9)
COMPRESSION_LEVEL=
###################################
# Web settings
###################################
# Path to the admin interface if enabled
WEB_ADMIN=/admin
# Path to the webmail if enabled
WEB_WEBMAIL=/webmail
# Website name
SITENAME=Mailu
# Linked Website URL
WEBSITE=https://mailu.io
###################################
# Advanced settings
###################################
# Log driver for front service. Possible values:
# 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=json-file
# Docker-compose project name, this will prepended to containers names.
COMPOSE_PROJECT_NAME=mailu
# Default password scheme used for newly created accounts and changed passwords
# (value: BLF-CRYPT, SHA512-CRYPT, SHA256-CRYPT, MD5-CRYPT, CRYPT)
PASSWORD_SCHEME=BLF-CRYPT
# Header to take the real ip from
REAL_IP_HEADER=
# IPs for nginx set_real_ip_from (CIDR list separated by commas)
REAL_IP_FROM=
# choose wether mailu bounces (no) or rejects (yes) mail when recipient is unknown (value: yes, no)
REJECT_UNLISTED_RECIPIENT=
Loading…
Cancel
Save