iac/ansible/roles/traefik/templates/traefik.yml.j2
Sergei Poljanski e20f5a7d07
All checks were successful
deploy / ansible (push) Successful in 7m23s
ansible: monitoring with Prometheus, Loki and Grafana
Nothing watched the servers: tonight's asxpio crash loop was found by
hand. On asxpio-ops, Prometheus (30 days), Loki (14 days) and Grafana
at gf.asxp.io (WireGuard only), with blackbox_exporter probing every
service from outside and postgres_exporter. On both hosts node_exporter
and cAdvisor on the VPC address, and Alloy shipping container logs, the
journal and Traefik's access log to Loki over the VPC.

Traefik and Forgejo expose their metrics; restic and the bucket replica
record their last success for node_exporter. Dashboards: an overview as
home, plus hosts, containers, Traefik, probes, Postgres and logs.
Alerts by email to me@asxp.io: host or service down, certificate under
14 days, disk or memory nearly full, a container restart-looping,
Postgres down, backup or replica stale.

Assisted-by: Claude:opus-5-5
2026-11-13 04:59:11 +04:00

61 lines
1.2 KiB
Django/Jinja

# Traefik Static Configuration
# API and Dashboard
api:
dashboard: true
insecure: true # Dashboard accessible on :8080 without auth (restricted by network)
# Entry Points
entryPoints:
web:
address: ":80"
http:
redirections:
entryPoint:
to: websecure
scheme: https
websecure:
address: ":443"
# Prometheus metrics, reached on the traefik network only (not published)
metrics:
address: ":8082"
metrics:
prometheus:
entryPoint: metrics
addRoutersLabels: true
addServicesLabels: true
# Docker Provider
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
network: {{ traefik_network }}
file:
directory: /config
watch: true
# Let's Encrypt Certificate Resolver
certificatesResolvers:
letsencrypt:
acme:
email: {{ letsencrypt_email | default('admin@asxp.io') }}
storage: /letsencrypt/acme.json
httpChallenge:
entryPoint: web
# Logging
log:
level: INFO
filePath: /var/log/traefik/traefik.log
accessLog:
filePath: /var/log/traefik/access.log
bufferingSize: 100
fields:
headers:
defaultMode: drop
names:
User-Agent: keep
Referer: keep