diff --git a/site/package-lock.json b/site/package-lock.json index fb33dab..32bbbbe 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -9,7 +9,8 @@ "version": "0.1.0", "dependencies": { "@fontsource-variable/geist": "^5.3.0", - "@fontsource-variable/jetbrains-mono": "^5.3.0" + "@fontsource-variable/jetbrains-mono": "^5.3.0", + "gsap": "^3.15.0" }, "devDependencies": { "@tailwindcss/vite": "^4.3.3", @@ -4187,6 +4188,12 @@ "dev": true, "license": "ISC" }, + "node_modules/gsap": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/gsap/-/gsap-3.15.0.tgz", + "integrity": "sha512-dMW4CWBTUK1AEEDeZc1g4xpPGIrSf9fJF960qbTZmN/QwZIWY5wgliS6JWl9/25fpTGJrMRtSjGtOmPnfjZB+A==", + "license": "Standard 'no charge' license: https://gsap.com/standard-license." + }, "node_modules/h3": { "version": "1.15.11", "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.11.tgz", diff --git a/site/package.json b/site/package.json index 941f326..36410e3 100644 --- a/site/package.json +++ b/site/package.json @@ -10,7 +10,8 @@ }, "dependencies": { "@fontsource-variable/geist": "^5.3.0", - "@fontsource-variable/jetbrains-mono": "^5.3.0" + "@fontsource-variable/jetbrains-mono": "^5.3.0", + "gsap": "^3.15.0" }, "devDependencies": { "@tailwindcss/vite": "^4.3.3", diff --git a/site/public/screenshots/backups.png b/site/public/screenshots/backups.png new file mode 100644 index 0000000..8f2d785 Binary files /dev/null and b/site/public/screenshots/backups.png differ diff --git a/site/public/screenshots/console.png b/site/public/screenshots/console.png new file mode 100644 index 0000000..edfc51d Binary files /dev/null and b/site/public/screenshots/console.png differ diff --git a/site/public/screenshots/vms.png b/site/public/screenshots/vms.png new file mode 100644 index 0000000..1e3d2df Binary files /dev/null and b/site/public/screenshots/vms.png differ diff --git a/site/src/components/AppWindowMockup.astro b/site/src/components/AppWindowMockup.astro index 973f86e..00826f7 100644 --- a/site/src/components/AppWindowMockup.astro +++ b/site/src/components/AppWindowMockup.astro @@ -1,5 +1,4 @@ --- -// Static data for the mockup — compiled away at build time, zero runtime JS. const navItems = [ { label: 'Dashboard', icon: 'grid', active: true }, { label: 'Nodes', icon: 'server', active: false }, @@ -9,13 +8,11 @@ const navItems = [ { label: 'Tasks', icon: 'todo', active: false }, { label: 'Backups', icon: 'shield', active: false }, ] - const clusterNodes = [ { name: 'pve1', dot: 'bg-success shadow-[0_0_6px] shadow-success/60', chip: 'primary' }, { name: 'pve2', dot: 'bg-warning', chip: null }, { name: 'pve3', dot: 'bg-success', chip: null }, ] - const nodeCards = [ { name: 'pve1', @@ -24,9 +21,9 @@ const nodeCards = [ statusLabel: null, fill: 'bg-primary', rows: [ - { label: 'CPU', value: '42% · 3.4/8 c', width: '42%' }, - { label: 'RAM', value: '10.2/32 GiB', width: '32%' }, - { label: 'Disk', value: '187/500 GB', width: '37%' }, + { label: 'CPU', value: '42% · 3.4/8 c', width: '42', liveKey: 'cpu' }, + { label: 'RAM', value: '10.2/32 GiB', width: '32', liveKey: 'ram' }, + { label: 'Disk', value: '187/500 GB', width: '37', liveKey: null }, ], footer: ['up 42d 11h', '4 VMs'], }, @@ -38,9 +35,9 @@ const nodeCards = [ statusCls: 'text-warning', fill: 'bg-warning', rows: [ - { label: 'CPU', value: '31% · 2.5/8 c', width: '31%' }, - { label: 'RAM', value: '7.1/32 GiB', width: '22%' }, - { label: 'Disk', value: '163/500 GB', width: '33%' }, + { label: 'CPU', value: '31% · 2.5/8 c', width: '31', liveKey: 'cpu' }, + { label: 'RAM', value: '7.1/32 GiB', width: '22', liveKey: 'ram' }, + { label: 'Disk', value: '163/500 GB', width: '33', liveKey: null }, ], footer: ['up 9d 4h', '2 VMs'], }, @@ -52,46 +49,23 @@ const nodeCards = [ statusCls: 'text-success', fill: 'bg-primary', rows: [ - { label: 'CPU', value: '18% · 1.4/8 c', width: '18%' }, - { label: 'RAM', value: '5.8/16 GiB', width: '36%' }, - { label: 'Disk', value: '121/240 GB', width: '50%' }, + { label: 'CPU', value: '18% · 1.4/8 c', width: '18', liveKey: 'cpu' }, + { label: 'RAM', value: '5.8/16 GiB', width: '36', liveKey: 'ram' }, + { label: 'Disk', value: '121/240 GB', width: '50', liveKey: null }, ], footer: ['up 117d 2h', '3 VMs'], }, ] - const tasks = [ - { - chip: { label: 'RUNNING', cls: 'border-warning/25 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-border bg-muted text-muted-foreground' }, - text: 'update apt', - node: 'pve3', - time: '1h ago', - }, + { 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' }, ] - const gauges = [ - { label: 'CPU', icon: 'cpu', percent: '30%', width: '30%', detail: '7.3 / 24 cores' }, - { label: 'RAM', icon: 'mem', percent: '24%', width: '24%', detail: '23.1 / 96 GiB' }, + { label: 'CPU', icon: 'cpu', percent: '30', width: '30', detail: '7.3 / 24 cores' }, + { label: 'RAM', icon: 'mem', percent: '24', width: '24', detail: '23.1 / 96 GiB' }, ] - const quickActions = [ { label: 'Start', icon: 'play' }, { label: 'Stop', icon: 'stop' }, @@ -100,187 +74,71 @@ const quickActions = [ ] --- -
- Clustri — Ops Console -
+Clustri — Ops Console
Operating on a fallback node
-- https://192.168.1.12:8006 -
+https://192.168.1.12:8006