Benutzer-Werkzeuge

Webseiten-Werkzeuge


stacks:traefik

zurĂĽck

Traefik Stack (Docker)

Verzeichnisstruktur

traefik/
├─ config/
│  ├─ traefik.yml
│  └─ dynamic/
│     ├─ security.yml
│     ├─ tcp.yml
│     ├─ mail.yml
│     └─ prometheus.yml
├─ letsencrypt/
│  ├─ acme.json
│  └─ clean.sh
├─ data/
│  ├─ prometheus/
│  └─ grafana/
├─ errorpage/
│  ├─ index.html
│  ├─ test.html
│  └─ nginx.conf
└─ docker-compose.yml

docker-compose.yml – Aufbau

Die docker-compose.yml definiert folgende Services:

1) Traefik (Reverse Proxy)

  • Image: traefik:v3.5.0-rc2
  • Ports: 80 (HTTP), 443 (HTTPS), 25 / 587 / 993 (Mail/TCP)
  • Volumes:
    • /var/run/docker.sock:/var/run/docker.sock:ro
    • ./config/traefik.yml:/etc/traefik/traefik.yml:ro
    • ./config/dynamic/:/etc/traefik/dynamic/:ro
    • ./letsencrypt:/letsencrypt
  • Labels (Auszug):
    • Dashboard ĂĽber traefik.nctl.de (Service api@internal)
    • BasicAuth: traefik-auth
    • Redirect HTTP→HTTPS: mw-redirect-to-https@file
    • Security-Chain: global-secure-chain@file
  • Netzwerke: ldap-net, docker_backend

2) Certs-Dumper

  • Image: ldez/traefik-certs-dumper:v2.9.3
  • Liest letsencrypt/acme.json und schreibt extrahierte Zertifikate nach ./certs (Watch-Mode)

3) Prometheus

  • Image: prom/prometheus:latest
  • Ports: extern 9091 → intern 9090
  • Volumes: config/prometheus, data/prometheus
  • Traefik: https://prometheus.nctl.de (TLS via dnsresolver, HTTP→HTTPS aktiv)

4) Grafana

  • Image: grafana/grafana:latest
  • Port: 3000
  • Volume: data/grafana
  • Env: GFSECURITYADMINUSER, GFSECURITYADMINPASSWORD, GFSERVERROOT_URL
  • Traefik: https://grafana.nctl.de (TLS via dnsresolver, Redirect + global-secure-chain@file)

5) Errorpage

  • Image: nginx:alpine
  • Volumes: errorpage/ (HTML), errorpage/nginx.conf
  • Liefert benutzerdefinierte Fehlerseiten fĂĽr 4xx/5xx

Netzwerke

  • ldap-net → Bridge fĂĽr LDAP-Bezug
  • docker_backend → Zentrales Backend-Netz (extern vorhanden)
  • proxy → optional/external (nur falls von anderen Stacks genutzt)

Sicherheit

  • Zertifikate: Let's Encrypt (DNS-Challenge via IONOS), persistent in letsencrypt/acme.json
  • Middlewares:
    • traefik-auth (BasicAuth fĂĽrs Dashboard)
    • mw-redirect-to-https@file
    • global-secure-chain@file (Header/Rates)

Monitoring

  • Prometheus sammelt Metriken (Traefik-/System-Dashboards möglich)
  • Grafana visualisiert (Subdomain: grafana.nctl.de)

Zugriff

ASCII-NetzwerkĂĽbersicht (a2s)

Client (Browser) Traefik ReverseProxy HTTPS HTTP/TCP Prometheus (9090) Grafana (3000) Errorpage (nginx) Mail (25 / 587 / 993)
stacks/traefik.txt · Zuletzt geändert: von lars