All checks were successful
deploy / ansible (push) Successful in 7m23s
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
61 lines
1.2 KiB
Django/Jinja
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
|