First Commit

This commit is contained in:
Andrew Hurley 2022-10-26 23:17:38 +11:00
commit f00e9756e7
5 changed files with 313 additions and 0 deletions

6
.env Normal file
View File

@ -0,0 +1,6 @@
CONF=../config/
BIND=
CERT=../srvtls/
DATA=../ncdata/
FMED=../fmedia/
DORG=docker.io

0
README.md Normal file
View File

30
docker-backup.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/bash
sudo docker run --rm \
--name volumerize \
-e TZ=Australia/Perth \
-e VOLUMERIZE_SOURCE=/source \
-e VOLUMERIZE_TARGET=file:///backup \
-v backup_docker-cache:/volumerize-cache \
-v backup_docker-volume:/backup \
-v docker_admin-data:/source/docker_admin-data:ro \
-v docker_admin-dkim:/source/docker_admin-dkim:ro \
-v docker_antispam-filter:/source/docker_antispam-filter:ro \
-v docker_front-overrides:/source/docker_front-overrides:ro \
-v docker_ggrav-html:/source/docker_ggrav-html:ro \
-v docker_imap-mail:/source/docker_imap-mail:ro \
-v docker_nextc-db:/source/docker_nextc-db:ro \
-v docker_nextc-html:/source/docker_nextc-html:ro \
-v docker_onlyo-ds-font:/source/docker_onlyo-ds-font:ro \
-v docker_onlyo-ds-lib:/source/docker_onlyo-ds-lib:ro \
-v docker_onlyo-ds-log:/source/docker_onlyo-ds-log:ro \
-v docker_onlyo-ds-pg:/source/docker_onlyo-ds-pg:ro \
-v docker_onlyo-ds-rb:/source/docker_onlyo-ds-rb:ro \
-v docker_onlyo-ds-rd:/source/docker_onlyo-ds-rd:ro \
-v docker_onlyo-ds-www:/source/docker_onlyo-ds-www:ro \
-v docker_porta-data:/source/docker_porta-data:ro \
-v docker_redis-data:/source/docker_redis-data:ro \
-v docker_smtp-queue:/source/docker_smtp-queue:ro \
-v docker_webmail-data:/source/docker_webmail-data:ro \
-v docker_webmail-overrides:/source/docker_webmail-overrides:ro \
blacklabelops/volumerize:1.7.1 backup

247
docker-compose.yml Normal file
View File

@ -0,0 +1,247 @@
networks:
mailu:
driver: bridge
name: mailu
ipam:
driver: default
config:
- subnet: 192.168.2.0/24
local:
internal: true
nextc:
internal: true
volumes:
redis-data:
front-overrides:
admin-data:
admin-dkim:
imap-mail:
smtp-queue:
antispam-filter:
webmail-data:
webmail-overrides:
ggrav-html:
nextc-html:
nextc-db:
onlyo-ds-log:
onlyo-ds-lib:
onlyo-ds-www:
onlyo-ds-pg:
onlyo-ds-rb:
onlyo-ds-rd:
onlyo-ds-font:
services:
resolver:
image: ${DORG?err}/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: ${DORG?err}/mailu/nginx:${MAILU_VERSION:-1.9}
restart: always
env_file: ${CONF?err}mailu.env
logging:
driver: journald
options:
tag: docker-front
ports:
- "80:80"
- "443:443"
- "25:25"
- "465:465"
- "143:143"
- "993:993"
- "587:587"
- "110:110"
- "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: ${DORG?err}/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: ${DORG?err}/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: ${DORG?err}/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: ${DORG?err}/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: ${DORG?err}/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
ggrav:
image: andrew/getgrav:1.7.37.1
build:
context: https://cor.cherished.me/gt/andrew/build-grav.git
args:
- "GRAV_VERSION=1.7.37.1"
- "GRAV_SUBDIR=html/gv"
restart: always
volumes:
- ${BIND?err}ggrav-html:/var/www/html
env_file:
- ${CONF?err}ggrav.env
healthcheck:
test: ["CMD-SHELL","curl -fsS http://localhost/gv/"]
interval: 20s
timeout: 5s
retries: 5
networks:
- local
nextc:
image: andrew/nextcloud:24.0
build:
context: https://cor.cherished.me/gt/andrew/build-nextcloud.git
args:
- "VERSION=24.0"
- "PUID=1000"
restart: always
volumes:
- ${BIND?err}nextc-html:/var/www/html
- ${DATA?err}:/ncdata
- ${FMED?err}:/fmedia
env_file:
- ${CONF?err}nextc.env
depends_on:
- nextc-db
healthcheck:
test: ["CMD_SHELL","curl -fsS http://localhost"]
interval: 20s
timeout: 5s
retries: 5
networks:
- local
- nextc
nextc-db:
image: ${DORG?err}/mariadb:10.8
restart: always
volumes:
- ${BIND?err}nextc-db:/var/lib/mysql
env_file:
- ${CONF?err}nextc-db.env
healthcheck:
test: ["CMD-SHELL","/usr/bin/mysql -hlocalhost -p$$MARIADB_ROOT_PASSWORD --execute=\"use ncdb;\""]
interval: 20s
timeout: 5s
retries: 5
networks:
- nextc
onlyo-ds:
image: ${DORG?err}/onlyoffice/documentserver:7.1
restart: always
volumes:
- ${CONF?err}onlyo-ds.crt:/onlyo-ds.crt:ro
- ${CONF?err}onlyo-ds.key:/onlyo-ds.key:ro
- ${BIND?err}onlyo-ds-log:/var/log/onlyoffice
- ${BIND?err}onlyo-ds-lib:/var/lib/onlyoffice
- ${BIND?err}onlyo-ds-www:/var/www/onlyoffice/Data
- ${BIND?err}onlyo-ds-pg:/var/lib/postgresql
- ${BIND?err}onlyo-ds-rb:/var/lib/rabbitmq
- ${BIND?err}onlyo-ds-rd:/var/lib/redis
- ${BIND?err}onlyo-ds-font:/usr/share/fonts/truetype/custom
env_file:
- ${CONF?err}onlyo-ds.env
networks:
- local

30
docker-restore.sh Executable file
View File

@ -0,0 +1,30 @@
#!/bin/bash
sudo docker run --rm \
--name volumerize \
-e TZ=Australia/Perth \
-e VOLUMERIZE_SOURCE=/source \
-e VOLUMERIZE_TARGET=file:///backup \
-v backup_docker-cache:/volumerize-cache \
-v backup_docker-volume:/backup:ro \
-v docker_admin-data:/source/docker_admin-data \
-v docker_admin-dkim:/source/docker_admin-dkim \
-v docker_antispam-filter:/source/docker_antispam-filter \
-v docker_front-overrides:/source/docker_front-overrides \
-v docker_ggrav-html:/source/docker_ggrav-html \
-v docker_imap-mail:/source/docker_imap-mail \
-v docker_nextc-db:/source/docker_nextc-db \
-v docker_nextc-html:/source/docker_nextc-html \
-v docker_onlyo-ds-font:/source/docker_onlyo-ds-font \
-v docker_onlyo-ds-lib:/source/docker_onlyo-ds-lib \
-v docker_onlyo-ds-log:/source/docker_onlyo-ds-log \
-v docker_onlyo-ds-pg:/source/docker_onlyo-ds-pg \
-v docker_onlyo-ds-rb:/source/docker_onlyo-ds-rb \
-v docker_onlyo-ds-rd:/source/docker_onlyo-ds-rd \
-v docker_onlyo-ds-www:/source/docker_onlyo-ds-www \
-v docker_porta-data:/source/docker_porta-data \
-v docker_redis-data:/source/docker_redis-data \
-v docker_smtp-queue:/source/docker_smtp-queue \
-v docker_webmail-data:/source/docker_webmail-data \
-v docker_webmail-overrides:/source/docker_webmail-overrides \
blacklabelops/volumerize:1.7.1 restore