49 lines
1.5 KiB
YAML
49 lines
1.5 KiB
YAML
networks:
|
|
web:
|
|
external: true
|
|
|
|
services:
|
|
traefik:
|
|
image: "traefik:v3.2.0"
|
|
restart: unless-stopped
|
|
networks:
|
|
- web
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
# - "8080:8080"
|
|
command:
|
|
# Entrypoints
|
|
- "--entrypoints.web.address=:80"
|
|
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
|
|
- "--entrypoints.websecure.address=:443"
|
|
- "--entrypoints.websecure.http.tls.certresolver=letsencrypt"
|
|
# Docker provider
|
|
- "--providers.docker"
|
|
- "--providers.docker.exposedbydefault=false"
|
|
- "--providers.docker.network=web"
|
|
# Let's encrypt
|
|
- "--certificatesresolvers.letsencrypt.acme.email=${CERT_EMAIL}"
|
|
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
|
|
- "--certificatesresolvers.letsencrypt.acme.storage=acme.json"
|
|
- "--certificatesresolvers.letsencrypt.acme.httpchallenge=true"
|
|
# File provider
|
|
- "--providers.file.directory=/conf.d/"
|
|
- "--providers.file.watch=true"
|
|
# Dashboard
|
|
# - "--api.dashboard=true"
|
|
# - "--api.insecure=true"
|
|
environment:
|
|
NAS_DOMAIN: ${NAS_DOMAIN}
|
|
NAS_URL: ${NAS_URL}
|
|
HA_DOMAIN: ${HA_DOMAIN}
|
|
HA_URL: ${HA_URL}
|
|
volumes:
|
|
- "./conf.d:/conf.d"
|
|
- "./acme.json:/acme.json"
|
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.middlewares.https-redirect.redirectscheme.scheme=https"
|
|
- "traefik.http.middlewares.https-redirect.redirectscheme.permanent=true"
|