6. Stack vorbereiten
Zuerst erstellen wir das Hauptverzeichnis traefik-crowdsec-stack unter /opt/containers/ und wechseln in dieses Verzeichnis. Danach erzeugen wir die erforderlichen Unterverzeichnisse und Dateien, um den Stack mit crowdsec, socket-proxy und traefik zu konfigurieren. Schließlich setzen wir die korrekten Berechtigungen für sensible Zertifikatsdateien.
6.1. Hauptverzeichnis erstellen und in das Verzeichnis wechseln
Wir beginnen mit der Erstellung des Hauptverzeichnisses und den Unterverzeichnissen für Konfigurations- und Datenhaltung. Diese umfassen Verzeichnisse für crowdsec, socket-proxy, traefik sowie Unterordner für Zertifikate und dynamische Konfigurationsdateien.
mkdir -p /opt/containers/traefik-crowdsec-stack && cd /opt/containers/traefik-crowdsec-stack
mkdir -p compose data/{crowdsec/{config,data},socket-proxy,traefik/{certs,dynamic_conf}}
Code-Sprache: Bash (bash)
6.2. Dateien erstellen und Berechtigungen setzen
Anschließend erstellen wir die benötigten Konfigurations- und Umgebungsdateien sowie Zertifikatsdateien. Speziell für die Zertifikate setzen wir restriktive Zugriffsrechte, um deren Sicherheit zu gewährleisten.
touch .env docker-compose.yml \
compose/{crowdsec.yml,networks.yml,socket-proxy.yml,traefik.yml} \
data/{crowdsec/.env,socket-proxy/.env,traefik/{.env,.htpasswd,traefik.yml,certs/{acme_letsencrypt.json,tls_letsencrypt.json},dynamic_conf/{http.middlewares.default.yml,http.middlewares.crowdsec.plugin.yml,http.middlewares.default-security-headers.yml,http.middlewares.gzip.yml,http.middlewares.traefik-dashboard-auth.yml,http.routers.traefik-dashboard.yml,tls.yml}}}
chmod 600 data/traefik/certs/{acme_letsencrypt.json,tls_letsencrypt.json}
Code-Sprache: Bash (bash)
6.3. Überprüfung
Als nächstes möchten wir sicherstellen, dass alles korrekt angelegt wurde. Hierfür verwenden wir den tree Befehl. Falls das tree Programm noch nicht installiert ist, können wir es wie folgt installieren:
apt install treeCode-Sprache: Bash (bash)
Jetzt können wir mit dem Befehl tree uns die erstellte Struktur anzeigen lassen und die Ausgabe vergleichen:
tree -L 4 -a /opt/containers/traefik-crowdsec-stack/Code-Sprache: Bash (bash)
root@test-01:/opt/containers/traefik-crowdsec-stack# tree -L 4 -a /opt/containers/traefik-crowdsec-stack/
/opt/containers/traefik-crowdsec-stack/
├── compose
│ ├── crowdsec.yml
│ ├── networks.yml
│ ├── socket-proxy.yml
│ └── traefik.yml
├── data
│ ├── crowdsec
│ │ ├── config
│ │ ├── data
│ │ └── .env
│ ├── socket-proxy
│ │ └── .env
│ └── traefik
│ ├── certs
│ │ ├── acme_letsencrypt.json
│ │ └── tls_letsencrypt.json
│ ├── dynamic_conf
│ │ ├── http.middlewares.crowdsec.plugin.yml
│ │ ├── http.middlewares.default-security-headers.yml
│ │ ├── http.middlewares.default.yml
│ │ ├── http.middlewares.gzip.yml
│ │ ├── http.middlewares.traefik-dashboard-auth.yml
│ │ ├── http.routers.traefik-dashboard.yml
│ │ └── tls.yml
│ ├── .env
│ ├── .htpasswd
│ └── traefik.yml
├── docker-compose.yml
└── .env
10 directories, 20 files
root@test-01:/opt/containers/traefik-crowdsec-stack# Code-Sprache: Bash (bash)
Wenn unsere Ausgabe genau so aussieht, haben wir alles richtig gemacht und wir können weitermachen. Wenn nicht, überprüft bitte die vorherigen Schritte.

Ich habe heute den stack “upgadatet” seit dem läuft crowdsec in einer Schleife. Folgendes habe ich im Log gefunden: time=”2026-04-16T22:16:42+02:00″ level=fatal msg=”crowdsec init: while loading acquisition config: /etc/crowdsec/acquis.d/appsec.yaml: datasource of type appsec: unable to build appsec_config: unable to load inband rule crowdsecurity/base-config : no appsec-rules found for pattern crowdsecurity/base-config”
Jemand ne Idee?
Hi, ich habe Appsec jetzt mal über die Migrationsanleitung (siehe Versionierung) aktiviert.
Der Test wie hier beschrieben war soweit auch wie erwartet.
Leider habe ich aktuell das Problem, dass ein Bitwarden-Client keine Änderungen mehr in Vaultwarden speichern kann. In der Alert-Liste sehe ich entsprechende Bans, und der Client wird sofort ausgeloggt.
Das Thema Whitelisting habe ich anhand des „Tandoor“-Beispiels noch nicht vollständig verstanden. Deshalb habe ich mich zunächst an die Dokumentation gehalten und den Report-Only-Modus über SERVICES_TRAEFIK_ENV_CROWDSEC_APPSEC_FAILURE_BLOCK=false
aktiviert.
Trotzdem wurde ich weiterhin blockiert.
Erst nachdem ich AppSec vollständig deaktiviert habe, funktionierte es wieder.
Meine Fragen dazu:
Danke Gruss Marco
Halli Hallo zusammen,
ich habe mein Traefik-Stack neu gemacht aber habe in den traefik.log immer diese Fehlermeldung
{“level”:”error”,”providerName”:”docker”,”error”:”Cannot connect to the Docker daemon at tcp://socket-proxy:2375. Is the docker daemon running?”,”time”:”2026-03-31T09:46:00+02:00″,”message”:”Provider error, retrying in 13.646836491s”}
ich habe keine ahnung was ich falsch mache
Hallo zusammen,
erstmal vielen Dank für die ausführliche Anleitung.
Da ich derzeit einen anderen Traefik-Stack nutze und diesen mal testen wollte habe ich eine frische Ubuntu 24.04 VM aufgesetzt (nix drauf außer Docker & der Stack)
Zum Testen Genutzt wird eine 2te Domain von mir die auch über Cloudflare läuft.
Bin die Anleitung durch inkl.den Änderungen von mb1108 aus dem Kommentaren bzgl. der Cloudflare dnsChallenge.
In der acme.json sehe ich auch das ein Zertifikat erstellt wird.
Jedoch bekomme ich, wenn ich auf das Dashboard zugreifen will ein “SSL_ERROR_UNRECOGNIZED_NAME_ALERT” Fehler.
traefik.log zeigt nur:
{"level":"warn","time":"2026-03-27T18:59:06+01:00","message":"Traefik can reject some encoded characters in the request path. When your backend is not fully compliant with [RFC 3986](https://datatracker.ietf.org/doc/html/rfc3986), it is recommended to set these options tofalseto avoid split-view situation. Refer to the documentation for more details: https://doc.traefik.io/traefik/v3.6/migrate/v3/#encoded-characters-configuration-default-values"}Im Pi-Hole hab ich den local DNS record “traefik.meine2tedomain.de” auf die IP des Servers geleitet.
Vielleicht hat jemand eine Idee an was das liegen könnte.
VG
Hallo zusammen,
erst einmal vielen Dank für die tolle Beschreibung. Ich habe eine komplett neue Installation durchgeführt und dabei folgendes Verhalten:
Nach der Installation konnte ich mich kurzzeitig auf das Traefik Dashboard verbinden, danach kam immer, dass die Seite nicht erreichbar ist.
Nach kurzem habe ich dann festgestellt, dass das aufrufen der Traefik Seite von extern ohne Probleme funktioniert.
Kann sich jemand dieses Problem erklären und mir sagen woran es liegen kann?
Vielen herzlichen Dank
Ich bitte um Verständnis für mein Thema:
Macht eine Traefik-Installation ohne integriertem crowdsec-Stack Sinn?
Meine Vermutung wäre, dass dies einfacher zu händeln ist. Aus den Kommentaren entnehme ich einige Schwierigkeiten, die sich manchmal lösen lassen.
Ziel ist für mich ein möglichst stabiles System, welches dauerhaft idealerweise ohne große Eingriffe läuft. Ein Traum wäre ein Traefik was als sicherbarer (“Backup / Restore”) Container einfach läuft…
Das war in der Vergangenheit leider nicht immer so, daher meine Idee:
Ich weiß nicht wieviele Mitleser bspw. opnsense nutzen. Dort wäre ebenfalls eine crowdsec-Instanz möglich, die wahrscheinlich auch auf traefik und andere Container “aufpassen” könnte.
Bitte nicht falsch interpretieren: Die hier dargestellten Lösungen sind super. Es ist lediglich ein Gedanken-Ansatz und mein Weg ist ganz sicher nicht unbedingt euer Weg.
Ich weiß nicht, ob ich der einzige bin, der den aufwendigen Umstieg gemacht hat.
Aber bei der alten Anleitung haben wir den Bouncer ja lokal installiert
den sollte man auch wieder deinstallieren, wenn man ihn nicht mehr braucht, sonst läuft der permanent in Fehler rein
Ich hab mir angewohnt Traefik immer wieder mal per pull/down/up neu zu starten, unabhängig von Updates von Traefik. Warum weiß ich gar nicht mehr genau. 🙁
Nun ist letztens passiert, dass der Neustart irgendwie schief lief und ich sogar von der ssh-shell rausgeworfen wurde.
–> kein Dienst mehr erreichbar und sobald ich per SSH eingelogged war, wurde ich nach kürzester Zeit rausgeworfen.
Nach einem Serverneustart konnte ich mich ins Traefik Verzeichnis durchhangeln und es mit down runterfahren, dann war das mit dem Rauswurf aus SSH behoben.
Ein erneuter Reboot und der Start von Traefik hat dann kurioserweise funktioniert.
Heute war ein Traefik-Update angesagt, und wieder das gleiche Spiel. Hat das noch jemand beobachtet, oder eine Idee, an was es liegen könnte?
Vor allem kommt mir komisch vor, dass ich mich noch an der Shell anmelden konnte und nicht sofort geblockt war…. und ein erneuter login-Versuch dann zwar funktioniert hat, aber nach kürzester Zeit ich wieder rausgeflogen bin… Daher konnte ich auch die Sperrlisten nicht anschauen… bzw. nach dem Reboot war meine eigene nicht enthalten.
Hi habe mich nun endlich auch an das “update” heran gewagt.
Zwei fragen hierzu warum schreiben wir die version auf 3.6 fest?
Hatte mit der alten anleitung bereits ein neuere Version
und ich habe bei der geschichte festgestellt das ich zwei Firewall-Key in der datei stehen habe.
Wie finde ich den heraus welcher der aktuelle ist?
Hallo zusammen,
Habe die Anleitung soweit durchgearbeitet bis zur ersten Anmeldung am Dashboard. Leider bekomme ich im Browser die Meldung “404 Page not found”
Unter /var/log/traefik/traefik finde ich folgende Eintraege:
{“level”:”warn”,”providerName”:”file”,”filename”:”http.middlewares.default.yml”,”middlewareName”:”default-security-headers”,”time”:”2026-03-13T23:11:06+01:00″,”message”:”HTTP middleware already configured, skipping”}
{“level”:”error”,”entryPointName”:”websecure”,”routerName”:”traefik-dashboard@file”,”error”:”middleware \”default@file\” does not exist”,”time”:”2026-03-13T23:11:07+01:00″}
Könnte das den Fehler verursachen?
Danke
Hallo zusammen,
zunächst möchte mich mich für die tollen Anleitungen hier bedanken. Gerade die für Treafik hat mir einiges an Zeit und nerven eingespart 🙂
Gestern habe ich meine Instanz auf den aktuellen Stand gebracht und um AppSec ergänzt. Da mir bei der Installation ein paar Dinge aufgefallen sind, würde ich einige Änderungen in der Anleitung vorschlagen. Ich hoffe es ist OK, wenn ich das hier poste. Falls nicht, den Beitrag bitte löschen.
Damit der API-Key für das Plugin weiter an zentraler Stelle in der .env bleiben kann (analog zu BOUNCER_KEY_FIREWALL), habe ich compose/traefik.yml um folgendes ergänzt:
environment: CROWDSEC_LAPI_KEY: ${BOUNCER_KEY_TRAEFIK}Nun kann mann in der Datei data/traefik/dynamic_conf/http.middlewares.crowdsec.plugin.yml mit der Umgebungsvariable arbeiten:
crowdsecLapiKey: {{ env "CROWDSEC_LAPI_KEY" }}Ich verwende auch die aktuellste Version des Plugins. Daher habe ich die Version in data/traefik/traefik.yml angepasst:
Damit hatte ich jedenfalls keine Probleme mit einer HTTP Verbindung zur LAPI (wie in https://goneuland.de/traefik-ab-v3-6-mit-crowdsec-installieren-und-konfigurieren/#comment-6733 beschrieben).
Zuletzt verwende ich eine eigene AppSec-Config und habe daher die Datei data/crowdsec/config/appsec-configs/my-config.yaml erstellt:
Diese Config musste ich dann nur noch in data/crowdsec/config/acquis.d/appsec.yaml ersetzen:
Der Test einer SQL-Injection funktionierte bei mir dann auch problemlos (wie hier beschrieben https://goneuland.de/traefik-ab-v3-6-mit-crowdsec-installieren-und-konfigurieren/#comment-6653)
Viele Grüße
Markus
Hi, ich habe eine Frage bzgl. der TRAEFIK.YML in der neuesten Anleitung:
Warum fehlt dieser ganze Block in der TRAEFIK.YML-Datei für Docker im Vergleich zur vorherigen Anleitung:
labels: traefik.enable: "true" traefik.http.routers.traefik-dashboard.entrypoints: websecure traefik.http.routers.traefik-dashboard.middlewares: traefik-dashboard-auth@file traefik.http.routers.traefik-dashboard.rule: ${SERVICES_TRAEFIK_LABELS_TRAEFIK_HOST:-HOST(traefik.yourdomain.com)} traefik.http.routers.traefik-dashboard.service: api@internal traefik.http.routers.traefik-dashboard.tls: "true" traefik.http.routers.traefik-dashboard.tls.certresolver: tls_resolver traefik.http.services.traefik-dashboard.loadbalancer.sticky.cookie.httpOnly: "true" traefik.http.services.traefik-dashboard.loadbalancer.sticky.cookie.secure: "true" traefik.http.routers.pingweb.rule: PathPrefix(/ping) traefik.http.routers.pingweb.service: ping@internal traefik.http.routers.pingweb.entrypoints: websecureoder wird dieser in einer anderen Konfigurationsdatei ausgewiesen? Er dient doch zum Zugriff auf das Traefik-Dashboard über eine Subdomain. Wird das in der neuen Anleitung anders ermöglicht?
Vielleicht gibt es ja ein paar Erläuterungen von erfahrenen Usern dazu. Danke für die Hilfe!
Viele Grüße,
Ralf
Moin, ich baue gerade meinen gewachsenen Container-Stack auf dieses Modell um.
Folgende Idee hatte ich dabei:
Die eigene domain und die jeweilige Subdomain in der Grundkonfiguration und (in den weiteren Anleitungen in den Snippets zu den Traefiklabels als Variable schreiben und dann einfach über eine einmalige Definition einklinken. Das hätte mir wahrscheinlich sehr viele Fehler bei verschiedenen Container gespart, bei denen ich die Labels oder unvollständig falsch angepasst habe 🙂
Gleiches gilt für den Anwendungsport.
Und bei dieser Master-Anleitung würde ich mich sehr freuen, auch eine Variante ohne CrowdSec zu haben oder zumindest “ohne CrowdSec bei Schritt 8 weitermachen” oder so. Ich trau mir schon zu, das da selbst rauszufummeln, aber es ist doch immer wieder eine Fehlerquelle mehr.
Liebe Grüße!
L.B.Q.R.
Ich habe mich noch einmal mit der Thematik Traefik-Bouncer beschäftigt (https://goneuland.de/traefik-ab-v3-6-mit-crowdsec-installieren-und-konfigurieren/#comment-6677)
Wenn ich das richtig sehe, ist der neue Traefik Bouncer in der aktuellen Konfiguration vollkommen wirkungslos – weil er nicht mit der Traefik LAPI kommunizieren kann.
Die Option “crowdsecLapiTLSInsecureVerify: false”
in der /opt/containers/traefik-crowdsec-stack/data/traefik/dynamic_conf/http.middlewares.crowdsec.plugin.yml führt dazu, dass ein TLS-Zertifikat erwartet wird. Dies gibt es aber für den LAPI-/Crowdsec-Container nicht. Heißt also, er holt sich niemals irgendwelche Decisions ab und kann auch für Appsec keine Kommunikation mit der LAPI machen. Deshalb bleiben auch die entsprechenden Einträge in Schritt 10.3.6. komplett leer.
Ich habe die Option jetzt auf true gesetzt – und siehe da: meine Bouncers List zeigt einen korrekten LAPI Pull, Type und Version an. Ist natürlich nicht optimal, dass TLS hier ausgelassen wird, aber in der aktuellen Konfiguration arbeitet dies ja in einem gesicherten Docker-Netz. Auch Appsec funktioniert jetzt (endlich) korrekt (Zugriffe auf /.env werden korrekt mit 403 beantwortet).
Hallo zusammen,
ich habe das Problem, dass ich einem Container hinter der Traefik Konfiguration das Network HOST benötige.
wie kann ich dieses Network dem neuen Container zur Verfügung stellen, dass ich trotzdem hinter Traefik laufe?
Vielen Dank für die Hilfe
Hallo
psycho0verload, geht man bei der Anleitung davon aus, dass UFW aktiviert ist? Spielt das eine Rolle? Danke
Hallo zusammen, hallo
psycho0verload , folgende Meldung bekomme ich nachdem ich.
eingebe.
erst nach einem.
ist die Meldung ohne Error. Das hält ein paar Tage, dann dass gleiche von vorn.
Kann da jemand helfen. Gruß Andreas
Hi zusammen,
vielen Dank für diese tollen Anleitungen. Leider komme ich gerade nicht wirklich weiter…
Ich habe das Problem, dass ich Traefik neu aufgesetzte habe.
Vorher hat die Kombination Traefik 2 und Mailcow ohne Probleme funktioniert.
Jetzt habe ich nach Anleitung eingerichtet und wenn ich Traefik aktiviere und auf die Domain von Mailcow aufrufe kommt im Browser Umleitungsfehler.
Wenn ich Traefik runterfahre und Mailcow alleine starte geht es ohne Probleme.
Also würde ich sagen habe ich ein Problem mit Traefik. Leider weiß ich nicht wo ich wie nach dem Fehler suchen soll…
Danke schon mal für eure Unterstützung!
Wann wird die Anleitung denn wieder „voll nutzbar“ sein? Aktuell vermisse ich schon den Inhalt für die Docker Netzkkonfiguration 🙁
Hi, danke für die Überarbeitung mit dem neuen Stack. Was ich nicht ganz verstehe und versuche nachzuverfolgen ist die Bouncers List (cscli bouncers list) in 10.3.6.
Wie auch bei Dir wird bei mir der Traefik Bouncer ohne LAPI pull timestamp und ohne Type angezeigt. Die Version ist ebenfalls mit 1.X.X eingetragen. Für mich sieht das nicht so ganz gesund aus.
Auf Github habe ich keine direkte Beschreibung des Fehlers (oder gar eine Lösung gefunden).
Posts wie dieser hier: https://github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin/issues/219#issuecomment-2767018862
würden für mich aber andeuten, dass zumindest etwas mehr drinstehen sollte.
Hallo
psycho0verload ist Punkt 4 (Netzwerk konfigurieren) nötig wenn ich bereits auf Traefik 3.6 gewechselt habe. Da war das bereits erledigt worden. Jetzt hat sich lediglich die IP von “base”: “172.24.0.0/14” auf “base”: “172.25.0.0/14” geändert. Der Eintrag “compress”: “true” ist dazu gekommen. Oder kann direkt mit Kapitel 6 gestartet werden? Vielen Dank Gruß Andreas
Hallo,
vielen Dank für die Anleitung.
Kann mir jemand erklären, warum ein externer Testangriff durchgeht?
https://reqbin.com/curl
curl -v “https://dozzle.URL.de/?search=<script>alert(‘TEST’)</script>”
Ich habe sehr viel getestet und die Anleitung auf einem neuen Server (Debian 13) Schritt für Schritt befolgt.
Auch Crowdsec habe ich auf LogLevel DEBUG gestellt.
Es sieht so aus, als ob der “Angriff” trusted ist und gar nicht erst kontrolliert wird.
Daraufhin habe ich die trusted IPS einfach komplett aus crowdsec entfernt.
Das Ergebnis bleibt leider gleich.
Danach testete ich die appsec.yaml zu ändern
von:
crowdsecurity/appsec-default
auf:
crowdsecurity/virtual-patching
Auch alle genannten Kontrollen sind positiv.
Die Dienste laufen.
Die Regeln sind geladen.
Am Ende habe ich alles wieder wie in der Anleitung hergestellt, weil ich nie einen Unterschied sah.
Ich bin für Aufklärung und Hilfe dankbar.
Hallo, danke für die Anleitung, die auch erst funktionierte, aber nach einem Neustart des Servers gar nicht mehr geht.
Ich komme schon nicht mehr auf das Traefik dashboard:
Sie besitzen keine Benutzerrechte zum Anzeigen dieser Seite.HTTP ERROR 403
Habt ihr dafür eine Erklärung?
Und wie kann ich das erstellte Backup wieder ausrollen?
Vielen Dank für die neue Anleitung. Ich habe eine kleine Frage – ich glaub ich steh da irgendwo auf dem Schlauch. Seit ich auf das neue Setup umgestellt habe, bekomme ich der Crowdsec Konsole immer den Hinweis, dass 1 Remedation Component inactiv ist (vgl. Bild).
Wenn ich jedoch die Metrics eingebe, scheint dieser Firewall sehr wohl in Betrieb – auch die Statusüberprüfung von Crowdsec-Firewall ergibt, dass dieser aktiv ist… (sowohl in der Bouncers List unter derselbek IP wie auch im systemctl “active and running”.
Hat jemand eine Idee? Ist dies eine falsche Angabe in der Konsole? Installiert ist der firewall-nftables-firewall-bouncer…. oder alternativ werde ich den Server neu aufsetzen….
an Christian: ist das 2 Minuten Script zwischenzeitlich aktuell? Ist evtl. noch ein alter Firewall aus der”alten” Konfiguration/Anleitung aktiv? Ich habe nach der Schnellanleitung umgestellt……
Nachtrag: Habe den Fehler gefunden…. Habe die Umstellung (einfache Variante) nicht sauber gemacht…. Dadurch war immer noch der alte Firewall-Bouncer auf Ebene der IP der VM aktiv (nicht in App). Dadurch hatte ich 2 Bouncer…. Dies ist durch zuviel “copy-paste” bei den middlewares etc. bei der Umstellung passiert…. Habe nun die Umstellung nochmals genau nach Anleitung durchgeführt und alles paletti.
Erst einmal vielen Dank für die Arbeit, die Du hier rein gesteckt hast.
Ich habe mal alles durchgelesen und finde die Änderungen grundsätzlich gut.
Als Migrationspfad hast Du ja geschrieben, am besten einmal neu aufsetzen. Das wäre die sauberste Lösung.
Ich habe allerdings noch ein Setup mit Traefik V2.X. Frei nach dem Motto “Never change a running system…” Gilt Deine Aussage auch hier? Einmal neu installieren und sauber hochfahren?
Oder muss ich noch Anpassungen in der Konfiguration der einzelnen Dienste machen? Wenn ja, wie sähen die dann aus?
Herzlichen Dank für dieses HowTo Crowdsec+Traefik. Es hilft mir sehr!
Beim abarbeiten ist mir gerade aufgefallen, dass
${SERVICES_TRAEFIK_NETWORKS_SOCKET_PROXY_IPV4}
zwei mal verwendet wird.
—
In der crowdsec.yml
${SERVICES_TRAEFIK_NETWORKS_SOCKET_PROXY_IPV4:-172.31.255.252}
—
In der traefik.yml
${SERVICES_TRAEFIK_NETWORKS_SOCKET_PROXY_IPV4:-172.31.255.253}
—
Der Syntax nach, vermute ich, dass es in der crowdsec.yml entsprechend so lauten sollte:
${SERVICES_CROWDSEC_NETWORKS_SOCKET_PROXY_IPV4:-172.31.255.252}
${SERVICES_CROWDSEC_NETWORKS_SOCKET_PROXY_IPV6:-fd00:1:be:a:7001:0:3e:8ffe}
“customResponseHeaders – Content-Security-Policy: “frame-ancestors ‘self’;”” stört in meinem setup die Verbindung zwischen Nextcloud und Collabora.
Aber unter Traefik 3.6 gibt es noch weitere Stolpersteine “encodedcharacters” ist das Stichwort.
Vielen lieben Dank ihr zwei, die Anleitung hat super funktioniert!
Zwei kleine Anmerkungen: Der Link am Ende von 8.1 führt noch zu der alten Anleitung und in 7.3.1 würde ich mir eine Klarstellung wünschen, dass mit “SERVICES_TRAEFIK_LABELS_TRAEFIK_HOST” die DASHBOARD domain und nicht die “Mutter-Domain” des Servers gemeint ist. 😉
Weiterhin hatte ich mit meiner alten Installation häufiger mal false-bans, wenn ich meinen Browser offen gelassen habe und beim erneuten Aufrufen eines Services/Seite ohne aktiven Session Cookie. Crowdsec hat diese Szenarien dann als brute-login oder ähnliches (http-probing oder so…) erkannt.
Gibt es hier auch andere, die ähnlichen Problemen begegnet sind und eventuell Lösungsansätze teilen können?
Erst einmal an der Stelle ein riesiges Dankeschön für die top Anleitung!
Ich hätte dazu eine Frage in die Runde bezüglich der Auswahl des richtigen Firewall Bouncers für Crowdsec unter Debian 13.
Ich nutze UFW, habe aber durch Debian 13 vermutlich die Default-FW Implementierung NFT aktiv.
Auch scheint (laut dem Web) inzwischen UFW auch mit NFT zu funktionieren.
Welcher Bouncer ist in dem Fall der Richtige?
Es müsste eigentlich UFW+NFT sein, aber diese Auswahl besteht nicht..?
Wer ein Wildcard-Zertifikat erstellen möchte (hier am Beispiel von Cloudflare) muss folgendes abändern bzw. hinzufügen:
.
.
.
In /opt/containers/traefik-crowdsec-stack/.env hinzufügen:
CF_DNS_API_TOKEN=DeinCloudflareAPIToken
.
.
.
In /opt/containers/traefik-crowdsec-stack/compose/traefik.yml abändern (siehe Hinweise im Code).
services:
traefik:
container_name: ${SERVICES_TRAEFIK_CONTAINER_NAME:-traefik}
depends_on:
socket-proxy:
condition: service_healthy
env_file: ${ABSOLUTE_PATH}/data/traefik/.env
environment: ##### Hinzufügen
– CF_DNS_API_TOKEN=${CF_DNS_API_TOKEN} ##### Hinzufügen
…
…
…
restart: unless-stopped
security_opt:
– no-new-privileges:true
volumes:
– /etc/localtime:/etc/localtime:ro
– ${ABSOLUTE_PATH}/data/traefik/traefik.yml:/etc/traefik/traefik.yml
– ${ABSOLUTE_PATH}/data/traefik/.htpasswd:/etc/traefik/.htpasswd
##### Folgendes Umbenennen / Alle anderen .json-Zeilen löschen#####
– ${ABSOLUTE_PATH}/data/traefik/certs/acme.json:/etc/traefik/acme.json
##### Ende #####
– ${ABSOLUTE_PATH}/data/traefik/dynamic_conf:/etc/traefik/dynamic_conf:ro
– /var/log/traefik/:/var/log/traefik/
.
.
.
Im Ordner ‘/opt/containers/traefik-crowdsec-stack/data/traefik/certs‘ eine ‘acme.json‘ – Datei mit chmod 0600(!) erstellen, alle anderen löschen. (Oder eine bestehende in ‘acme.json‘ umbenennen)
.
.
.
In /opt/containers/traefik-crowdsec-stack/data/traefik/dynamic_conf/http.routers.traefik-dashboard.yml mit folgenden Code austauschen:
http:
routers:
traefik-dashboard:
entrypoints: websecure
middlewares: traefik-dashboard-auth@file
rule: {{ env “SERVICES_TRAEFIK_LABELS_TRAEFIK_HOST” }}
service: api@internal
tls:
certresolver: cloudflare
domains:
– main: beispiel.de
sans:
– “*.beispiel.de”
.
.
.
In /opt/containers/traefik-crowdsec-stack/data/traefik/traefik.yml NUR den Abschnitt ‘certificatesResolvers’ mit folgendem Code austauschen:
certificatesResolvers:
cloudflare:
acme:
email: deine@email.de
storage: /etc/traefik/acme.json
dnsChallenge:
provider: cloudflare
propagation:
delayBeforeChecks: 10
resolvers:
– “1.1.1.1:53”
– “8.8.8.8:53”
👌
Ich habe bei mir die unter Kapitel 13 angeschnittene DNSchallenge mit Cloudflare implementiert und könnte hier eine entsprechende Anleitung contributen. In welcher Form wäre das sinnvoll/möglich?
Be mir läuft nun alles mit dem neuen Plugin
allerdings habe ich nun das Problem das in der Traefik und crowdsec log jeweils immer die IP vom CDN drin stehen also Cloudflare und ich bekomme ums verrecken es nicht hin das bei crowdsec die orign (client) ip ankommt …
Ich habe folgende fehlermeldung in den logs:
{“level”:”error”,”providerName”:”tls_resolver.acme”,”acmeCA”:”https://acme-v02.api.letsencrypt.org/directory”,”providerName”:”tls_resolver.acme”,”ACME CA”:”https://acme-v02.api.letsencrypt.org/directory”,”routerName”:”traefik-dashboard@docker”,”rule”:”HOST(
traefik.ancienne-forge.eu)”,”error”:”unable to generate a certificate for the domains [traefik.ancienne-forge.eu]: error: one or more domains had a problem:\n[traefik.ancienne-forge.eu] invalid authorization: acme: error: 400 :: urn:ietf:params:acme:error:malformed :: Unable to contact \”traefik.ancienne-forge.eu\” at \”2001:16b8:a79a:ec00:cbd8:8d5c:bcfe:58dd\”, no IPv4 addresses to try as fallback\n”,”domains”:[“traefik.ancienne-forge.eu”],”time”:”2026-01-07T08:00:21+01:00″,”message”:”Unable to obtain ACME certificate for domains”}Für mich unverständlicherweise ist die adresse
traefik.ancienne-forge.eu
über
ping -c3 -6 traefik.ancienne-forge.eu
erreichbar. Ein
nslookup traefik.ancienne-forge.eu
ergibt:
Server: 192.168.1.95
Address: 192.168.1.95#53
Non-authoritative answer:
Name: traefik.ancienne-forge.eu
Address: 2001:16b8:a79a:ec00:cbd8:8d5c:bcfe:58dd
Warum funktioniert der aufruf von
https://traefik.ancienne-forge.eu
dennoch nicht?
Übrigens: auf 192.168.1.95 läuft ein pihole.
Vielen dank für die hilfe.
Sehr schön, dass es jetzt auch eine Anleitung mit dem Bouncer-Plugin gibt! Ich hatte mir da letztes Jahr vorgenommen, mich tiefer einzuarbeiten, aber es fehlte am Ende die Zeit – mit der neuen Anleitung sollte es dann glücklicherweise auch nochmal einen Tick einfacher werden 👍
Wobei ich mich beim Überlegen und auch jetzt beim Lesen wieder fragte, ob sich der Stack nicht noch etwas vereinfachen ließe, indem nicht nur den Firewall-Bouncer, sondern auch Crowdsec selbst auf dem Host laufen lässt (und nicht im Container).
Hallo zusammen,
ich habe die Anleitung auf einem ubuntu Server umgesetzt und bin von der “alten” Anleitung migriert.
Beim Synchronisieren von Daten über die Nextcloud App geht die Verbindung verloren.
Natürlich habe ich auch in crowdsec die Collections und Parser für Nextcloud eingefügt und da Log bereitgestellt.
+——–+———-+——————–+————————————+——–+———+—————————+——–+————+———-+
| ID | Source | Scope:Value | Reason | Action | Country | AS | Events | expiration | Alert ID |
+——–+———-+——————–+————————————+——–+———+—————————+——–+————+———-+
| 105002 | crowdsec | Ip:xxx.xxx.xxx.xxx | crowdsecurity/http-sensitive-files | ban | DE | 3209 Vodafone GmbH | 5 | 3h52m40s | 12 |
| 90001 | crowdsec | Ip:195.178.110.132 | crowdsecurity/http-sensitive-files | ban | BG | 48090 Techoff Srv Limited | 5 | 3h3m42s | 10 |
+——–+———-+——————–+————————————+——–+———+—————————+——–+————+———-+
“xxx” ist meine aktuelle IP
Offenbar wird der Ban durch die Collection http-sensitive-files verursacht.
Kann/soll ich diese Collection einfach weglassen bzw welche Collections empfehlt ihr generell?
Hi,
die bestehende Overleaf-Anleitung funktioniert nicht mehr mit der neuen Konfiguration. Kannst du sie bitte wieder anpassen? Danke.
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 😊