2 Frontend
Claude edited this page 2026-06-29 21:37:15 +00:00

Frontend

SvelteKit 5 mit Runes-Syntax. Kein Tailwind — CSS-Variablen (--bg, --text, --accent, …).

Runes-Konventionen

  • State: $state(), abgeleitet: $derived() / $derived.by(() => {})
  • Effekt: $effect()
  • Wichtig: .by(() => {}) statt (() => {}) bei $derived.by

Routing

Single-Page-Dashboard — keine separaten Modul-Seiten mehr.

Route Inhalt
(app)/+page.svelte Dashboard: Node-Liste, Inline-Graphen, KPIs, Bulk-Update, VM-Modal
(app)/+layout.svelte Sidebar-Shell, Mandanten-Switcher, Alerts
(app)/notizen/ Notizen (mustchange/Changelog)
(app)/profil/ Eigenes Konto
(app)/settings/ OIDC/SMTP/SSL/Mandanten/User/Host-Provisioning
login/, terminal/ Login bzw. Standalone-Terminal

Komponenten (src/lib/components/)

  • admin-node-tabs/ — Node-Panels: Updates, Backup, Ports, Network, Jobs, Security, Audit, Logs, Command, Scheduler
  • admin-vm-modal/tabs/ — VM-Modal-Tabs: Info, Monitoring, Updates, Backups, Snapshots, Storage, Network, Ports, Docker, Commands, Security, Jobs, Audit, Logs
  • ui/ — Bausteine (Btn, Label, StatTile, InteractiveChart, …)
  • Top-Level: ResourceTable, Terminal, TerminalWindow, KpiRow, HostIdentity, InlineHostGraphs, ClusterAlert, BulkRunModal, …

API & Stores

  • src/lib/api.tsalle Endpunkte hier registrieren. Gruppen z.B. nodesApi, vmsApi, dockerApi, tenantsApi, usersApi, updateApi, bulkRunApi, backupApi, scheduleApi, tunnelApi, settingsApi, …
  • src/lib/stores/auth.ts (isSuperadmin, currentTenant), nodes.ts
  • request() zieht X-Tenant-ID automatisch aus currentTenant-Store, wenn nicht explizit gesetzt. Superadmin „Alle" → kein Header → sieht alles.

Dev

cd frontend && npm run dev