feat: full untested ansible setup

This commit is contained in:
Twirre Meulenbelt
2026-04-22 12:22:58 +02:00
parent b1d9b2a857
commit 0d967909e7
37 changed files with 1362 additions and 1 deletions

View File

@@ -0,0 +1,28 @@
services:
mailserver:
image: {{ mailserver.image }}
container_name: mailserver
hostname: {{ mailserver.hostname }}
env_file: {{ mailserver.path }}/mailserver.env
restart: unless-stopped
stop_grace_period: 1m
ports:
- "25:25"
- "143:143"
- "465:465"
- "587:587"
- "993:993"
volumes:
- {{ mailserver.path }}/docker-data/dms/mail-data:/var/mail
- {{ mailserver.path }}/docker-data/dms/mail-state:/var/mail-state
- {{ mailserver.path }}/docker-data/dms/mail-logs:/var/log/mail
- {{ mailserver.path }}/docker-data/dms/config:/tmp/docker-mailserver
- {{ mailserver.tls_root_path }}:/etc/letsencrypt:ro
- /etc/localtime:/etc/localtime:ro
cap_add:
- NET_ADMIN
- SYS_PTRACE
networks:
default:
name: {{ mailserver.compose_project_name }}

View File

@@ -0,0 +1,16 @@
[Unit]
Description=Docker Mailserver Compose stack
Requires=docker.service
After=docker.service network-online.target
Wants=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory={{ mailserver.path }}
ExecStart=/usr/bin/docker compose -f {{ mailserver.path }}/compose.yaml up -d
ExecStop=/usr/bin/docker compose -f {{ mailserver.path }}/compose.yaml down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target

View File

@@ -0,0 +1,5 @@
OVERRIDE_HOSTNAME={{ mailserver.hostname }}
POSTMASTER_ADDRESS={{ certbot_email }}
{% for key, value in mailserver.env.items() %}
{{ key }}={{ value }}
{% endfor %}