Night Watch
Mantieni i tuoi siti online durante le ondate di scraper: un watchdog di uptime, uno scudo con piano Cloudflare Free e un gate per i bot.
- Linux
- Python 3.10+
- Cloudflare Free plan
- ASGI or WSGI apps

Cosa fa
Night Watch apre ogni sito che gestisci come farebbe un visitatore, ogni cinque minuti, e ti avvisa nell'istante in cui uno smette di aprirsi e nell'istante in cui torna online. Quando un sito cade perché uno scraper lo inonda, il watch attiva una regola Cloudflare che blocca l'inondazione al bordo, e la tua app continua a servire le persone finché dura.
- Ogni sito, ogni cinque minuti. Ogni zona del tuo account Cloudflare, più qualsiasi pagina che elenchi, opzionalmente con un testo che la pagina deve contenere. Un messaggio quando un sito va giù, uno quando torna su con la durata del down, un promemoria mentre resta giù. Via mail, un webhook di chat, o entrambi.
- Uno scudo sul piano Free. Tre regole WAF personalizzate: uno user agent Chrome senza gli header che ogni Chrome reale invia riceve una challenge, le richieste di pagina dalle nuvole di scraper ricevono una challenge, e una regola di emergenza sottopone a challenge gli sconosciuti senza cookie e senza link durante un'inondazione.
- Attivato da solo. Quando un sito va giù per sovraccarico, il watch attiva la regola di emergenza e lo dice nell'allarme; ore dopo che il sito è tornato su, la disattiva. Uno scudo che hai attivato tu resta attivo.
- Un cancello dentro la tua app. Un file senza dipendenze, per FastAPI, Starlette, Django, Flask o qualsiasi app ASGI o WSGI. Rifiuta i falsi browser prima che il tuo codice venga eseguito e tiene gli sconosciuti entro ciò che ogni worker può servire. Le persone con un cookie o che arrivano tramite un link non lo notano mai.
- Vedi cosa ti colpisce. Cosa ha sottoposto a challenge il firewall di Cloudflare negli ultimi minuti, per regola, rete, paese, user agent e percorso, letto dagli eventi grezzi che il piano Free consente.
- Annullamento integrato. Ogni modifica alle regole salva prima le regole della zona, le tue regole restano al posto giusto davanti alle nostre, e un comando ripristina il set salvato.
Testato sui nostri siti
- Un'inondazione reale, un'ora: su un nostro sito, la regola per i falsi browser ha sottoposto a challenge più di 10.000 richieste. Le 10.000 che Cloudflare ci consente di leggere provenivano da 9.627 indirizzi di banda larga domestica, nessuno dei quali ne inviava più di 4: un limite di frequenza per indirizzo non sarebbe mai scattato.
- Ogni regola, testata live sul piano Free: uno sconosciuto è stato sottoposto a challenge mentre la regola di emergenza era attiva ed è stato fatto passare con un cookie o un link; uno user agent Chrome senza header del browser è stato sottoposto a challenge; Googlebot è passato. Le regole precedenti della zona sono state poi ripristinate esattamente.
- Il gate sotto 1.747 richieste al secondo su uvicorn: ogni scraper senza header del browser viene rifiutato, gli estranei restano limitati a ciò che l'app può servire, e ogni visitatore abituale, visitatore da link e richiesta di Googlebot viene servita in una mediana di 0,20 secondi, il tempo della pagina stessa.
Cosa c'è dentro
Il watch
Siti dal tuo account Cloudflare e una lista, controlli che sembrano un visitatore, messaggi via mail o webhook, e un test che distingue "tutto giù" da "questa macchina è offline".
Lo shield
Installazione, stato, on, off, disinstallazione e ripristino per una zona o per tutte, con ogni modifica salvata prima in backup.
Il gate
Middleware ASGI e WSGI, una pagina "un momento" da 2 secondi che consegna un cookie, e una riga di log al minuto.
Il runbook
Cosa fare quando un sito è lento o giù, come leggere un picco di traffico, e cosa non attivare nella dashboard di Cloudflare.
Requisiti
- Linux con systemd e Python 3.10 o superiore; nulla da installare da pip.
- Per lo shield e la vista eventi, siti su Cloudflare (qualsiasi piano, incluso il piano Free) e un token API.
- Una macchina diversa da quella che serve i tuoi siti, così può avvisarti quando quella è giù.
Da sapere
- La regola di emergenza sfida anche una persona che digita il tuo indirizzo in un browser nuovo, motivo per cui è disattivata tranne durante un picco di traffico.
- I bot verificati e i robot che si dichiarano non vengono mai sfidati, e i motori di ricerca non vengono mai respinti dal gate.
- Lo shield usa tre delle cinque regole personalizzate consentite per zona dal piano Free.
Domande
Mi serve un piano Cloudflare a pagamento?
No. Tutto ciò che Night Watch fa funziona sul piano Free: le tre regole, la vista eventi e il commutamento automatico. Un piano a pagamento ti dà solo più slot per regole accanto alle nostre.
Bloccherà Google o i crawler di ricerca AI?
No. I bot verificati di Cloudflare e ogni robot che si dichiara nel suo user agent passano lo shield, e il gate non respinge mai un motore di ricerca o un'anteprima di link. Se vuoi bloccare i crawler AI, è una scelta separata nella dashboard di Cloudflare.
Il mio sito non è su Cloudflare. È comunque utile?
Il watch e il gate funzionano ovunque: il watch apre qualsiasi URL, e il gate protegge qualsiasi app web Python. Lo shield e la vista eventi richiedono Cloudflare.
In cosa è diverso da un monitor di uptime?
Un monitor di uptime ti dice che un sito è offline. Night Watch te lo dice anche, poi agisce sulla causa più comune che riscontriamo: attiva lo scudo al edge di Cloudflare, e il gate continua a servire la tua app alle persone che vuoi tu mentre il picco di traffico dura.
Aggiornato: