# SaferPage Crawler Timer Runner

Crawler-Timer-Runner: systemd alle 30 Minuten, maximal 8 Hosts pro Lauf, 736 DACH-/DE-Checks, Queue 586, letzter Batch 8 Host(s), Fehlerquote 3,02%.

> Dieser Nachweis zeigt Timervertrag, Runner-State, Queue, letzte Reports und Betriebsregeln. Er veroeffentlicht keine Secrets, keine internen IPs, keine Rohpayloads und keine personenbezogenen Besucherlogs.

## Timer-Vertrag
- Unit: saferpage-crawler.service
- Timer: saferpage-crawler.timer
- Kadenz: 30min after previous unit activation
- Randomized Delay: 8min
- Exec: python3 scripts/crawl-german-sites.py --from-recent --seed-file config/dach-seed-domains.txt --refresh-days 7 --refresh-limit 2000 --max 8 --concurrency 2 --timeout 90 --delay 1

## Seedquelle
- Datei: config/dach-seed-domains.txt
- Datei-Hosts: 86
- Seed-Hosts gesamt: 109
- Neu in Queue: 0

## Readiness-Gates
- Runner-State erreichbar: passed - Die lokale Crawler-API liefert Queue, Laufhistorie und Fehlerstatus.
- Letzter Lauf protokolliert: passed - finished_at=2026-06-10T00:17:41+00:00
- systemd-Timer-Vertrag vorhanden: passed - saferpage-crawler.timer: OnBootSec=10min, OnUnitActiveSec=30min, RandomizedDelaySec=8min, Persistent=true.
- Batch und Parallelität begrenzt: passed - max=8, concurrency=2, timeout=90s.
- Versionierte DACH-Seedquelle: passed - config/dach-seed-domains.txt: 86 Host(s), 0 neu in der Queue.
- User-Agent mit Betreiberlink: passed - SaferPageCrawler/0.3 (+https://saferpage.de/bot; schedules passive DACH website checks; report examples: https://saferpage.de/tests)
- robots.txt-Respekt: passed - Runner nutzt einen eigenen SaferPageCrawler und dokumentiert Opt-out unter /bot und /crawler.
- Fehlerquote unter Stop-Schwelle: passed - 3,02% bei 30 Fehlern.
- Queue-Druck kontrolliert: passed - 586 Hosts in der Queue.
- Zuletzt geprüfte Reports verlinkt: passed - 36 direkte Kurz-URL-Links im Export.
- No-Secret-/No-Visitor-Log-Export: passed - Der Timer-Runner-Export enthält Betriebsdaten, Reportlinks und Runbook, aber keine Secrets oder Besucherlogs.

## Zuletzt gepruefte Reports
- ffr.de: Score 0, https://saferpage.de/ffr.de
- feuerwehr-herbrechtingen.de: Score 0, https://saferpage.de/feuerwehr-herbrechtingen.de
- fettabsaugen-freiburg.de: Score 0, https://saferpage.de/fettabsaugen-freiburg.de
- fessie.de: Score 0, https://saferpage.de/fessie.de
- fes-frankfurt.de: Score 0, https://saferpage.de/fes-frankfurt.de
- fernstudium-direkt.de: Score 0, https://saferpage.de/fernstudium-direkt.de
- fernstudientag.de: Score 0, https://saferpage.de/fernstudientag.de
- fernstudiumcheck.de: Score 0, https://saferpage.de/fernstudiumcheck.de
- fernstudienanbieter.de: Score 0, https://saferpage.de/fernstudienanbieter.de
- ferienanlage-schoenhagen.de: Score 0, https://saferpage.de/ferienanlage-schoenhagen.de
- fbt-fiat.de: Score 0, https://saferpage.de/fbt-fiat.de
- familienservice.de: Score 0, https://saferpage.de/familienservice.de
- fashy.de: Score 0, https://saferpage.de/fashy.de
- familie.dgb.de: Score 0, https://saferpage.de/familie.dgb.de
- familienportal.de: Score 0, https://saferpage.de/familienportal.de
- familienplanung.de: Score 0, https://saferpage.de/familienplanung.de
- fahrrad-buecher-karten.de: Score 0, https://saferpage.de/fahrrad-buecher-karten.de
- faktencheck-gesundheitswerbung.de: Score 0, https://saferpage.de/faktencheck-gesundheitswerbung.de
- fachforum.de: Score 0, https://saferpage.de/fachforum.de
- deutsche-krebshilfe-ratgeber-bord.de: Score 0, https://saferpage.de/deutsche-krebshilfe-ratgeber-bord.de

## Stop-Bedingungen
- Fehlerquote ueber 20 Prozent oder wiederholte DNS-/Timeout-Fehler.
- Queue ueber 5000 ohne Priorisierung oder ohne Betreiber-/Seed-Plan.
- robots.txt-Skiprate steigt sichtbar nach Seed-Import.
- Headless-Chromium-/Screenshot-Worker blockiert API-Antwortzeiten.
- Oeffentliche Exports enthalten Rohpayloads, interne Pfade, Tokens, IPs oder Besucherlogs.
- Reports sind nicht mehr ueber die kanonische Kurz-URL /{domain} erreichbar.

## Operator-Sequenz
- Vor Seed-Ausbau /crawler/timer-runner-json und /crawler/ops-json pruefen.
- Versionierte DACH-Seedliste pflegen, dann mit kleiner Batchgroesse starten und Queue-/Fehlerquote beobachten.
- Parallelitaet nur erhoehen, wenn API-Latenz, Fehlerquote und robots.txt-Skiprate stabil bleiben.
- Alle gespeicherten Checks muessen in /tests, A-Z-Sitemaps und unter /{domain} erreichbar sein.
- Endnutzertexte im Report priorisieren Datenschutzrisiko, Tracking, Consent, Betreiberfix und Re-Scan-Link.
