Night Watch
Menține-ți site-urile funcționale în fața avalanșelor de scrapere: un monitor de disponibilitate, un scut Cloudflare din planul gratuit și o barieră anti-bots.
- Linux
- Python 3.10+
- Cloudflare Free plan
- ASGI or WSGI apps

Ce face
Night Watch deschide fiecare site pe care îl rulezi exact așa cum îl deschide un vizitator, la fiecare cinci minute, și te anunță în momentul în care unul încetează să se încarce și în momentul în care revine. Când un site cedează pentru că un scraper îl inundă, monitorul activează o regulă Cloudflare care oprește inundația la nivel de edge, iar aplicația ta continuă să servească utilizatorii cât timp durează.
- Fiecare site, la fiecare cinci minute. Fiecare zonă din contul tău Cloudflare, plus orice pagină pe care o listezi, opțional cu textul pe care pagina trebuie să îl conțină. Un mesaj când un site cade, unul când revine cu durata indisponibilității, un reminder cât timp rămâne jos. Prin e-mail, webhook de chat sau ambele.
- Un scut pe planul Free. Trei reguli WAF personalizate: un user agent Chrome fără antetele pe care le trimite orice Chrome real primește un challenge, cererile de pagină din cloud-urile de scraping primesc un challenge, iar o regulă de urgență provoacă la challenge vizitatorii străini fără cookie și fără link în timpul unei inundații.
- Activat singur. Când un site cade din cauza supraîncărcării, monitorul activează regula de urgență și menționează acest lucru în alarmă; la câteva ore după ce site-ul revine, o dezactivează. Un scut activat manual de tine rămâne activ.
- Un filtru în interiorul aplicației tale. Un fișier fără dependențe, pentru FastAPI, Starlette, Django, Flask sau orice aplicație ASGI sau WSGI. Respinge browserele false înainte ca codul tău să ruleze și menține vizitatorii străini în limitele a ceea ce poate servi fiecare worker. Persoanele cu un cookie sau care ajung printr-un link nu îl observă niciodată.
- Vezi cine te lovește. Ce a provocat la challenge firewall-ul Cloudflare în ultimele minute, pe regulă, rețea, țară, user agent și path, citit din evenimentele brute permise de planul Free.
- Anulare integrată. Fiecare modificare de regulă salvează mai întâi regulile zonei, regulile tale rămân pe loc înaintea celor ale noastre, iar o comandă restaurează setul salvat.
Testat pe site-urile noastre
- O inundație reală, o oră: pe un site al nostru, regula de browsere false a provocat la challenge peste 10.000 de cereri. Cele 10.000 pe care Cloudflare ne permite să le citim au venit de la 9.627 de adrese de broadband rezidențial, niciuna trimițând mai mult de 4: o limită de rată pe adresă nu ar fi fost niciodată declanșată.
- Fiecare regulă, testată live pe planul Free: un vizitator străin a fost provocat la challenge cât timp regula de urgență era activă și a fost lăsat să treacă cu un cookie sau un link; un user agent Chrome fără antete de browser a fost provocat la challenge; Googlebot a trecut. Regulile anterioare ale zonei au fost apoi restaurate exact.
- Portalul sub 1.747 cereri pe secundă pe uvicorn: fiecare scraper fără antete de browser respins, străinii limitati la ceea ce poate servi aplicația, iar fiecare vizitator recurent, vizitator prin link și cerere Googlebot servit într-o mediană de 0,20 secunde, timpul propriu al paginii.
Ce conține
Monitorizarea
Site-uri din contul tău Cloudflare și o listă, verificări care arată ca un vizitator, mesaje prin e-mail sau webhook și un test care distinge între „totul căzut” și „această mașină este offline”.
Scutul
Instalare, status, pornire, oprire, dezinstalare și restaurare pentru o zonă sau pentru toate, cu fiecare modificare salvată inițial ca backup.
Portalul
Middleware ASGI și WSGI, o pagină de 2 secunde „un moment” care oferă utilizatorilor un cookie și o linie de jurnal pe minut.
Manualul de intervenție
Ce să faci când un site este lent sau căzut, cum să interpretezi un flux masiv de trafic și ce să nu activezi în panoul Cloudflare.
Cerințe
- Linux cu systemd și Python 3.10 sau mai nou; nimic de instalat din pip.
- Pentru scut și vizualizarea evenimentelor, site-uri pe Cloudflare (orice plan, inclusiv planul Free) și un token API.
- O mașină diferită de cea care îți servește site-urile, astfel încât să te poată anunța când aceasta este offline.
Bine de știut
- Regula de urgență provoacă, de asemenea, o persoană care tastează adresa ta într-un browser proaspăt, motiv pentru care este oprită, cu excepția cazului în care are loc un flux masiv de trafic.
- Botoții verificați și roboții care se identifică nu sunt niciodată provocați, iar motoarele de căutare nu sunt niciodată respinse de portal.
- Scutul utilizează trei dintre cele cinci reguli personalizate permise per zonă în planul Free.
Întrebări
Am nevoie de un plan Cloudflare plătit?
Nu. Tot ce face Night Watch funcționează pe planul Free: cele trei reguli, vizualizarea evenimentelor și comutarea automată. Un plan plătit îți oferă doar mai multe sloturi de reguli pe lângă ale noastre.
Va bloca Google sau crawlerele de căutare AI?
Nu. Botoții verificați Cloudflare și fiecare robot care se identifică în user agent trec de scut, iar portalul nu respinge niciodată un motor de căutare sau o previzualizare de link. Dacă dorești să blochezi crawlerele AI, aceasta este o opțiune separată în panoul Cloudflare.
Site-ul meu nu este pe Cloudflare. Este totuși util?
Monitorizarea și portalul funcționează oriunde: monitorizarea deschide orice URL, iar portalul protejează orice aplicație web Python. Scutul și vizualizarea evenimentelor necesită Cloudflare.
Ce diferență există față de un monitor de disponibilitate?
Un monitor de disponibilitate îți spune că un site este offline. Night Watch îți spune și el, apoi acționează asupra celei mai frecvente cauze pe care o întâlnim: activează scutul la marginea rețelei Cloudflare, iar poarta îți menține aplicația în funcțiune pentru persoanele dorite cât timp durează fluxul masiv.
Actualizat: