Frontend
Der Vault wird über eine eigene Quartz-4-Instanz als statische Website verfuegbar. Primaere Nutzung: Smartphone/Tablet am Boot.
Wo liegt das Frontend?
/var/www/quartz-mercruiser/ ← isolierte Quartz-Instanz
├── content/ → Symlink auf /var/www/mercruiser-3.0-lx
├── quartz.config.ts ← Site-Identitaet, Farben, Plugins
├── quartz.layout.ts ← Explorer, Graph, Sidebars
├── package.json ← npm-Scripts (Ports)
├── public/ ← Build-Output (statisch)
└── README.md ← Frontend-Doku
Parallel und unabhaengig von /var/www/vault/ (anderes Projekt,
Port 4444 — nicht anfassen).
Wie starten?
cd /var/www/quartz-mercruiser
npm run devDann oeffnen: http://localhost:4445.
Ports:
- 4445 — HTTP-Server
- 4446 — WebSocket fuer Hot-Reload (Port 3001 ist anderweitig belegt)
Static Build fuer Deploy:
npm run build
# Output in /var/www/quartz-mercruiser/public/PWA-Installation (Phase 2)
Noch nicht fertig. Phase 2 ergaenzt:
- Service Worker fuer Offline-Cache
manifest.jsonfuer Installation auf Homescreen- Caching-Strategy fuer Markdown-Seiten und Bilder
Bis dahin laeuft die Site nur online.
Deploy (Phase noch offen)
Geplant: Nginx reverse-proxy auf den statischen Build, eigene
Domain (z. B. boat.<eigene-domain>.de). Konkretes Setup folgt mit
Phase 2/3.
Wie werden Inhalte gerendert?
- Quartz liest die Markdown-Dateien aus
content/(Symlink auf diesen Vault). - Frontmatter, Wikilinks, Tabellen, Code-Bloecke werden via Plugins
(
ObsidianFlavoredMarkdown,GitHubFlavoredMarkdown,Latex,SyntaxHighlighting,TableOfContents,CrawlLinks,Search,ContentIndex) verarbeitet. - Ergebnis: statisches HTML pro Datei, plus zentrale
contentIndex.jsonfuer die clientseitige Volltextsuche.
Eingeschlossene und ausgeschlossene Inhalte
ignorePatterns in quartz.config.ts schliesst aus:
private/,templates/,.obsidian/,.git/,logs/,scripts/01_manual/ocr_raw/und01_manual/diagramme/raw/(gross, nicht relevant fuer den Web-Bezug)- Personendaten-Dateien:
**/dokumente/zulassung*,**/dokumente/*personendaten*,**/dokumente/*nicht_anonymisiert*
Konvention im Vault: alle Dokumente vor Ablage anonymisieren (siehe README).
Suche
Clientseitig via FlexSearch. Verifiziert:
BIY698CKE696→ boot_stammdaten90-816462→ sm13_90-816462 und mehrereFrostriss→ 2026-05_belzona_frostriss
Offen: Bindestrich-Teilenummern wie 18-0682. Siehe
offene_fragen Abschnitt Frontend.
Troubleshooting
Symlink kaputt (content/ zeigt ins Leere):
cd /var/www/quartz-mercruiser
rm content && ln -s /var/www/mercruiser-3.0-lx contentPort 4445 belegt durch anderen Dienst:
ss -tlnp | grep :4445
# in package.json andere Ports setzenBuild-Fehler bad indentation of a mapping entry:
YAML-Frontmatter im Vault enthaelt unquotierte Sonderzeichen
(?, :). Im Markdown reparieren, neu bauen.
Dev-Server startet nicht (EADDRINUSE :::3001):
WebSocket-Port-Konflikt. In package.json ist --wsPort 4446
gesetzt; falls fehlt, ergaenzen.
Verwandte Inhalte
- WORKFLOW — Vault-Routinen
- projekt_vision — Rolle und Arbeitsteilung
- offene_fragen — Frontend-spezifische offene Punkte