From bafefc812d781f0b3233d2f43fb9d39a009f439d Mon Sep 17 00:00:00 2001 From: Amirhossein Khalili Date: Mon, 23 Mar 2026 04:31:47 +0800 Subject: [PATCH] feat(Caddy): add Caddy as reverse proxy to handle SSL Certificate --- Caddyfile | 4 ++++ docker-compose.yml | 27 ++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 Caddyfile diff --git a/Caddyfile b/Caddyfile new file mode 100644 index 0000000..ec1841d --- /dev/null +++ b/Caddyfile @@ -0,0 +1,4 @@ +{$MAIL_HOSTNAME} { + tls /ssl/cert.pem /ssl/key.pem + reverse_proxy mailserver:80 +} diff --git a/docker-compose.yml b/docker-compose.yml index 1f84d91..8c5df80 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,8 +5,6 @@ services: restart: always ports: - "25:25" - - "80:80" - - "443:443" - "110:110" - "143:143" - "465:465" @@ -20,7 +18,7 @@ services: - DISABLE_ROUNDCUBE=${DISABLE_ROUNDCUBE} - HTTPS=${HTTPS} volumes: - - ./data:/data + - mailserver_data:/data - ${SSL_CERT_PATH}:/data/ssl/server.crt:ro - ${SSL_KEY_PATH}:/data/ssl/server.key:ro logging: @@ -28,3 +26,26 @@ services: options: max-size: "${LOG_MAX_SIZE}" max-file: "${LOG_MAX_FILE}" + + caddy: + image: caddy:latest + restart: always + ports: + - "80:80" + - "443:443" + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile:ro + - caddy_data:/data + - caddy_config:/config + - ${SSL_CERT_PATH}:/ssl/cert.pem:ro + - ${SSL_KEY_PATH}:/ssl/key.pem:ro + logging: + driver: "json-file" + options: + max-size: "${LOG_MAX_SIZE}" + max-file: "${LOG_MAX_FILE}" + +volumes: + caddy_data: + caddy_config: + mailserver_data: