Files
dms/docker-compose.yml
T
2026-04-28 16:01:30 +02:00

72 lines
2.3 KiB
YAML

services:
ssl-init:
image: alpine/openssl
container_name: ssl-init
volumes:
- ./docker-data/dms/ssl/:/certs/
entrypoint: /bin/sh
command:
- -c
- |
if [ ! -f /certs/cert.pem ]; then
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /certs/key.pem -out /certs/cert.pem -subj "/CN=mail.byte.trail" -addext "subjectAltName=DNS:mail.byte.trail,DNS:byte.trail"
echo "[+] Zertifikat erstellt"
else
echo "[i] Zertifikat existiert bereits"
fi
restart: "no"
mailserver:
image: ghcr.io/docker-mailserver/docker-mailserver:latest
container_name: mailserver
depends_on:
ssl-init:
condition: service_completed_successfully
# Provide the FQDN of your mail server here (Your DNS MX record should point to this value)
hostname: mail.byte.trail
env_file: mailserver.env
# More information about the mail-server ports:
# https://docker-mailserver.github.io/docker-mailserver/latest/config/security/understanding-the-ports/
ports:
- "25:25" # SMTP (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead)
- "143:143" # IMAP4 (explicit TLS => STARTTLS)
- "465:465" # ESMTP (implicit TLS)
- "587:587" # ESMTP (explicit TLS => STARTTLS)
- "993:993" # IMAP4 (implicit TLS)
volumes:
- ./docker-data/dms/mail-data/:/var/mail/
- ./docker-data/dms/mail-state/:/var/mail-state/
- ./docker-data/dms/mail-logs/:/var/log/mail/
- ./docker-data/dms/config/:/tmp/docker-mailserver/
- ./docker-data/dms/ssl/:/tmp/dms-ssl/:ro
- /etc/localtime:/etc/localtime:ro
restart: always
stop_grace_period: 1m
# Uncomment if using `ENABLE_FAIL2BAN=1`:
# cap_add:
# - NET_ADMIN
healthcheck:
test: "ss --listening --ipv4 --tcp | grep --silent ':smtp' || exit 1"
timeout: 3s
retries: 0
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
container_name: mssql-server
hostname: mssql-server
restart: unless-stopped
environment:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: "ByteTrail123456!"
MSSQL_PID: "Developer"
ports:
- "1433:1433"
volumes:
- mssql_data:/var/opt/mssql
volumes:
mssql_data: