commit 085a08c22fcbae20651a7d5d2503827e5ff54897 Author: Andrew Hurley Date: Thu Dec 1 23:13:11 2022 +1100 First Commit diff --git a/.env b/.env new file mode 100644 index 0000000..37fc811 --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +CONF=../config/ +BIND= +CERT=../srvtls/ +DATA=../cndata/ +USER=1000 diff --git a/docker-backup.sh b/docker-backup.sh new file mode 100755 index 0000000..5a3a8ad --- /dev/null +++ b/docker-backup.sh @@ -0,0 +1,19 @@ +#!/bin/bash +docker run --rm \ + --name volumerize \ + -e TZ=Australia/Perth \ + -e VOLUMERIZE_SOURCE=/source \ + -e VOLUMERIZE_TARGET=file:///backup \ + -v backup_mailus-cache:/volumerize-cache \ + -v backup_mailus-volume:/backup \ + -v mailus_admin-data:/source/mailus_admin-data:ro \ + -v mailus_admin-dkim:/source/mailus_admin-dkim:ro \ + -v mailus_antispam-filter:/source/mailus_antispam-filter:ro \ + -v mailus_front-overrides:/source/mailus_front-overrides:ro \ + -v mailus_imap-mail:/source/mailus_imap-mail:ro \ + -v mailus_redis-data:/source/mailus_redis-data:ro \ + -v mailus_smtp-queue:/source/mailus_smtp-queue:ro \ + -v mailus_webmail-data:/source/mailus_webmail-data:ro \ + -v mailus_webmail-overrides:/source/mailus_webmail-overrides:ro \ + blacklabelops/volumerize:1.7.1 backup + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f65b366 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,153 @@ + +networks: + + mailu: + driver: bridge + name: mailu + ipam: + driver: default + config: + - subnet: 192.168.2.0/24 + internal: false + share: + external: true + +volumes: + + redis-data: + front-overrides: + admin-data: + admin-dkim: + imap-mail: + smtp-queue: + antispam-filter: + webmail-data: + webmail-overrides: + +services: + + resolver: + image: docker.io/mailu/unbound:${MAILU_VERSION:-1.9} + env_file: ${CONF?err}mailu.env + restart: always + networks: + mailu: + ipv4_address: 192.168.2.254 + + redis: + image: redis:alpine + restart: always + volumes: + - ${BIND?err}redis-data:/data + depends_on: + - resolver + networks: + - mailu + dns: + - 192.168.2.254 + + front: + image: docker.io/mailu/nginx:${MAILU_VERSION:-1.9} + restart: always + env_file: ${CONF?err}mailu.env + logging: + driver: journald + options: + tag: docker-front + ports: + - "25:25" + - "465:465" + - "587:587" + - "143:143" + - "993:993" + - "110:110" + - "995:995" + volumes: + - ${BIND?err}front-overrides:/overrides + - ${CERT?err}:/certs:ro + depends_on: + - resolver + networks: + - mailu + - share + dns: + - 192.168.2.254 + + admin: + image: docker.io/mailu/admin:${MAILU_VERSION:-1.9} + restart: always + env_file: + - ${CONF?err}mailu.env + volumes: + - ${BIND?err}admin-data:/data + - ${BIND?err}admin-dkim:/dkim + depends_on: + - redis + - resolver + networks: + - mailu + dns: + - 192.168.2.254 + + imap: + image: docker.io/mailu/dovecot:${MAILU_VERSION:-1.9} + restart: always + env_file: + - ${CONF?err}mailu.env + volumes: + - ${BIND?err}imap-mail:/mail + depends_on: + - front + - resolver + networks: + - mailu + dns: + - 192.168.2.254 + + smtp: + image: docker.io/mailu/postfix:${MAILU_VERSION:-1.9} + restart: always + env_file: ${CONF?err}mailu.env + volumes: + - ${BIND?err}smtp-queue:/queue + depends_on: + - front + - resolver + networks: + - mailu + dns: + - 192.168.2.254 + + antispam: + image: docker.io/mailu/rspamd:${MAILU_VERSION:-1.9} + hostname: antispam + restart: always + env_file: + - ${CONF?err}mailu.env + volumes: + - ${BIND?err}antispam-filter:/var/lib/rspamd + depends_on: + - front + - resolver + networks: + - mailu + dns: + - 192.168.2.254 + + webmail: + image: docker.io/mailu/roundcube:${MAILU_VERSION:-1.9} + restart: always + env_file: + - ${CONF?err}mailu.env + volumes: + - ${BIND?err}webmail-data:/data + - ${BIND?err}webmail-overrides:/overrides + depends_on: + - front + - imap + - resolver + networks: + - mailu + dns: + - 192.168.2.254 + diff --git a/docker-restore.sh b/docker-restore.sh new file mode 100755 index 0000000..bee3664 --- /dev/null +++ b/docker-restore.sh @@ -0,0 +1,19 @@ +#!/bin/bash +docker run --rm \ + --name volumerize \ + -e TZ=Australia/Perth \ + -e VOLUMERIZE_SOURCE=/source \ + -e VOLUMERIZE_TARGET=file:///backup \ + -v backup_mailus-cache:/volumerize-cache \ + -v backup_mailus-volume:/backup:ro \ + -v mailus_admin-data:/source/mailus_admin-data \ + -v mailus_admin-dkim:/source/mailus_admin-dkim \ + -v mailus_antispam-filter:/source/mailus_antispam-filter \ + -v mailus_front-overrides:/source/mailus_front-overrides \ + -v mailus_imap-mail:/source/mailus_imap-mail \ + -v mailus_redis-data:/source/mailus_redis-data \ + -v mailus_smtp-queue:/source/mailus_smtp-queue \ + -v mailus_webmail-data:/source/mailus_webmail-data \ + -v mailus_webmail-overrides:/source/mailus_webmail-overrides \ + blacklabelops/volumerize:1.7.1 restore +