docker-apps/traefik/stacks/config/traefik.yml

241 lines
7.4 KiB
YAML

################################################################
# Global configuration - https://doc.traefik.io/traefik/reference/static-configuration/file/
################################################################
global:
checkNewVersion: false
sendAnonymousUsage: false
################################################################
# Entrypoints - https://doc.traefik.io/traefik/routing/entrypoints/
################################################################
entryPoints:
web:
address: ":80"
#reusePort: true
# Global HTTP to HTTPS redirection
# http:
# redirections:
# entrypoint:
# to: websecure
# scheme: https
websecure:
address: ":443"
http:
tls:
certResolver: sthomeresolver
#domains:
# - main: "sthome.org"
# sans:
# - "*.sthome.org"
forwardedHeaders:
trustedIPs:
# Cloudflare (https://www.cloudflare.com/ips-v4)
- "173.245.48.0/20"
- "103.21.244.0/22"
- "103.22.200.0/22"
- "103.31.4.0/22"
- "141.101.64.0/18"
- "108.162.192.0/18"
- "190.93.240.0/20"
- "188.114.96.0/20"
- "197.234.240.0/22"
- "198.41.128.0/17"
- "162.158.0.0/15"
- "104.16.0.0/13"
- "104.24.0.0/14"
- "172.64.0.0/13"
- "131.0.72.0/22"
# Local IPs
- "127.0.0.1/32"
- "10.0.0.0/24"
- "192.168.2.0/24"
- "172.16.0.0/12"
wireguard:
address: ":51820/udp"
plex:
address: ":32400"
metrics:
address: ":8082"
ping:
address: ":8083"
mariadb:
address: ":8306"
mysql:
address: ":9306"
mqtt:
address: ":1883"
mqttsecure:
address: ":8883"
mqttwebsocket:
address: ":9001"
mc-bedrock:
address: ":19132/udp"
mc-java:
address: ":25565/udp"
mc-java-rcon:
address: ":25575"
sftp1:
address: ":2022"
sftp2:
address: ":2023"
sftp3:
address: ":2024"
sftp4:
address: ":2025"
sftp5:
address: ":2026"
sftp6:
address: ":2027"
sftp7:
address: ":2028"
sftp8:
address: ":2029"
ping:
entryPoint: "ping"
################################################################
# Logs - https://doc.traefik.io/traefik/observability/logs/
################################################################
log:
level: DEBUG # Options: DEBUG, PANIC, FATAL, ERROR (Default), WARN, and INFO
filePath: /logs/traefik-container.log # Default is to STDOUT
format: json # Uses text format (common) by default
noColor: false # Recommended to be true when using common
maxSize: 100 # In megabytes
compress: true # gzip compression when rotating
################################################################
# Access logs - https://doc.traefik.io/traefik/observability/access-logs/
################################################################
accessLog:
addInternals: true # things like ping@internal
filePath: /logs/traefik-access.log # In the Common Log Format (CLF) by default
bufferingSize: 100 # Number of log lines
fields:
names:
StartUTC: drop # Write logs in Container Local Time instead of UTC
filters:
statusCodes:
- "204-299"
- "400-499"
- "500-599"
################################################################
# Prometheus - https://doc.traefik.io/traefik/observability/metrics/prometheus/
################################################################
metrics:
prometheus:
entryPoint: metrics
buckets:
- 0.1
- 0.3
- 1.2
- 5.0
addEntryPointsLabels: true
addRoutersLabels: true
addServicesLabels: true
################################################################
# API and Dashboard
################################################################
api:
dashboard: true
# disableDashboardAd: true
# Rely on api@internal and Traefik with Middleware to control access
# insecure: true
################################################################
# Providers - https://doc.traefik.io/traefik/providers/docker/
################################################################
providers:
docker:
#endpoint: "unix:///var/run/docker.sock" # Comment if using socket-proxy
endpoint: "tcp://traefik_socket-proxy:2375" # Uncomment if using socket proxy
exposedByDefault: false
network: traefik-net # network to use for connections to all containers
# defaultRule: TODO
# Enable auto loading of newly created rules by watching a directory
file:
# Apps, LoadBalancers, TLS Options, Middlewares, Middleware Chains
directory: /rules # /etc/traefik
watch: true
################################################################
# tls
################################################################
tls:
stores:
default:
# defaultCertificate:
# certFile: /data/sthome-org.pem
# keyFile: /data/sthome-org-key.pem
defaultGeneratedCert:
resolver: solver-dns
domain:
main: sthome.org
sans:
- plex.sthome.org
- emby.sthome.org
- jellyfin.sthome.org
- traefik.sthome.org
################################################################
# ACME
################################################################
certificatesResolvers:
# sthomeresolver:
# acme:
# email: "stuurmcp@telkomsa.net"
# storage: "/data/acme.json" # "/etc/traefik/letsencrypt/acme.json"
# #caServer: "https://acme-staging-v02.api.letsencrypt.org/directory" # Comment out when going prod
# caServer: "https://acme-v02.api.letsencrypt.org/directory" # production:
# dnsChallenge:
# provider: cloudflare
# #delayBeforeCheck: 30 # Default is 2m0s. This changes the delay (in seconds)
# # Custom DNS server resolution
# resolvers:
# - "1.1.1.1:53"
# - "8.8.8.8:53"
##
# sthome-org:
# acme:
# email: "stuurmcp@telkomsa.net"
# storage: "/data/acme.json" # "/etc/traefik/letsencrypt/acme.json"
# #caServer: "https://acme-staging-v02.api.letsencrypt.org/directory" # Comment out when going prod
# caServer: "https://acme-v02.api.letsencrypt.org/directory" # production:
# dnsChallenge:
# provider: cloudflare
# #delayBeforeCheck: 30 # Default is 2m0s. This changes the delay (in seconds)
# # Custom DNS server resolution
# resolvers:
# - "1.1.1.1:53"
# - "8.8.8.8:53"
solver-dns:
acme:
email: "stuurmcp@telkomsa.net"
storage: "/data/acme.json" # "/etc/traefik/letsencrypt/acme.json"
#caServer: "https://acme-staging-v02.api.letsencrypt.org/directory" # Comment out when going prod
caServer: "https://acme-v02.api.letsencrypt.org/directory" # production:
dnsChallenge:
provider: cloudflare
#delayBeforeCheck: 30 # Default is 2m0s. This changes the delay (in seconds)
# Custom DNS server resolution
resolvers:
- "1.1.1.1:53"
- "8.8.8.8:53"
#sthome-net:
# acme:
# email: "stuurmcp@telkomsa.net"
# storage: "/etc/traefik/local/acme.json" # "/data/acme.json"
# caServer: "https://upd.sthome.net/acme-v02.api" # production:
# dnsChallenge:
# provider: sthomelocal
#delayBeforeCheck: 30 # Default is 2m0s. This changes the delay (in seconds)
# Custom DNS server resolution
# resolvers:
# - "10.0.0.15:53"
# - "192.168.2.1:53"