Night Watch
Halte deine Websites bei Scraper-Fluten am Laufen: ein Uptime-Watch, ein Cloudflare-Free-Plan-Schild und ein Bot-Gate.
- Linux
- Python 3.10+
- Cloudflare Free plan
- ASGI or WSGI apps

Was es kann
Night Watch öffnet jede Website, die du betreibst, so wie ein Besucher sie aufruft – alle fünf Minuten – und meldet dir den Moment, in dem eine Seite nicht mehr lädt, sowie den Moment, in dem sie wieder verfügbar ist. Wenn eine Seite ausfällt, weil ein Scraper sie überflutet, aktiviert die Überwachung eine Cloudflare-Regel, die die Flut an der Edge stoppt, während deine App weiterhin Nutzer bedient.
- Jede Website, alle fünf Minuten. Jede Zone in deinem Cloudflare-Konto sowie jede von dir gelistete Seite, optional mit einem Text, den die Seite enthalten muss. Eine Nachricht, wenn eine Seite ausfällt, eine, wenn sie wieder online ist (mit Angabe der Ausfallzeit), und eine Erinnerung, solange sie offline bleibt. Per E-Mail, Chat-Webhook oder beidem.
- Schutz im Free-Plan. Drei WAF-Custom-Regeln: Ein Chrome-User-Agent ohne die Header, die jeder echte Chrome sendet, erhält eine Challenge; Seitenanfragen von Scraper-Clouds erhalten eine Challenge; und eine Notfall-Regel stellt Fremden ohne Cookie und ohne Referrer während einer Flut eine Challenge.
- Automatisch aktiviert. Wenn eine Seite aufgrund von Überlastung ausfällt, aktiviert die Überwachung die Notfall-Regel und vermerkt dies in der Alarmmeldung; Stunden nachdem die Seite wieder online ist, deaktiviert sie die Regel. Einen Schutz, den du selbst aktiviert hast, lässt sie aktiv.
- Ein Gate in deiner App. Eine Datei ohne Abhängigkeiten für FastAPI, Starlette, Django, Flask oder jede ASGI- oder WSGI-App. Sie weist gefälschte Browser ab, bevor dein Code ausgeführt wird, und hält Fremde innerhalb dessen, was jeder Worker bedienen kann. Personen mit einem Cookie oder über einen Link kommende Nutzer bemerken es nie.
- Siehe, was dich trifft. Was Cloudflares Firewall in den letzten Minuten herausgefordert hat, nach Regel, Netzwerk, Land, User-Agent und Pfad, gelesen aus den Roh-Ereignissen, die der Free-Plan erlaubt.
- Rückgängig eingebaut. Jede Regeländerung speichert zuerst die Regeln der Zone, deine eigenen Regeln bleiben vor unseren bestehen, und ein Befehl stellt den gespeicherten Satz wieder her.
Getestet auf unseren eigenen Websites
- Echte Flut, eine Stunde: Auf einer unserer Websites hat die Fake-Browser-Regel mehr als 10.000 Anfragen herausgefordert. Die 10.000, die Cloudflare uns lesen lässt, stammten von 9.627 Heim-Breitband-Adressen, keine sendete mehr als 4: Ein Rate-Limit pro Adresse hätte nie gegriffen.
- Jede Regel live im Free-Plan getestet: Ein Fremder wurde herausgefordert, während die Notfall-Regel aktiv war, und mit einem Cookie oder Link durchgelassen; ein Chrome-User-Agent ohne Browser-Header wurde herausgefordert; Googlebot wurde durchgelassen. Die früheren Regeln der Zone wurden anschließend exakt wiederhergestellt.
- Das Gate unter 1.747 Anfragen pro Sekunde bei uvicorn: Jeder Scraper ohne Browser-Header wurde abgewiesen, Fremde bekamen nur das zu sehen, was die App liefern konnte, und jeder wiederkehrende Besucher, Link-Besucher und Googlebot-Anfrage wurde in einer Medianzeit von 0,20 Sekunden bedient – der Zeit der Seite selbst.
Was ist enthalten
Die Wache
Seiten aus Ihrem Cloudflare-Konto und einer Liste, Prüfungen, die wie ein Besucher aussehen, Meldungen per E-Mail oder Webhook und ein Test, der „alles down“ von „diese Maschine ist offline“ unterscheidet.
Der Schild
Installieren, Status, an, aus, deinstallieren und wiederherstellen für eine Zone oder alle, wobei jede Änderung zuerst gesichert wird.
Das Gate
ASGI- und WSGI-Middleware, eine „Einen Moment“-Seite mit 2 Sekunden Verzögerung, die den Nutzern ein Cookie gibt, und eine Log-Zeile pro Minute.
Das Runbook
Was zu tun ist, wenn eine Seite langsam oder down ist, wie man einen Ansturm liest und was man im Cloudflare-Dashboard nicht einschalten sollte.
Voraussetzungen
- Linux mit systemd und Python 3.10 oder neuer; nichts aus pip zu installieren.
- Für den Schild und die Ereignisansicht: Seiten auf Cloudflare (jeder Plan, inklusive Free Plan) und ein API-Token.
- Eine andere Maschine als die, die Ihre Seiten bedient, damit sie Sie warnen kann, wenn diese ausfällt.
Gut zu wissen
- Die Notfallregel stellt auch einer Person, die Ihre Adresse in einen frischen Browser tippt, eine Challenge, weshalb sie außer während eines Ansturms deaktiviert ist.
- Verifizierte Bots und Roboter, die sich namentlich zu erkennen geben, werden nie herausgefordert, und Suchmaschinen werden vom Gate nie abgewiesen.
- Der Schild nutzt drei der fünf benutzerdefinierten Regeln, die der Free Plan pro Zone erlaubt.
Häufige Fragen
Brauche ich einen bezahlten Cloudflare-Plan?
Nein. Alles, was Night Watch tut, funktioniert im Free Plan: die drei Regeln, die Ereignisansicht und das automatische Umschalten. Ein bezahlter Plan bietet nur mehr Regel-Slots neben unseren.
Blockiert es Google- oder KI-Such-Crawler?
Nein. Cloudflares verifizierte Bots und jeder Roboter, der sich im User-Agent namentlich zu erkennen gibt, passieren den Schild, und das Gate weist nie eine Suchmaschine oder eine Link-Vorschau ab. Wenn Sie KI-Crawler blockieren möchten, ist das eine separate Entscheidung im Cloudflare-Dashboard.
Meine Seite ist nicht auf Cloudflare. Ist es trotzdem nützlich?
Die Wache und das Gate funktionieren überall: Die Wache öffnet jede URL, und das Gate schützt jede Python-Web-App. Der Schild und die Ereignisansicht benötigen Cloudflare.
Was unterscheidet das von einem Uptime-Monitor?
Ein Uptime-Monitor meldet dir, dass eine Seite nicht erreichbar ist. Night Watch meldet dir das ebenfalls und greift dann bei der häufigsten Ursache ein, die wir beobachten: Es aktiviert den Schutzschild an der Cloudflare-Edge, und das Gate sorgt dafür, dass deine App weiterhin die gewünschten Nutzer bedient, solange die Flut andauert.
Aktualisiert: