frappe_docker/overrides/compose.https.yaml

39 lines
1.7 KiB
YAML

services:
frontend:
labels:
- traefik.enable=true
- traefik.http.services.frontend.loadbalancer.server.port=8080
- traefik.http.routers.frontend-http.entrypoints=websecure
- traefik.http.routers.frontend-http.tls.certresolver=main-resolver
- traefik.http.routers.frontend-http.rule=Host(${SITES:?List of sites not set})
- traefik.http.routers.frontend-http.middlewares=security-headers
- traefik.http.middlewares.security-headers.headers.sslRedirect=true
- traefik.http.middlewares.security-headers.headers.stsSeconds=31536000
proxy:
image: traefik:v3.3.4
restart: unless-stopped
command:
- --providers.docker=true
- --providers.docker.exposedbydefault=false
- --entrypoints.web.address=:80
- --entrypoints.web.http.redirections.entrypoint.to=websecure
- --entrypoints.web.http.redirections.entrypoint.scheme=https
- --entrypoints.websecure.address=:443
- --entrypoints.websecure.http.tls.options=modern
- --entrypoints.websecure.http.tls.minVersion=VersionTLS13
- --accesslog=true
- --accesslog.fields.headers.names.Content-Type=keep
- --certificatesresolvers.main-resolver.acme.httpchallenge=true
- --certificatesresolvers.main-resolver.acme.httpchallenge.entrypoint=web
- --certificatesresolvers.main-resolver.acme.email=${LETSENCRYPT_EMAIL:?No Let's Encrypt email set}
- --certificatesresolvers.main-resolver.acme.storage=/letsencrypt/acme.json
ports:
- ${HTTP_PUBLISH_PORT:-80}:80
- ${HTTPS_PUBLISH_PORT:-443}:443
volumes:
- cert-data:/letsencrypt
- /var/run/docker.sock:/var/run/docker.sock:ro
volumes:
cert-data: