commit 66b0c8836620171f500e68bbd807773269c81689 Author: Andrew Hurley Date: Tue Sep 20 10:42:20 2022 +0000 Add .env diff --git a/.env b/.env new file mode 100644 index 0000000..aeed64d --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +CONF=../config/ +BIND= +CERT=../srvtls/ +DATA=../ncdata/ +INET=107.191.57.160 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Taskfile.yml b/Taskfile.yml new file mode 100644 index 0000000..473fe7a --- /dev/null +++ b/Taskfile.yml @@ -0,0 +1,61 @@ +version: '3' + +tasks: + + default: + cmds: + - task: up + + up: + cmds: + - task: pre + - sudo docker-compose up -d {{.CLI_ARGS}} + - task: post + + down: + cmds: + - sudo docker-compose down + + stop: + cmds: + - sudo docker-compose stop {{.CLI_ARGS}} + + start: + cmds: + - sudo docker-compose start {{.CLI_ARGS}} + + remove: + cmds: + - task: stop + - sudo docker-compose rm {{.CLI_ARGS}} + + backup: + cmds: + - task: stop + - ../backup/backup.sh {{.CLI_ARGS}} + - task: start + + packup: + cmds: + - task: stop + - ../backup/backup.sh {{.CLI_ARGS}} + - ../backup/packup.sh {{.CLI_ARGS}} + - task: start + + sendit: + cmds: + - task: stop + - ../backup/backup.sh {{.CLI_ARGS}} + - ../backup/packup.sh {{.CLI_ARGS}} + - ../backup/sendit.sh {{.CLI_ARGS}} + - task: start + + pre: + cmds: + - + + post: + cmds: + - + + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1a64bc2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,155 @@ + +networks: + + mailu: + driver: bridge + name: mailu + ipam: + driver: default + config: + - subnet: 192.168.2.0/24 + local: + 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_ORG:-mailu}/${DOCKER_PREFIX:-}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_ORG:-mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-1.9} + restart: on-failure:5 + env_file: ${CONF?err}mailu.env + logging: + driver: journald + options: + tag: mailu-front + ports: + - "${INET?err}:80:80" + - "${INET?err}:443:443" + - "${INET?err}:25:25" + - "${INET?err}:465:465" + - "${INET?err}:143:143" + - "${INET?err}:993:993" + - "${INET?err}:587:587" + - "${INET?err}:110:110" + - "${INET?err}:995:995" + volumes: + - ${BIND?err}front-overrides:/overrides + - ${CERT?err}:/certs:ro + - ${CONF?err}mailu-front-overrides.conf:/overrides/overrides.conf:ro + depends_on: + - resolver + networks: + - mailu + - local + dns: + - 192.168.2.254 + + admin: + image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}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_ORG:-mailu}/${DOCKER_PREFIX:-}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_ORG:-mailu}/${DOCKER_PREFIX:-}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_ORG:-mailu}/${DOCKER_PREFIX:-}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_ORG:-mailu}/${DOCKER_PREFIX:-}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 +