Benutzer-Werkzeuge

Webseiten-Werkzeuge


stacks:traefik

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

stacks:traefik [28.08.2025 11:42] – angelegt larsstacks:traefik [28.08.2025 12:07] (aktuell) – lars
Zeile 1: Zeile 1:
 [[it-themen:docker:stacks|zurĂĽck]] [[it-themen:docker:stacks|zurĂĽck]]
 +
 +====== Traefik Stack (Docker) ======
 +
 +===== Verzeichnisstruktur =====
 +<code>
 +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
 +</code>
 +
 +===== 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:** ''GF_SECURITY_ADMIN_USER'', ''GF_SECURITY_ADMIN_PASSWORD'', ''GF_SERVER_ROOT_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 =====
 +  * Traefik Dashboard: ''https://traefik.nctl.de''
 +  * Prometheus: ''https://prometheus.nctl.de''
 +  * Grafana: ''https://grafana.nctl.de''
 +
 +===== ASCII-NetzwerkĂĽbersicht (a2s) =====
 +<a2s>
 +.-----------------.            .----------------.
 +|  Client          HTTPS       Traefik      |
 +|  (Browser)      |<----------> ReverseProxy  |
 +'-----------------'            '----------------'
 +                                      |
 +                                      |  HTTP/TCP
 +                                      |
 +                                      +--> Prometheus (9090)
 +                                      +--> Grafana (3000)
 +                                      +--> Errorpage (nginx)
 +                                      +--> Mail (25 / 587 / 993)
 +</a2s>
stacks/traefik.1756374169.txt.gz · Zuletzt geändert: von lars