diff --git a/site/src/components/AppWindowMockup.astro b/site/src/components/AppWindowMockup.astro index 00826f7..79bf471 100644 --- a/site/src/components/AppWindowMockup.astro +++ b/site/src/components/AppWindowMockup.astro @@ -1,4 +1,5 @@ --- +import DotMatrixText from './DotMatrixText.astro' const navItems = [ { label: 'Dashboard', icon: 'grid', active: true }, { label: 'Nodes', icon: 'server', active: false }, @@ -60,7 +61,7 @@ const tasks = [ { chip: { label: 'RUNNING', cls: 'border-warning/30 bg-warning/10 text-warning' }, text: 'start VM 100', node: 'pve1', time: '12s ago' }, { chip: { label: 'OK', cls: 'border-success/25 bg-success/10 text-success' }, text: 'backup VM 101 → local-lvm', node: 'pve2', time: '3m ago' }, { chip: { label: 'OK', cls: 'border-success/25 bg-success/10 text-success' }, text: 'migrate VM 102', node: 'pve1 → pve3', time: '18m ago' }, - { chip: { label: 'DONE', cls: 'border-white/[0.06] bg-muted text-muted-foreground' }, text: 'update apt', node: 'pve3', time: '1h ago' }, + { chip: { label: 'DONE', cls: 'border-dotted border-white/10 bg-muted text-muted-foreground' }, text: 'update apt', node: 'pve3', time: '1h ago' }, ] const gauges = [ { label: 'CPU', icon: 'cpu', percent: '30', width: '30', detail: '7.3 / 24 cores' }, @@ -97,14 +98,14 @@ const quickActions = [ -
-
+
+
-

Clustri — Ops Console

+
@@ -114,14 +115,13 @@ const quickActions = [
-
-
+
-
@@ -171,7 +171,7 @@ const quickActions = [
-

Overview

+
home-lab · 192.168.1.10:8006 3 nodes · 2 online @@ -181,7 +181,7 @@ const quickActions = [
{nodeCards.map((node) => ( -
+
@@ -216,8 +216,8 @@ const quickActions = [
-
-
+
+

Task activity

@@ -237,7 +237,7 @@ const quickActions = [
{gauges.map((gauge) => ( -
+
{gauge.label} @@ -256,7 +256,7 @@ const quickActions = [
{quickActions.map((action) => ( - ))} diff --git a/site/src/components/ArchitectureStrip.astro b/site/src/components/ArchitectureStrip.astro index 2f09eb9..a7b8715 100644 --- a/site/src/components/ArchitectureStrip.astro +++ b/site/src/components/ArchitectureStrip.astro @@ -1,45 +1,48 @@ -
+--- +import DotMatrixText from './DotMatrixText.astro' +--- +
-

Architecture

+

One proxy between you and the API.

The frontend calls Rust commands over Tauri IPC. The backend proxies them to the Proxmox API over HTTPS.

-
-

React frontend

01
+
+

React frontend

TanStack Query · Zustand

Geist · JetBrains Mono

React 19

-
-

Rust backend

02
+
+

Rust backend

ConnectionManager

endpoint rotation · retry

TOFU cert pinning

OS keyring

-
-

Proxmox API

03
+
+

Proxmox API

/api2/json

nodes · cluster · vms

self-signed TLS

-
-
POST /nodes/pve/qemu/100/status/start
+
+
POST /nodes/pve/qemu/100/status/start

https://192.168.1.10:8006/api2/json/nodes/pve/qemu/100/status/start

- PVEAPIToken - PVEAuthCookie + CSRFPreventionToken + PVEAPIToken + PVEAuthCookie + CSRFPreventionToken
-

Failover model

+

Ordered, deduped endpoints: primary → fallbacks → discovered nodes. Connect / timeout / DNS / transport failure → retry next endpoint.

connected diff --git a/site/src/components/CommandPalette.astro b/site/src/components/CommandPalette.astro index 68cc5e1..7aa1d0e 100644 --- a/site/src/components/CommandPalette.astro +++ b/site/src/components/CommandPalette.astro @@ -1,11 +1,16 @@ +--- +import DotMatrixText from './DotMatrixText.astro' +---