Wenn mehrere Dienste auf demselben Server über Port 80 (HTTP) oder 443 (HTTPS) kommunizieren, kann es zu Port-Konflikten kommen, da normalerweise nur ein Dienst einen bestimmten Port zur gleichen Zeit belegen kann. Traefik löst dieses Problem als Reverse-Proxy und Load-Balancer.
Traefik leitet alle eingehenden Anfragen auf Port 80 oder 443 an die richtigen Dienste weiter. Dies geschieht anhand von konfigurierten Regeln, die das Routing bestimmen. So wird sichergestellt, dass jeder Dienst erreichbar ist, ohne dass Port-Konflikte entstehen. Nutze Traefik für eine effiziente und reibungslose Kommunikation der Webdienste.
In wie weit unterscheidet sich diese zu der bisherigen vorhandenen Anleitung?
- Die bisherige Anleitung ist etwas gealtert.
- Es gab viele wichtige Kommentare, Fragen und Anregungen – vielen Dank dafür!
- Traefik Major Release Version 3
Diese Anleitung ist nicht mehr die aktuelle und WIRD NICHT MEHR GEPFLEGT. Hier geht’s zur neuen Anleitung:
https://stage.goneuland.de/traefik-ab-v3-6-mit-crowdsec-installieren-und-konfigurieren/
Versionierung
| Datum | Änderung |
|---|---|
| Hinweis | Um die Docker-API-Problematik zu umgehen, kann in der Datei/opt/containers/traefik-crowdsec-stack/.env die VariableSERVICES_TRAEFIK_IMAGE_VERSION=3.6ergänzt werden. Diese Einstellung überschreibt die in compose/traefik.yml definierte Standard-Image-Version von Traefik. |
| 06.12.2025 | Kapitel 7.2.: SERVICES_TRAEFIK_IMAGE_VERSION in traefik.yml auf aktuellen Stand (3.6) gebracht. |
| 12.04.2025 | Kapitel 7.4.3.: In einzelne Middlewares aufgeschlüsselt und Header security um fehlenden Punkte erweitert. |
| 08.04.2025 | Kapitel 7.2.: Entfernen von default@file und Bouncer-Tausch default@file entfernt, da stets automatisch zugewiesen. Bouncer durch gepflegten Fork von FreifunkMUC ersetzt. |
| 07.04.2025 | Kapitel 7.2.: Elementare Änderungen im docker-socket-proxy von linuxserver.io wodurch der Healthcheck fehlschlägt. |
| 24.03.2025 | Kapitel 7.2.: Schreibfehler korrigiert (@nicklas) Kapitel 7.4.6.: Schreibfehler korrigiert (@nicklas) Kapitel 7.5.1.: Hinweis zu Debian 12 hinzugefügt (@christian) |
| 02.02.2025 | Kapitel 7.2: Fehler in der Compose von Traefik behoben (@thedj) / Traefik-Version auf 3.3 angepasst. |
| 10.10.2024 | Kapitel 7.3.1.: Hinweis erweitert (@steje) Kapitel 7.2. & Kapitel 7.3.2.: Anbindung von CrowdSec an den Docker-Socket-Proxy / Github aktualisiert |
| 09.10.2024 | Kapitel 7.5.1. & Kapitel 8.1.: Um Hinweis ergänzt (@Dearmon) |
| 07.10.2024 | Initialer Release |
WICHTIG!
Diese Anleitung nimmt keine Rücksicht auf die alte Anleitung. Ich werde schauen, dass ich eine gesonderte Anleitung für den Umstieg schreibe. Grundsätzlich ist es möglich in dem man alle Docker Container und Netzwerke herunterfährt dann diese Anleitung durchläuft und die Container nach und nach wieder hochfährt. Zu beachten gilt an dieser Stelle dann nur ein kleiner Unterschied in Angabe des Host in den Labels:
traefik.http.routers.nginx-mailcow-secure.rule: "Host(`mail.euredomain.de`) || Host(`autodiscover.euredomain.de`) || Host(`autoconfig.euredomain.de`) || Host(`mta-sts.euredomain.de`) || Host(`imap.euredomain.de`) || Host(`pop3.euredomain.de`) || Host(`smtp.euredomain.de`)"
Code-Sprache: JavaScript (javascript)
traefik.http.routers.nginx-mailcow-secure.rule: Host(`mail.euredomain.de`,`autodiscover.euredomain.de`,`autoconfig.euredomain.de`,`mta-sts.euredomain.de`,`imap.euredomain.de`,`pop3.euredomain.de`,`smtp.euredomain.de`)
Code-Sprache: CSS (css)
0. Testing
Ich werde versuchen, diese Anleitung so aktuell wie möglich zu halten. Die Kompatibilität der Anleitung und der dazugehörigen Konfigurationen kann im zugehörigen GitHub-Repository eingesehen werden. Ich empfehle, das GitHub-Repository nur dann zu verwenden, wenn du diese Anleitung bereits mehrfach durchgearbeitet hast oder generell ein erfahrener Anwender im Bereich Server- und Docker-Administration bist.
Repository-Link: https://github.com/psycho0verload/traefik-crowdsec-stack
1. Zielsetzung
- Traefik v3 installieren und konfigurieren
- Crowdsec installieren und konfigurieren
- Traefik Services via CrowdSec sichern
- Einzelner Stack
- Wie wir unsere Services mit Traefik verfügbar machen

2. Voraussetzung
Um die Installation und Konfiguration von Traefik v3 und CrowdSec durchzuführen, müssen die folgenden Systemanforderungen erfüllt sein:
- Ubuntu 24.04 LTS – “Noble” oder Debian 12 LTS – “Bookworm”
- Docker version 27.x
- Docker Compose version v2.28.x
root-Rechte auf dem Zielsystem
2.1. Hinweis
Diese Anleitung basiert auf meiner persönlichen Testumgebung, in der ich hauptsächlich mit der aktuellen Ubuntu-Version arbeite. Dennoch werde ich den gesamten Prozess auch auf der neuesten Debian-Version testen und bereitstellen.
Es ist möglich, dass die Anleitung auch rückwärtskompatibel zu älteren Versionen von Ubuntu und Debian ist. Dies werde ich jedoch weder testen noch sicherstellen.
Mir ist bekannt, dass es inzwischen ein CrowdSec-Plugin für Traefik gibt, allerdings möchte ich alle Möglichkeiten von CrowdSec in meinen Umgebungen voll ausschöpfen.
Wichtiger Hinweis:
ALLE Befehle werden als root-User ausgeführt!


Vielen Dank für die großartige Anleitung,
psycho0verload! 🙂
Eine kleine Anmerkung: Das obige Setup führt zu folgendem Fehler:
{"level":"error","entryPointName":"websecure","routerName":"traefik-dashboad@docker","error":"middleware \"traefik-bouncer@file\" does not exist","time":"2025-03-21T22:07:51+01:00"}Hintergund ist ein kleiner Tippfehler in der /data/traefik/dynamic_conf/http.middlewares.traefik-bouncer.yml:
Fügt man hier statt forwardauth = forwardAuth ein, funktioniert es. 🙂
Hallo,
ich habe folgende Fehlermeldung nach Aufruf von:
systemctl status crowdsec-firewall-bouncer
Process: 1911999 ExecStartPre=/usr/bin/crowdsec-firewall-bouncer -c /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml -t (code=exited, status=1/FAILURE)
Ein restart wird auch mit einer Fehlermedlung quittiert.
Hat jemand eine Idee. Vielen Dank. Gruß Andreas
Der hier benutzte fbonalair/traefik-crowdsec-bouncer wird seit 3 Jahren nicht mehr geupdated und führt bei mir zu 403 forbidden Problemen in einem Subprojekt.
Eine aktuell gepflegte Alternative wäre maxlerebourg/crowdsec-bouncer-traefik-plugin.
Ein Update wäre cool! 🙂
Hi,
danke für die super Anleitung und das tolle Skipt.
ich habe jetzt nur das Problem, dass ich meinen homeassisten Server über das Handy extern nicht mehr erreiche.
Nextclout welches als Docker läuft aber schon. Daher gehe ich irgendwie davon aus, dass es an der Weiterleitung an eine IP im zusammenhang von IPv4 und IPv6 zu tun haben könnte.
Denn wenn ich wieder außerhalb in einem fremden Wlan mit IPv4 bin komme ich wieder auf den HA Server drauf.
Ich habe in der http.middlewares.default.yml
folgendes eingetragen:
routers:
homeassistent:
entryPoints:
– websecure
rule: “Host(
ha.test.de)”service: “homeassistent”
middlewares:
– default@file
– traefik-bouncer
tls:
certresolver: http_resolver
services:
homeassistent:
loadBalancer:
servers:
– url: “http://192.168.178.79:8123”
passHostHeader: true
damit hatte es unter Traefik 2 super funktioniert und hatte keine Probleme.
Was mache ich flasch?
Gruß
Ich habe festgestellt, dass man bei den Traefik-Labels inzwischen auf fünf Labels reduzieren kann.
traefik.docker.network: proxy: Das Netzwerk wird in der statischen Configproviders.docker.networkschon definiert und ist hier redundant. https://doc.traefik.io/traefik/providers/docker/#networktraefik.http.routers.wordpress.middlewares: default@file: Die Middleware wird auch schon in der statischen Config definiert inentryPoints.websecure.http.middlewares.traefik.http.routers.wordpress.service: wordpress: Ein Service wird automatisch erstellt oder automatisch assigned, wenn die Konfiguration durch Labels geschieht. https://doc.traefik.io/traefik/routing/providers/docker/#service-definitiontraefik.http.routers.wordpress.tls: true: Wenn ein TLS-Konfigurationslabel angegeben ist, also dencertresolver, dann wird TLS implizit auftruegesetzt. https://doc.traefik.io/traefik/routing/routers/#generalDamit bleiben am Ende die Labels fürenable,entrypoint,rule,certresolverundport.Hallo zusammen,
zunächst einmal vielen Dank – dank dieser Anleitung habe ich den Umstieg auf eine selbstgehostete Nextcloud geschafft.
Allerdings habe ich ein Problem – nachdem die Installation fast 3 Wochen lang fehlerfrei lief, konnte ich heute nachmittag nicht mehr zugreifen. Wenn ich traefik aufrufe, kommt “forbidden”. Auch bei der Nextcloud.
Ich habe daraufhin Traefik nach der Anleitung nochmal komplett neu installiert, dann konnte ich wieder mit meiner Nexcloud arbeiten – und nach ca. 5 Minuten flog ich raus und es kam wieder “forbidden”.
Ich habe nach dem unten aufgeführten Post das data/crowdsec/data Verzeichnis gelöscht, danach läuft es auch wieder – für 10 Minuten. Dann tritt das Problem wieder auf.
Bin für jede Hilfe dankbar.
Dietmar
Hallo Zusammen
Ich habe ein Problem mit der Acquisition Metrics. Ich habe Traefik einmal Punkt für Punkt nach der Anleitung Installiert und einmal mit dem Shell Scripte auf einem Debian 12 gehostet von Netcup.
Beides Mal steht nach dem Befehl
docker exec crowdsec cscli metrics
nichts von Traefik.log oder access.log unter Acquisition Metrics.
Das komische ist, ich habe das ganze nur ein paar Stunden vorher auf einem Debian 12 Server eines anderen Hoster installiert und dort wurden mehr Menü Punkte angezeigt.
Folgendes fehlt bei Netcup
—————————————————————————————————————————-+
| Acquisition Metrics |
+———————————-+————+————–+—————-+————————+——————-+
| Source | Lines read | Lines parsed | Lines unparsed | Lines poured to bucket | Lines whitelisted |
+———————————-+————+————–+—————-+————————+——————-+
| file:/var/log/traefik/access.log | 714 | 714 | – | 1.09k | – |
+———————————-+————+————–+—————-+————————+——————-+
+—————————————————-+
| Local API Alerts |
+——————————————–+——-+
| Reason | Count |
+——————————————–+——-+
| crowdsecurity/http-admin-interface-probing | 2 |
| crowdsecurity/http-probing | 9 |
| crowdsecurity/http-sensitive-files | 13 |
| crowdsecurity/http-wordpress-scan | 1 |
| crowdsecurity/netgear_rce | 1 |
+——————————————–+——-+
+——————————————————————————————-+
| Bouncer Metrics (FIREWALL) since 2025-02-22 20:48:06 +0000 UTC |
+—————————-+——————+——————-+———————–+
| Origin | active_decisions | dropped | processed |
| | IPs | bytes | packets | bytes | packets |
+—————————-+——————+———+———+———–+———–+
| CAPI (community blocklist) | 46.98k | 810.46k | 17.35k | – | – |
| crowdsec (security engine) | 0 | 0 | 0 | – | – |
+—————————-+——————+———+———+———–+———–+
| Total | 46.98k | 810.46k | 17.35k | 1.32G | 442.26k |
Kann mir jemand da einen Tipp geben?
Hallo zusammen,
tja, das war wohl etwas voreilig (siehe hier drunter).
Die Container starten und laufen nun alle, doch mehrere Dinge liegen im Argen, weshalb ich sowohl beim Zugriff auf die Traefik-Management-Seite, als auch beim Zugriff auf meinen Immich-Dienst ausschließlich ein ‘Forbidden’ bekommen.
Identifizierte Problemstellen:
Das Zertifikat für meinen Dienst hat Traefik gezogen, doch – wie beschrieben: Ich bekomme ausschließlich ein ‘Forbidden’ in der linken, oberen Ecke, und dasselbe bekomme ich auch schon ohne den Dienst für die Traefik-Management-Seite (also keine HTTP-Authentifizierung).
Kann mir jemand weiterhelfen?
Viele Grüße
Matthias
ps Ach ja: In der docker-compose von Traefik habe ich “3.1” durch “3.3” ersetzt.
Hallo zusammen,
zunächst vielen Dank an psycho0verload für die fantastische Anleitung!👌
Nach bestem Wissen und Gewissen bin ich sie durch und habe auch ein paar Kleinigkeiten aus den Kommentaren ergänzt bzw. korrigiert.
Doch bei mir will der Traefik-Container nicht starten bzw. bleibt im ‘restarting’.
Meine Frage: Wie kann ich herausfinden, woran das liegt? /var/log/traefik bleibt leer.🙄
Wer hat mir einen Tipp? Wo und wie kann ich schauen, was da los ist?
Viele Grüße aus Stuttgart
Matthias
Hallo
psycho0verload in der Versionierung 02.02.2025 schreibst du u.a. “Traefik-Version auf 3.3 angepasst” Ich sehe allerdings noch 3.1 im compose file, hast du dich da vertippt? Hast du die 3.3 getestet? Danke Gruss Marco