# 03 — Monitoring Pull (Phase 1) **Priorität:** high **Abhängigkeiten:** 01, 02, 05 **Siehe auch:** [`../MONITORING.md`](../MONITORING.md) ## Ziel `monitor.php` auf dem Webspace: externe HTTPS-/SSL-Checks, Retry, E-Mail-Alarm. ## Checkliste ### Implementierung - [ ] `config/` — lädt `.env` (oder `config.php` außerhalb `httpdocs`) - [ ] `public/monitor.php` — CLI/Cron-tauglich, kein Browser-Output nötig - [ ] URL-Liste aus MONITORING.md Mindestliste konfigurierbar (`config/targets.php`) - [ ] Pro URL: HTTP-Status, Timeout ~10s, optional erwarteter Code (200, 301, 401) - [ ] SSL-Ablauf: Warnung wenn < 14 Tage - [ ] Retry: bei Fehler 2 Min warten, zweiter Versuch — Alarm nur wenn beide scheitern - [ ] Ergebnisse nach `data/last-checks.json` schreiben (für Landing Page) - [ ] Bei Alarm: E-Mail an `ALERT_EMAIL` via SMTP - [ ] Optional: Telegram wenn `TELEGRAM_*` gesetzt ### Mindest-URLs (Start) - [ ] `https://schwenk.online` - [ ] `https://gitea.schwenk.online` - [ ] `https://pics.schwenk.online` - [ ] `https://medis.schwenk.online` - [ ] `https://portainer.schwenk.online` - [ ] Eine `bsc-gp.de`-Subdomain (z. B. score) - [ ] `https://vfb.red` ### Sicherheit - [ ] `data/` nicht öffentlich (`.htaccess` oder außerhalb Document Root) - [ ] Keine Secrets in `last-checks.json` ## Akzeptanzkriterien - Manueller Aufruf / „Jetzt ausführen“ in Plesk läuft fehlerfrei - Simulierter Down (falsche URL) löst Mail nach Retry aus - `last-checks.json` aktualisiert sich ## Geschätzter Aufwand ~1h (laut MONITORING.md Phase 1)