Refactor makefile to add deployment for mailserver stack

This commit is contained in:
2024-06-13 11:47:12 +08:00
parent 440337deb8
commit b38a01d6cd
2 changed files with 62 additions and 0 deletions
+8
View File
@@ -121,4 +121,12 @@ deploy-searxng: pull
set +a ;\
docker stack deploy --compose-file ./swarm/searxng.yml searxng ;\
}
deploy-mailserver: pull
{ \
echo "Deploying the mailserver stack..." ;\
set -a ;\
. ./swarm/.env ;\
set +a ;\
docker stack deploy --compose-file ./swarm/mailserver.yml mailserver ;\
}
# git submodule update --init --recursive
+54
View File
@@ -0,0 +1,54 @@
services:
mail:
image: tvial/docker-mailserver:latest
ports:
- target: 25
published: 25
protocol: tcp
mode: host
- target: 587
published: 587
protocol: tcp
mode: host
- target: 993
published: 993
protocol: tcp
mode: host
- target: 995
published: 995
protocol: tcp
mode: host
volumes:
- /var/data/docker-mailserver/maildata:/var/mail
- /var/data/docker-mailserver/mailstate:/var/mail-state
- /var/data/docker-mailserver/config:/tmp/docker-mailserver
- /var/data/docker-mailserver/letsencrypt:/etc/letsencrypt
env_file: /var/data/docker-mailserver/docker-mailserver.env
networks:
- internal
rainloop:
image: hardware/rainloop
volumes:
- /var/data/docker-mailserver/rainloop:/rainloop/data
networks:
- internal
- traefik-public
deploy:
labels:
- traefik.enable=true
- traefik.docker.network=traefik-public
- traefik.constraint-label=traefik-public
- traefik.http.routers.rainloop.entrypoints=https
- traefik.http.routers.rainloop.rule=Host(`webmail.${DOMAIN}`)
- traefik.http.routers.rainloop.tls.certresolver=le
- traefik.http.services.rainloop.loadbalancer.server.port=8888
networks:
traefik-public:
external: true
internal:
driver: overlay
ipam:
config:
- subnet: 172.16.2.0/24