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!


Hat schon jemand versucht diese Anleitung auf Docker Swarm um zubauen ?
klappt diese Anleitung auch noch auf Debian13?
Ich führe alles nach Anleitung durch, jedoch kann ich nicht auf Traefik zugreifen.
Die von mir gewählte Domain in der .env – traefik.domain.de ist nicht erreichbar
Großartige Anleitung, danke dir vielmals!
Docker 29 habe ich als Anlass genommen, endlich von v2 auf v3 zu wechseln. Mit Traefik v3.6.1 ging dann auch alles wieder.
Dank der übersichtlichen, gut geschriebenen Anleitung, konnte ganz entspannt umziehen.
Ein einziger, klitzekleiner Verbesserungsvorschlag: In Abschnitt 7.3.4 wird
angegeben. Gerne im Kapitel 9 oder 10 noch unterbringen, dass das angepasst wird, dann vergisst das auch niemand. 🙂
Ich habe die neue Traefik Version 3.6.1 auf allen meinen Servern eingespielt. Bei einem einzigen habe ich das Problem das der Socket Proxy nicht hochfährt. Medlung: “dependency failed to start: container socket-proxy is unhealthy”. Kann mir jemand sagen welche abhängigkeiten beim Socket Proxy bestehen, das dieser Healthy ist?
Hallo,
Falls jemand unter dem selben Problem leidet.
Docker 29 funktioniert mit der aktuellen Traefik Version (in meinem Fall 3.6.) nicht da die Docker API 1.44 nicht unterstützt wird die zwingend von Docker 29 benötigt wird.
Es gibt auch schon ein Issue
Lösung ist hier dafür das man derweil sobald ein Update von Traefik kommt auf der version 28 bleibt per versionlock bei DNF z.b
Hallo in die Runde 🙂
Die Anleitung hat super funktioniert – ich habe traefik mit einer netcup-Domain ans laufen bekommen. Auch das Einbinden von Portainer hat funktioniert.
Traefik läuft bei mir auf einem Proxmox-Server in einem Debin 12 LXC mit Docker-Installation. Auf dem Server läuft noch ein weiterer LXC für meine pihole-Instanz.
Ich würde gerne pihole ebenfalls über traefik erreichbar machen, um die SSL-Fehler im HomeLab loszuwerden. Dazu habe ich in dem Ordner dynamic_conf eine pihole.yml mit folgendem Inhalt angelegt:
http:
routers:
router-pihole:
rule: “Host(
pihole.meinedomain.de)”service: pihole
tls:
certResolver: letsencrypt
services:
pihole:
loadBalancer:
servers:
– url: http://<localIP>:80
MeineDomain und <localIP> entsprechen selbstverständlich meinen Namen/Adressen.
Leider erhalte ich mit der Konfiguration nur den Fehler 404 über das traefik-Dashboard. Könnte es sein, dass die Syntax falsch ist? Falsche Zeichen?
Was habe ich falsch gemacht? Wie verweise ich richtig auf Dienste, die auf einem anderen Host laufen? Ich freue mich sehr, wenn mir einer von euch helfen könnte!
EDIT: Habs selbst hinbekommen – der Entrypoint darf nicht drin stehen und ich hatte einen Syntaxfehler. Ich habe jetzt zwar noch immer den Dienst nicht erreichbar, scheint aber ein SSL-Fehler zu sein
Ich bin das jetzt 3x durchgegangen und habe 3x einen Server installiert aber am Ende ist CrowdSec immer unhealty und startet immer wieder neu.
Zunächst ein großes Dankeschön an Christian für goNeuland.de und an psycho0verload für die großartige und funktionierende Anleitung. Das war lange geplant bei mir und jetzt endlich verstanden und umgesetzt.
Ein Hinweis zu 11.1 TLS anstatt HTTP:
Hätte ich gerne gemacht. Ich verwende aber Buypass statt Let’s Encrypt (#european-alternatives). Diese bieten (zur Zeit) nur httpChallenge über acme.
Das herauszufinden hat mich ein bisschen Zeit gekostet, da es sich mir aus den Fehlermeldungen in der traefik.log nicht direkt erschlossen hat.
Wer ebenfalls Buypass nutzt/nutzen möchte sollte folgende Änderungen in der Konfiguration vornehmen:
Unter /etc/traefik habe ich die beiden Zertifikatsdateien tls_letsencrypt.json und acme_letsencrypt.json gelöscht und durch eine acme_buypass.json ersetzt.
In der data/traefik/traefik.yml ist nur noch ein Resolver nötig. Ich habe ihn schlicht ‘buypass’ genannt:
Wichtig ist hier das geänderte Storage und der eingefügte caServer von Buypass.
In der compose/traefik.yml ist ebenfalls der neue Resolver zu ändern, sowie die Volumes für httpChallenge anzupassen und für tlsChallenge auszukommentieren (oder zu löschen):
... traefik.http.routers.traefik-dashboard.tls.certresolver: buypass ... - ${ABSOLUTE_PATH}/data/traefik/certs/acme_buypass.json:/etc/traefik/acme_buypass.json # - ${ABSOLUTE_PATH}/data/traefik/certs/tls_letsencrypt.json:/etc/traefik/tls_letsencrypt.json ...Damit hat dann bei mir die Zertifizierung über Buypass funktioniert.
Ich lasse, wie oben beschrieben, über
Crowdsec alle 3 Tage neu starten. Im Anschluss erhalte ich folgenden Hinweis:
Was hat das zu bedeuten und korrigiere ich das?
Wäre es möglich mit dieser Anleitung auch Quick/http3 zu unterstützen was muss dafür alles angepasst werden?