Eigene Anbindung: Innensicht melden
Für WordPress gibt es die fertige Erweiterung im Plugin-Verzeichnis – in der Website unter Plugins → Installieren nach „DomainWarn“ suchen –, für Shopware 6 eine eigene Erweiterung; beide verbinden sich mit einem Klick. Wer ein anderes System betreibt – TYPO3, Joomla, einen eigenen Shop – kann dasselbe mit ein paar Zeilen selbst melden: genaue Version, PHP, installierte Erweiterungen mit verfügbarem Update, Mailversand, Wartungsmodus. Von außen ist davon nichts oder nur Geratenes sichtbar, und genau das macht die Meldung wertvoll.
Gemeldet werden nur Tatsachen. Ob eine Version veraltet ist, entscheidet DomainWarn – anhand der aktuellen Version des Projekts und der Stützzeiträume von PHP. So ändert sich das Urteil, ohne dass jemand an der Website etwas aktualisiert.
Gebraucht werden ein API-Token mit Schreibrecht (Einstellungen → API) und das Kürzel der Organisation. Die Meldung ersetzt jeweils die vorige; ein Lauf alle paar Minuten bis einmal am Tag genügt.
curl -X POST \
-H "Authorization: Bearer $DOMAINWARN_TOKEN" \
-H "Content-Type: application/json" \
"https://api.domainwarn.com/api/v1/orgs/<kuerzel>/domains/<domain-id>/site-insights" \
-d '{
"platform": "wordpress",
"platform_version": "6.7.0",
"php_version": "8.3.12",
"maintenance": false,
"extensions": [
{ "name": "contact-form-7", "label": "Contact Form 7", "version": "5.9.0", "latest_version": "6.0.1", "active": true }
],
"mailer": { "transport": "smtp", "host": "smtp.hoster.de", "sender": "info@kunde.de" },
"channels": [{ "name": "Hauptseite", "domains": ["https://kunde.de"] }],
"agent": "typo3",
"agent_version": "1.0.0"
}'Die Kennung der Domain findest du über die Suche – und hier lauert die einzige Stolperstelle: DomainWarn führt Domains auf der registrierbaren Ebene. Läuft die Website unter shop.kunde.de, heißt die Domain dort kunde.de. Suche deshalb zuerst nach dem vollen Hostnamen und, wenn nichts kommt, Label für Label kürzer: GET /orgs/<kuerzel>/domains?search=shop.kunde.de, dann ?search=kunde.de. Genau daran scheitert sonst jede Anbindung eines Shops auf einer Subdomain.
Felder sind alle optional außer platform (shopware, wordpress). Was du nicht kennst, lässt du weg – unvollständige Meldungen sind willkommener als geratene Werte. latest_version ist die Version, die das System selbst als Update kennt; sie ist der Grund, warum die Innensicht mehr sagt als jede Prüfung von außen.
Plattform-Gesundheit mit environment: Optional meldest du die Umgebung – php (sapi, memory_limit und upload_max_filesize in Bytes, max_execution_time in Sekunden, opcache, extensions als Liste der geladenen Erweiterungen), database (type: mysql oder mariadb, version), server (software wie nginx, version) und settings mit Schaltern der Plattform (WordPress: debug, debug_display, file_edit, core_auto_updates = off/minor/all, xmlrpc, https, cron_disabled, cron_overdue, object_cache; Shopware: environment, debug, admin_worker, tasks_overdue, http_cache, search_server). DomainWarn bewertet das gegen die Supportzeiträume von PHP, MySQL und MariaDB, die PHP-Versionen der CMS-Linie und die Empfehlungen der Plattform und zeigt die Empfehlungen in der Innensicht mit „Was tun?“. Unbekannte Schalter werden verworfen; Pfade, Zugangsdaten oder Werte aus der Umgebung gehören nicht hinein. Kommt die Meldung von der Kommandozeile (sapi = cli), bewertet DomainWarn Speicher, Laufzeit und OPcache nicht – dort gelten andere Werte als für die Website. Ohne environment eröffnet DomainWarn keinen Incident „Website-Plattform kritisch“ und schließt einen offenen dieser Installation.
Ein Heartbeat zeigt, dass überhaupt noch etwas läuft. Lege dazu einmalig einen Monitor an (POST /orgs/<kuerzel>/domains/<domain-id>/monitors mit {"type":"heartbeat","target":"mein cronjob","config":{"period_seconds":900,"grace_seconds":900}}); die Antwort enthält ping_url. Diese Adresse ruft dein Cronjob bei jedem Lauf auf, …/fail bei einem fehlgeschlagenen. Bleibt der Ping aus, eröffnet DomainWarn einen Vorfall – der Fall, den man von außen prinzipiell nicht sehen kann.
Zwei Regeln, die sich bewährt haben: Die Meldung darf die Website nie aufhalten – Zeitüberschreitung kurz halten, Fehler protokollieren und weiterlaufen. Und der Token gehört auf den Server, nicht in den Browser: Wer ihn im Frontend ausliefert, gibt Schreibrecht auf die ganze Organisation weg.
Siehe auch: WordPress-Plugin · Shopware-Erweiterung · API-Dokumentation