InfraGuard

Öffentliche Landingpage, Demo-Anfragen und Analyse-Tags

Die Oberflächen, die sich ohne Anmeldung öffnen (Landingpage, Demo-Formular, Benutzerhandbuch), die GA4/GTM-Tags, die deren Besucher messen, und der Verwaltungsbildschirm, der die eingehenden Demo-Anfragen bearbeitet.

Übersicht — worum es geht

Neben der Konsole hinter der Anmeldung hat InfraGuard eine öffentliche Oberfläche.

Pfad Bildschirm Zugriff
/ Marketing-Landingpage Gäste (eine authentifizierte Sitzung wird auf /console umgeleitet)
/demo Formular für Demo-Anfragen Gäste
/manual Benutzerhandbuch Gäste und angemeldete Benutzer gleichermaßen
/login · /lang/{locale} Anmeldung · Sprachumschaltung Gäste

Die Startseite der Konsole liegt unter /console. Dieser Umzug hat / an die öffentliche Oberfläche übergeben, ohne den Routennamen (overview) oder bestehende Lesezeichen zu zerstören.

Die Landingpage wird als eigenes Bundle (front.*) gebaut. Sie in das Konsolen-Bundle zu legen, würde jeden Besucher Vue, ECharts, CodeMirror, Konva und xterm herunterladen lassen (gemessen: rund 1,283KB Konsole gegenüber 24KB Front). Für eine Marketingseite ist der erste Eindruck die Ladegeschwindigkeit. Nur die minimale gemeinsame Oberfläche (Icon-Schaltflächen, Sprachumschalter) liegt in _shared-ui, damit beide Seiten dieselbe Definition verwenden — beim Kopieren würde eine Seite abdriften.

Das öffentliche Handbuch

/manual öffnet sich ohne Anmeldung. Wer das Produkt evaluiert, sollte nachlesen können, wie es tatsächlich betrieben wird, und eine öffentliche Dokumentation ist selbst ein Marketing- und SEO-Wert. Die Dokumente enthalten keine Geheimnisse und keine Live-Daten.

Demo-Anfragen

Das öffentliche Formular (/demo)

Dies ist eine Anfrageannahme, keine Demo per Klick. Erforderlich sind nur ein Name und eine geschäftliche E-Mail-Adresse; Sprache, Herkunftsquelle und IP werden daneben aufgezeichnet.

Dieses Formular ist der einzige Schreibpfad für Gäste in der Anwendung und daher vierfach abgesichert.

  1. Honeypot — wird er ausgefüllt, wird nichts gespeichert, die Antwort sieht aber weiterhin nach Erfolg aus (kündigen Sie die Erkennung niemals an).
  2. throttle:8,1 — die neunte Anfrage innerhalb einer Minute erhält ein 429.
  3. CSRF-Token.
  4. Serverseitige Prüfung mit Whitelist — status und note sind der Verwaltung vorbehalten, das öffentliche Formular kann sie also nicht setzen.

Der Verwaltungsbildschirm (Verwaltung ▸ Demo-Anfragen)

/admin/demo-requests betreibt den Posteingang: CRUD im Modal plus Suche, Statusfilter mit Zählern und Seitennavigation.

Status Bedeutung
new eingegangen, unbearbeitet
contacted kontaktiert
qualified qualifizierte Gelegenheit
closed abgeschlossen

Die Suche maskiert LIKE-Platzhalter (%, _, \). Ohne das würde die Eingabe eines einzelnen % auf jede Zeile passen.

Analyse-Tags (GA4 · GTM · Search Console)

Tragen Sie eine Mess-ID in .env ein, und das Tag erscheint nur auf der öffentlichen Oberfläche. Ist der Wert leer, wird überhaupt kein <script> gerendert, sodass eine Standardinstallation null ausgehende Anfragen stellt.

Schlüssel Wert Zweck
GA_MEASUREMENT_ID G-XXXXXXXXXX gtag.js (GA4)
GTM_CONTAINER_ID GTM-XXXXXXX Google Tag Manager (kann parallel laufen)
GOOGLE_SITE_VERIFICATION Meta-Token Inhaberschaft in der Search Console
GA_PRODUCTION_ONLY true (Standard) nur in der Produktion auslösen

Fügen Sie diese niemals der Konsole (layouts/app) hinzu. Konsolen-URLs und -Titel führen Hostnamen, IPs, Instanz-Aliase und Vorfalltitel mit sich. Diese an eine Analyse-Property Dritter zu senden, widerspricht dem Versprechen von Self-Hosting und Datensouveränität, das die Landingpage selbst gibt, und gibt Details der Kundeninfrastruktur preis.

GA4 liefert Ihnen keine Suchbegriffe. Es meldet den Kanal (organische Suche) und hört dort auf; die Suchanfragen liegen ausschließlich in der Search Console. Deshalb wird das Meta-Tag zur Inhaberschaft unabhängig von GA4 ausgegeben — Sie können die Inhaberschaft bestätigen, ohne GA4 überhaupt zu aktivieren. Für Auswertungen je Website siehe Besucher- und Suchauswertung.

Textrichtlinie

Vertrauenszahlen auf der Landingpage verwenden nur, was sich im Code zählen lässt, und sie werden beim Rendern gezählt statt fest verdrahtet (Anzahl der Regelsätze, Anzahl der Prüfungen, Anzahl der Mail-/SMS-Adapter und so weiter).

Diese Richtlinie hat einen echten Fehler aufgedeckt — die Zahl der Prüfungen betrug 36, nicht 37. Umgekehrt werden beobachtete Werte nie verwendet: die Anzahl unterschiedlicher Signaturen liegt bei 43 über 24h, 67 über 7d und 79 insgesamt, sie würde sich also zwischen Besuchen ändern und das Vertrauen eher untergraben als aufbauen. Da es sich um eine öffentliche Seite handelt, berührt sie auch nie die Datenbank — eine Abfrage pro Besuch ist unnötig, und die Marketingoberfläche sollte eine wackelnde Datenbank überstehen.

Datenquellen

Ziel Ort Rolle
infr_demo_request Standard (000770) Posteingang der Demo-Anfragen (status, note, locale, source, ip)
config/analytics.php ← .env config Single Source of Truth für Mess-IDs und deren Freigabe (App\Support\Analytics)
public/brand/ statische Dateien Logo und OG-Bilder

public/brand/ muss eingecheckt werden. Der größte Teil von public/ ist erzeugte Ausgabe (build, hot, storage stehen im gitignore), deshalb wird es leicht übersehen — Markenmaterialien sind jedoch keine Vite-Ausgabe: nichts baut sie, und ohne den Commit liefern Logo und OG-Bild in der Produktion 404. Das OG-Bild muss PNG sein: viele Social-Media-Crawler rendern keine SVG-Vorschau.

Berechtigungen

Fehlersuche · FAQ

Verwandte Themen

공개 랜딩 페이지
공개 랜딩 페이지