server-vultr1/docker-compose.yml

253 lines
5.0 KiB
YAML

---
networks:
mailu:
driver: bridge
name: mailu
ipam:
driver: default
config:
- subnet: 192.168.2.0/24
local:
internal: true
gitea:
internal: true
passb:
internal: true
volumes:
redis-data:
front-overrides:
admin-data:
admin-dkim:
imap-mail:
smtp-queue:
antispam-filter:
webmail-data:
webmail-overrides:
searx-etc:
searx-uwsgi:
gitea-data:
gitea-db:
passb-gpg:
passb-jwt:
passb-db:
regty-store:
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: ${DORG?err}/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:955"
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
regty:
image: ${DORG?err}/registry:2
restart: always
volumes:
- ${BIND?err}regty-store:/var/lib/registry
- ${CONF?err}regty-config.yml:/etc/docker/registry/config.yml:ro
- ${CONF?err}regty-htpasswd:/htpasswd:ro
env_file:
- ${CONF}regty.env
networks:
- local
searx:
image: ${DORG?err}/searx/searx
restart: always
volumes:
- ${BIND?err}searx-etc:/etc/searx
- ${BIND?err}searx-uwsgi:/var/log/uwsgi
env_file:
- ${CONF?err}searx.env
networks:
- local
gitea:
image: ${DORG?err}/gitea/gitea:1.16.9
restart: always
volumes:
- ${BIND?err}gitea-data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
env_file:
- ${CONF?err}gitea.env
depends_on:
- gitea-db
networks:
- local
- gitea
gitea-db:
image: ${DORG?err}/mariadb:10.8
restart: always
volumes:
- ${BIND?err}gitea-db:/var/lib/mysql
env_file:
- ${CONF?err}gitea-db.env
healthcheck:
test: ["CMD-SHELL","/usr/bin/mysql -hlocalhost -p$$MARIADB_ROOT_PASSWORD --execute=\"use gtdb;\""]
interval: 20s
timeout: 5s
retries: 5
networks:
- gitea
passb:
image: ${DORG?err}/passbolt/passbolt:3.7.2-1-ce
restart: always
volumes:
- ${BIND?err}passb-gpg:/etc/passbolt/gpg
- ${BIND?err}passb-jwt:/etc/passbolt/jwt
env_file:
- ${CONF?err}passb.env
depends_on:
- passb-db
command: ["/usr/bin/wait-for.sh", "-t", "0", "passb-db:3306", "--", "/docker-entrypoint.sh"]
networks:
- local
- passb
passb-db:
image: ${DORG?err}/mariadb:10.8
restart: always
volumes:
- ${BIND?err}passb-db:/var/lib/mysql
env_file:
- ${CONF?err}passb-db.env
healthcheck:
test: ["CMD-SHELL","/usr/bin/mysql -hlocalhost -p$$MARIADB_ROOT_PASSWORD --execute=\"use pbdb;\""]
interval: 20s
timeout: 5s
retries: 5
networks:
- passb