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.
Weihnachtliche Grüße 🎁✨

Diese Anleitung soll ein kleines Weihnachtsgeschenk 🎄🎁 von @christian und @psycho0verload sein. Nachdem der Heilige Abend nun vorbei ist und die Zeit zwischen den Jahren oft etwas ruhiger, entspannter und besinnlicher wird ☕❄️, ist genau jetzt der perfekte Moment, um zu tüfteln 🧑💻🔧, Neues auszuprobieren 🚀 und bestehende Setups weiter zu optimieren 🔐⚙️.
Gleichzeitig möchte ich mich – auch im Namen von Christian 🙌 – herzlich dafür bedanken, dass ihr Teil der goNeuland-Community ❤️ seid. Viele von euch unterstützen dieses Projekt bereits durch ein Abo ⭐, das goNeuland überhaupt erst möglich macht und am Leben hält 💪💡. Dafür sagen wir ganz bewusst: Vielen Dank! 🙏
Natürlich freuen wir uns auch über jede Person, die goNeuland ohne Abo nutzt 😊 – wer das Projekt jedoch unterstützen möchte, hilft mit einem Abo dabei, auch künftig solche Anleitungen, Inhalte und Ideen möglich zu machen 🚀📚.
Was goNeuland aber ganz besonders macht 💛, ist die aktive Beteiligung der Community:
Ihr könnt das Projekt nicht nur durch Abos unterstützen, sondern auch durch Kommentare 💬, durch gegenseitige Hilfe 🤝 und sogar, indem ihr eigene Anleitungen unter eurem eigenen Namen veröffentlicht ✍️📖. Genau dieser Austausch – dass jeder jedem hilft und Wissen geteilt wird – zeigt, dass goNeuland mehr ist als nur eine Webseite: Es ist eine Gemeinschaft 👥❤️.
In diesem Sinne wünsche ich euch viel Spaß beim Ausprobieren dieser Anleitung 🧪🛠️, entspannte Tage zum Jahreswechsel 🎆 und einen großartigen Start ins Jahr 2026 🎉✨.
Frohe Weihnachten 🎄❤️ und einen guten Rutsch! 🚀🥂

Ich habe jetzt meinen Main-Server nach der “Komplexen Migration” umgestellt. Hat 1a geklappt! Danke!😀
Hallo,
ich habe ein upgrade durchgeführt, nun funktioniert meine Portainer Oberfläche nicht mehr 🙁
Muss ich hier jetzt neue variablen einsetzten?
Vielen Dank schonmal für eure antworten und lösungen
Nach nur kurzer Zeit ist es mir gelungen meinen kompletten Traefik-Stack problemlos auf die neue Version upzugraden. Sehr gut Arbeit!
An einer Stelle bekomme ich allerdings Fehlermeldungen: Beim Einrichten des Crowdsec-Firewall-Bouncers auf dem Hostsystem. Es gibt einfach nichts aussagekräftiges. Als OS läuft ein Debian 12.
Es geht um Punkt 10.3. und folgende: Ich habe den crowdsec-firewall-bouncer-nftables installiert. (NF-Tables ist übrigens bereits seit Ubuntu 20.10 und Debian 10 Standard). Danach den Access-Token generiert und dann zusammen mit api_url in /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml eingefügt. systemctl enable … funktioniert natürlich, aber das Starten nicht. Ich bekomme einen Exit Code 1. Leider finde ich nicht wirklich verwertbares in den Logs:
journalctl -xeu crowdsec-firewall-bouncer.service:
Dez 28 11:10:22 services systemd[1]: Starting crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec...
░░ Subject: A start job for unit crowdsec-firewall-bouncer.service has begun execution
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit crowdsec-firewall-bouncer.service has begun execution.
░░
░░ The job identifier is 248656.
Dez 28 11:10:23 services crowdsec-firewall-bouncer[3880235]: time="2025-12-28T11:10:23+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
Dez 28 11:10:23 services crowdsec-firewall-bouncer[3880241]: time="2025-12-28T11:10:23+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
Dez 28 11:10:23 services crowdsec-firewall-bouncer[3880241]: time="2025-12-28T11:10:23+01:00" level=fatal msg="process terminated with error: bouncer stream halted.
Dez 28 11:10:23 services systemd[1]: crowdsec-firewall-bouncer.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ An ExecStart= process belonging to unit crowdsec-firewall-bouncer.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
Dez 28 11:10:23 services systemd[1]: crowdsec-firewall-bouncer.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit crowdsec-firewall-bouncer.service has entered the 'failed' state with result 'exit-code'.
Dez 28 11:10:23 services systemd[1]: Failed to start crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec.
░░ Subject: A start job for unit crowdsec-firewall-bouncer.service has failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
systemctl status crowdsec-firewall-bouncer.service:
● crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec
Loaded: loaded (/etc/systemd/system/crowdsec-firewall-bouncer.service; enabled; preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2025-12-28 11:24:54 CET; 9s ago
Process: 3905021 ExecStartPre=/usr/bin/crowdsec-firewall-bouncer -c /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml -t (code=exited, status=0/SUCCESS)
Process: 3905027 ExecStart=/usr/bin/crowdsec-firewall-bouncer -c /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml (code=exited, status=1/FAILURE)
Process: 3905035 ExecStartPost=/bin/sleep 0.1 (code=exited, status=0/SUCCESS)
Main PID: 3905027 (code=exited, status=1/FAILURE)
CPU: 133ms
Manueller Aufruf:
/usr/bin/crowdsec-firewall-bouncer -c /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml
INFO[0000] Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'
time="2025-12-28T11:27:12+01:00" level=fatal msg="process terminated with error: bouncer stream halted"
tail /var/log/syslog:
2025-12-28T11:28:03.492272+01:00 services systemd[1]: Starting crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec...
2025-12-28T11:28:03.507262+01:00 services crowdsec-firewall-bouncer[3910458]: time="2025-12-28T11:28:03+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
2025-12-28T11:28:03.507262+01:00 services crowdsec-firewall-bouncer[3910458]: time="2025-12-28T11:28:03+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
2025-12-28T11:28:03.635062+01:00 services crowdsec-firewall-bouncer[3910464]: time="2025-12-28T11:28:03+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
2025-12-28T11:28:03.635062+01:00 services crowdsec-firewall-bouncer[3910464]: time="2025-12-28T11:28:03+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
2025-12-28T11:28:03.727360+01:00 services crowdsec-firewall-bouncer[3910464]: time="2025-12-28T11:28:03+01:00" level=fatal msg="process terminated with error: bouncer stream halted"
2025-12-28T11:28:03.727360+01:00 services crowdsec-firewall-bouncer[3910464]: time="2025-12-28T11:28:03+01:00" level=fatal msg="process terminated with error: bouncer stream halted"
2025-12-28T11:28:03.730811+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Main process exited, code=exited, status=1/FAILURE
2025-12-28T11:28:03.730811+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Main process exited, code=exited, status=1/FAILURE
2025-12-28T11:28:03.803384+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Failed with result 'exit-code'.
2025-12-28T11:28:03.803384+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Failed with result 'exit-code'.
2025-12-28T11:28:03.804078+01:00 services systemd[1]: Failed to start crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec.
2025-12-28T11:28:03.804078+01:00 services systemd[1]: Failed to start crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec.
2025-12-28T11:28:13.968807+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Scheduled restart job, restart counter is at 116.
2025-12-28T11:28:13.968807+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Scheduled restart job, restart counter is at 116.
2025-12-28T11:28:13.969164+01:00 services systemd[1]: Stopped crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec.
2025-12-28T11:28:13.969164+01:00 services systemd[1]: Stopped crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec.
2025-12-28T11:28:14.007842+01:00 services systemd[1]: Starting crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec...
2025-12-28T11:28:14.007842+01:00 services systemd[1]: Starting crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec...
2025-12-28T11:28:14.022716+01:00 services crowdsec-firewall-bouncer[3910733]: time="2025-12-28T11:28:14+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
2025-12-28T11:28:14.022716+01:00 services crowdsec-firewall-bouncer[3910733]: time="2025-12-28T11:28:14+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
2025-12-28T11:28:14.143666+01:00 services crowdsec-firewall-bouncer[3910739]: time="2025-12-28T11:28:14+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
2025-12-28T11:28:14.143666+01:00 services crowdsec-firewall-bouncer[3910739]: time="2025-12-28T11:28:14+01:00" level=info msg="Loading yaml file: '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml' with additional values from '/etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml.local'"
2025-12-28T11:28:14.251029+01:00 services crowdsec-firewall-bouncer[3910739]: time="2025-12-28T11:28:14+01:00" level=fatal msg="process terminated with error: bouncer stream halted"
2025-12-28T11:28:14.251029+01:00 services crowdsec-firewall-bouncer[3910739]: time="2025-12-28T11:28:14+01:00" level=fatal msg="process terminated with error: bouncer stream halted"
2025-12-28T11:28:14.254105+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Main process exited, code=exited, status=1/FAILURE
2025-12-28T11:28:14.254105+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Main process exited, code=exited, status=1/FAILURE
2025-12-28T11:28:14.335186+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Failed with result 'exit-code'.
2025-12-28T11:28:14.335186+01:00 services systemd[1]: crowdsec-firewall-bouncer.service: Failed with result 'exit-code'.
2025-12-28T11:28:14.335900+01:00 services systemd[1]: Failed to start crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec.
2025-12-28T11:28:14.335900+01:00 services systemd[1]: Failed to start crowdsec-firewall-bouncer.service - The firewall bouncer for CrowdSec.
Leider kann ich aus keinem der Logs ersehen, was das Problem ist. Hat jemand Tipps für mich?
Vielen Dank für das Update.
Ich freu mich riesig. Vor ein paar Wochen wollte ich schon Mal vorsichtig anfragen, ob zumindest irgendwann ein Update mit dem integrierten Plugin geplant ist und jetzt das hier.
Ein sehr schönes Weihnachtsgeschenk 😀
Da ich immer auf der Suche nach Alternativen bin, habe ich eine Alternative zu Let’s Encrypt aus Europa ausfindig gemacht. Man weiß ja nie was mal kommen wird, ganz besonders in der heutigen Zeit, daher finde ich sowas wichtig. Unsere Daten sind uns ja was wert, deswegen hosten wir ja schließlich selber. Es handelt sich um den italienischen Anbieter Actalis (der übrigens auch kostenfrei SMIME-Zertifikate zur Verfügung stellt, um Emails zu signieren).
Actalis: https://www.actalis.com/custom-registration
Kleiner Wermutstropfen: Es erfordert eine kurze einmalige Anmeldung und es wird leider kein TLS unterstützt, nur HTTP. Trotzdem besser als nichts und kostenfrei ist es auch. Bis September gab es noch den Anbieter buypass. Dieser hat leider den Betrieb für neue Anfragen allerdings eingestellt.
Um Actalis ins eigene Setup mit einzubinden, muss man nur ganz wenig anpassen und wer weiß, wofür es mal gut ist:
In der traefik.yml muss einfach ein weiterer Resolver aufgenommen werden:
certificatesResolvers:
http_resolver:
...
tls_resolver:
...
actalis_http_resolver:
acme:
email: "mail@example.com"
storage: "acme_actalis.json"
caServer: "https://acme-api.actalis.com/acme/directory"
eab:
kid: "KID AUS DEM BENUTZERACCOUNT"
hmacEncoded: "HMAC ENCODED"
httpChallenge:
entryPoint: web
Hier die eigene Emailadresse einfügen, die KID aus dem Benutzerkonto 1:1 hineinkopieren. Die hmacEncoded, muss etwas umgewandelt werden. HMAC natürlich durch die eigene aus dem Benutzeraccount ersetzen:
printf '%s\n' "$(printf '%s' "MEINE HMAC AUS DEM BENUTZERACCOUNT" | tr '+/' '-_' | sed 's/=*$//')"
Der Wert, der hier ausgegeben wird, ist dann der HMAC ENCODED, der oben eingesetzt werden muss.Der Befehl macht nichts anderes, als eventuelle Gleichzeichen (=) am Ende zu entfernen, Pluszeichen (+) in Minuszeichen (-) und Slashes (/) durch Unterstriche (_) zu ersetzen. Geht natürlich genauso gut manuell.
Benutzt wird der das Ganze dann einfach über die Labels im entsprechenden Service.
Vorher:
labels:
...
traefik.http.routers.mein-service.tls.certresolver: http_resolver
# oder
traefik.http.routers.mein-service.tls.certresolver: tls_resolver
...
Nachher:
traefik.http.routers.mein-service.tls.certresolver: actalis_http_resolver
Guten Rutsch wünsche ich 👍
Danke für die neue Anleitung! 🙂
Mir sind noch zwei Kleinigkeiten aufgefallen beim Umstellen meines Servers:
Im traefik.log steht noch eine deprecated-Warnung:
{"level":"warn","time":"2025-12-26T11:39:07+01:00","message":"delayBeforeCheck is now deprecated, please use propagation.delayBeforeChecks instead."} {"level":"info","version":"3.6.5","time":"2025-12-26T11:39:07+01:00","message":"Traefik version 3.6.5 built on 2025-12-16T14:56:48Z"}Bei der dynamischen Traefik-Config besteht dann ein Unterschied zur normalen, neuen Config:
Die “http.middlewares.default.yml” arbeitet dann mit den neuen Dateien “http.middlewares.gzip.yml” und “http.middlewares.default-security-headers.yml”. Das habe ich bei mir glatt gezogen, dass das auf dem gleichen Stand ist. Vielleicht sollte man das in dem Migrations-Teil auch noch ergänzen und ggfs. weitere Änderungen nochmal ergänzen?
Die sind mir nur ins Auge gefallen, weil ich den Anfang mit dem Erstellen der Files geprüft hatte in der neuen Anleitung.
Was für ein Geschenk, vielen Dank für das gute Update. Ich habe gerade mal einen kleinen Server nach der einfachen Migration umgestellt. Hat alles geklappt. Der Server läuft nun mit der neuen Anleitung. In den nächsten Tage werde ich mal meinen Hauptserver umstellen. Das teilweise die Änderungen schon in den Konfigurationsdateien enthalten sind, ist eine sehr gut Idee und macht alles viel einfacher und schneller.
Ganz lieben Dank euch beiden für das Update zum Traefik Crowdsec Stack. Ich werde mein Setup in den nächsten Wochen mit der Migrationsanleitung auf den neusten Stand mit eurer abgleichen 😊