Diagnose von der Firewall aus sowie VXLAN und GIF. Gegen die OPNsense-Core-Quellen geprüft und live auf den Test-Firewalls getestet, siehe Handbuch „Erweiterung 1.14.0“: - **Host-System › Diagnose:** Ping, Traceroute, Port-Prüfung und DNS-Abfrage, ausgeführt von der ausgewählten Firewall. Nur für Admins, strenge Eingabeprüfung, jeder Lauf im Audit-Log, Ping-Jobs werden immer wieder aufgeräumt, der Banner der Gegenstelle wird nicht weitergegeben. Packet-Capture gibt es bewusst nicht (Mitschnitte enthalten fremde Nutzdaten). - **Netzwerk › Geräte:** VXLAN und GIF-Tunnel (anlegen, ändern, löschen) über dieselbe abgesicherte Engine wie die übrigen Geräte. - **Fehlerkorrektur:** Auf den Host-System-Seiten war „Übersicht › Hosts“ markiert und der Seitentitel falsch, weil `/hostsystem` mit `/hosts` beginnt.
4.4 KiB
opnexus.dev – Website
Statische Seite ohne Laufzeit-Abhängigkeiten und ohne externe Requests (keine
Web-Fonts, kein CDN, keine Cookies, kein Tracking). Wird 1:1 als Dateibaum
ausgeliefert. Mobile first, Hell/Dunkel (System oder Umschalter), Deutsch und
Englisch. Das HTML wird von scripts/build_website.mjs aus
scripts/website_content.mjs erzeugt und eingecheckt — zum Ausliefern ist
kein Build nötig.
| Pfad | Inhalt |
|---|---|
index.html / en/index.html |
Startseite Deutsch / Englisch |
screenshots/ / en/screenshots/ |
Galerie aller Ansichten (Filter, Lightbox) |
impressum.html, datenschutz.html |
Pflichtseiten (nur Deutsch) — [TODO …]-Felder vor dem Veröffentlichen ausfüllen |
assets/ |
style.css, theme.js (Farbschema vor dem ersten Paint), site.js (Tabs, Lightbox, Vergleichsregler, Kopieren; alles optional), Favicon, og.png |
assets/screenshots/{de,en}/ |
Screenshots als WebP: <seite>-<hell|dunkel>-<desktop|mobile>.webp plus -s.webp (halbe Breite für srcset) und manifest.json (Maße) |
latest.json |
Update-Feed, ausgeliefert als updates.opnexus.dev/latest.json (siehe unten) |
_headers |
Sicherheits- und Cache-Header für Cloudflare Pages |
_worker.js |
Pages-Worker: updates.opnexus.dev liefert nur /latest.json, alles andere leitet auf opnexus.dev um |
Inhalte ändern
Texte (Deutsch und Englisch nebeneinander) stehen in
scripts/website_content.mjs, Struktur in scripts/build_website.mjs,
Gestaltung in assets/style.css:
node scripts/build_website.mjs # schreibt alle HTML-Seiten und sitemap.xml neu
Beim Ändern von style.css/site.js ASSET_V in build_website.mjs hochzählen
(Cache-Busting). Inhaltlich nur Funktionen nennen, die es in der App gibt
(Quellen: docs/HANDBUCH.md, CHANGELOG.md).
Screenshots neu erzeugen
Alle Screenshots entstehen mit erfundenen Demo-Daten: das Skript fängt jede
/api/**-Anfrage im Browser ab und beantwortet sie lokal; es berührt weder eine
echte Firewall noch das Backend noch die Datenbank und lässt keine
schreibenden Anfragen durch. Es braucht einen Produktions-Build des aktuellen
Frontends (der Docker-Container kann älter sein als der Arbeitsstand):
cd frontend && npx next build && npx next start -p 3101 # eigenes Terminal
OPNEXUS_SHOT_URL=http://localhost:3101 node scripts/generate_website_screenshots.mjs
node scripts/make_og_image.mjs # Social-Preview (1200x630)
node scripts/build_website.mjs
ONLY=dashboard,rules LANGS=en THEMES=dark DEVICES=mobile begrenzt den Lauf.
Pro Lauf entstehen 19 Ansichten × 2 Sprachen × 2 Farbschemata × Desktop/Mobil.
Playwright (Chromium) wird wie bei den anderen scripts/*.mjs über
PLAYWRIGHT_MODULE gefunden; WebP wird mit Chromium selbst kodiert (keine
Bildbibliothek nötig).
Lokal ansehen
cd website && python3 -m http.server 8080 # http://localhost:8080
Die Seiten verwenden absolute Pfade (/assets/…), sie müssen also an der
Wurzel einer Domain liegen — file:// funktioniert nicht.
Ausliefern (Cloudflare Pages)
Ein einziges Pages-Projekt bedient beide Hostnamen; das website/-Verzeichnis
ist das fertige Ausgabeverzeichnis (kein Build-Befehl):
opnexus.dev→ Seiten undassets/updates.opnexus.dev→ dieselben Dateien, abgerufen wird nur/latest.json
Erstmalig im Cloudflare-Dashboard: Workers & Pages → Create → Pages → Upload
assets, Projektname opnexus, den Ordner website/ hochladen. Danach unter
Custom domains opnexus.dev und updates.opnexus.dev hinzufügen (die DNS-
Einträge legt Cloudflare selbst an). Spätere Aktualisierungen per CLI (prüft vorher mit check_website.sh, lässt diese README weg):
export CLOUDFLARE_API_TOKEN=… CLOUDFLARE_ACCOUNT_ID=… # Token: "Cloudflare Pages: Edit"
scripts/deploy_website.sh
Der Feed wird nur abgerufen, wenn eine Installation UPDATE_CHECK_URL gesetzt
hat (Standard: aus). Offizielle URL: https://updates.opnexus.dev/latest.json.
Header liegen in _headers (CSP, HSTS, Cache-Zeiten); die Seiten kommen ohne
Inline-Skripte/-Styles aus.
Neue Version ankündigen
Erst nach dem Veröffentlichen des Release (Tag gepusht, Images verfügbar):
scripts/make_update_feed.sh v1.14.0 # prüft Version/CHANGELOG, schreibt latest.json
Danach website/ neu ausliefern. Vorabversionen werden vom Skript abgelehnt
(die App schlägt sie ohnehin nie vor).