server-vultr2/docker-compose.yml

248 lines
5.0 KiB
YAML

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