- Update AI copilot instructions for /opt/stacks structure and automated config management - Replace Nginx Proxy Manager with Traefik (file-based configuration for AI) - Add Authelia for SSO with bypass rules for Jellyfin/Plex apps - Add DuckDNS for dynamic DNS with Let's Encrypt integration - Add Gluetun VPN with Surfshark (WireGuard) for secure downloads - Update all services to use /opt/stacks paths instead of local directories - Add Traefik labels to all services for automatic routing - Configure qBittorrent to route through Gluetun VPN - Update .env.example with all new required variables - Create configuration templates for Traefik and Authelia - Add comprehensive Dockge deployment guide Co-authored-by: kelinfoxy <67766943+kelinfoxy@users.noreply.github.com>
59 lines
1.2 KiB
YAML
59 lines
1.2 KiB
YAML
# Traefik Static Configuration
|
|
# Copy to /opt/stacks/traefik/traefik.yml
|
|
|
|
global:
|
|
checkNewVersion: true
|
|
sendAnonymousUsage: false
|
|
|
|
api:
|
|
dashboard: true
|
|
insecure: false # Dashboard accessible via Traefik route with Authelia
|
|
|
|
entryPoints:
|
|
web:
|
|
address: ":80"
|
|
http:
|
|
redirections:
|
|
entryPoint:
|
|
to: websecure
|
|
scheme: https
|
|
|
|
websecure:
|
|
address: ":443"
|
|
http:
|
|
tls:
|
|
certResolver: letsencrypt
|
|
|
|
certificatesResolvers:
|
|
letsencrypt:
|
|
acme:
|
|
email: ${ACME_EMAIL}
|
|
storage: /acme.json
|
|
# Use HTTP challenge (port 80 must be accessible)
|
|
httpChallenge:
|
|
entryPoint: web
|
|
# Or use DNS challenge (requires API token):
|
|
# dnsChallenge:
|
|
# provider: duckdns
|
|
# resolvers:
|
|
# - "1.1.1.1:53"
|
|
# - "8.8.8.8:53"
|
|
|
|
providers:
|
|
docker:
|
|
endpoint: "unix:///var/run/docker.sock"
|
|
exposedByDefault: false # Only expose services with traefik.enable=true
|
|
network: traefik-network
|
|
|
|
file:
|
|
directory: /dynamic
|
|
watch: true
|
|
|
|
log:
|
|
level: INFO # DEBUG, INFO, WARN, ERROR
|
|
filePath: /var/log/traefik/traefik.log
|
|
|
|
accessLog:
|
|
filePath: /var/log/traefik/access.log
|
|
bufferingSize: 100
|