Fixed memory, and updated color scheme

This commit is contained in:
2025-12-27 22:20:51 +01:00
parent bd37c8dc44
commit 97d374920b
3 changed files with 166 additions and 96 deletions
+3 -1
View File
@@ -26,6 +26,8 @@ export async function GET(req: NextRequest): Promise<NextResponse> {
const root = disks.find((d) => d.mount === "/" || d.fs.includes("disk3")); const root = disks.find((d) => d.mount === "/" || d.fs.includes("disk3"));
console.log(mem.available, mem.total);
return NextResponse.json({ return NextResponse.json({
message: "ok", message: "ok",
liveData: { liveData: {
@@ -39,7 +41,7 @@ export async function GET(req: NextRequest): Promise<NextResponse> {
total: mem.total, total: mem.total,
used: mem.used, used: mem.used,
free: mem.free, free: mem.free,
usage: ((mem.total - mem.free) / mem.total) * 100, usage: ((mem.total - mem.available) / mem.total) * 100,
}, },
disk: { disk: {
used: (root?.size || 0) - (root?.available || 0), used: (root?.size || 0) - (root?.available || 0),
+154 -86
View File
@@ -45,96 +45,164 @@
} }
:root { :root {
--background: oklch(0.97 0.02 225.66); --background: oklch(0.9842 0.0010 264.5478);
--foreground: oklch(0.15 0.02 269.18); --foreground: oklch(0.2115 0.0072 264.4099);
--card: oklch(0.98 0.01 228.79); --card: oklch(1.0000 0 0);
--card-foreground: oklch(0.15 0.02 269.18); --card-foreground: oklch(0.2115 0.0072 264.4099);
--popover: oklch(0.98 0.01 238.45); --popover: oklch(1.0000 0 0);
--popover-foreground: oklch(0.15 0.02 269.18); --popover-foreground: oklch(0.2115 0.0072 264.4099);
--primary: oklch(0.71 0.15 239.15); --primary: oklch(0.5096 0.1483 253.4619);
--primary-foreground: oklch(0.94 0.03 232.39); --primary-foreground: oklch(1.0000 0 0);
--secondary: oklch(0.91 0.03 229.20); --secondary: oklch(0.9210 0.0088 247.9219);
--secondary-foreground: oklch(0.15 0.02 269.18); --secondary-foreground: oklch(0.4114 0.0323 248.6180);
--muted: oklch(0.89 0.02 225.69); --muted: oklch(0.9607 0.0044 247.8691);
--muted-foreground: oklch(0.36 0.03 231.55); --muted-foreground: oklch(0.5921 0.0247 248.2437);
--accent: oklch(0.88 0.02 235.72); --accent: oklch(0.9607 0.0044 247.8691);
--accent-foreground: oklch(0.34 0.05 229.20); --accent-foreground: oklch(0.4144 0.0162 248.2179);
--destructive: oklch(0.61 0.24 20.96); --destructive: oklch(0.5875 0.2303 28.2622);
--border: oklch(0.82 0.02 240.77); --destructive-foreground: oklch(1.0000 0 0);
--input: oklch(0.82 0.02 240.77); --border: oklch(0.9050 0.0107 247.9443);
--ring: oklch(0.55 0.10 235.72); --input: oklch(0.9210 0.0088 247.9219);
--chart-1: oklch(0.57 0.11 228.92); --ring: oklch(0.5096 0.1483 253.4619);
--chart-2: oklch(0.45 0.10 270.08); --chart-1: oklch(0.5096 0.1483 253.4619);
--chart-3: oklch(0.65 0.15 159.03); --chart-2: oklch(0.6610 0.1560 154.8128);
--chart-4: oklch(0.75 0.10 100.01); --chart-3: oklch(0.7139 0.1737 55.1486);
--chart-5: oklch(0.55 0.15 299.88); --chart-4: oklch(0.5103 0.2201 301.6038);
--sidebar: oklch(0.93 0.01 238.46); --chart-5: oklch(0.5875 0.2303 28.2622);
--sidebar-foreground: oklch(0.15 0.02 269.18); --sidebar: oklch(0.9605 0.0024 264.5432);
--sidebar-primary: oklch(0.57 0.11 228.92); --sidebar-foreground: oklch(0.2639 0.0102 264.3844);
--sidebar-primary-foreground: oklch(0.99 0.01 203.97); --sidebar-primary: oklch(0.5546 0.1629 253.5932);
--sidebar-accent: oklch(0.88 0.02 235.72); --sidebar-primary-foreground: oklch(1.0000 0 0);
--sidebar-accent-foreground: oklch(0.15 0.02 269.18); --sidebar-accent: oklch(0.9210 0.0088 247.9219);
--sidebar-border: oklch(0.82 0.02 240.77); --sidebar-accent-foreground: oklch(0.4144 0.0162 248.2179);
--sidebar-ring: oklch(0.57 0.11 228.92); --sidebar-border: oklch(0.8809 0.0134 247.9797);
--sidebar-ring: oklch(0.5096 0.1483 253.4619);
--font-sans: 'Source Code Pro', 'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; --font-sans: 'Inter', sans-serif;
--font-serif: 'Source Serif 4', 'Geist', 'Geist Fallback', ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif; --font-serif: 'Lora', serif;
--font-mono: 'Source Code Pro', 'Geist Mono', 'Geist Mono Fallback', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace; --font-mono: 'Fira Code', monospace;
--radius: 0.5rem;
--radius: 0rem; --shadow-x: 0rem;
--shadow-y: 0.25rem;
--shadow-2xs: 0px 1px 2.5px 0px oklch(0.49 0.09 235.00 / 0.03); --shadow-blur: 0.5rem;
--shadow-xs: 0px 1px 2.5px 0px oklch(0.49 0.09 235.00 / 0.03); --shadow-spread: 0rem;
--shadow-sm: 0px 1px 2.5px 0px oklch(0.49 0.09 235.00 / 0.06), 0px 1px 2px -1px oklch(0.49 0.09 235.00 / 0.06); --shadow-opacity: 0.1;
--shadow: 0px 1px 2.5px 0px oklch(0.49 0.09 235.00 / 0.06), 0px 1px 2px -1px oklch(0.49 0.09 235.00 / 0.06); --shadow-color: 0 0 0;
--shadow-md: 0px 1px 2.5px 0px oklch(0.49 0.09 235.00 / 0.06), 0px 2px 4px -1px oklch(0.49 0.09 235.00 / 0.06); --shadow-2xs: 0rem 0.25rem 0.5rem 0rem hsl(0 0 0 / 0.05);
--shadow-lg: 0px 1px 2.5px 0px oklch(0.49 0.09 235.00 / 0.06), 0px 4px 6px -1px oklch(0.49 0.09 235.00 / 0.06); --shadow-xs: 0rem 0.25rem 0.5rem 0rem hsl(0 0 0 / 0.05);
--shadow-xl: 0px 1px 2.5px 0px oklch(0.49 0.09 235.00 / 0.06), 0px 8px 10px -1px oklch(0.49 0.09 235.00 / 0.06); --shadow-sm: 0rem 0.25rem 0.5rem 0rem hsl(0 0 0 / 0.10), 0rem 1px 2px -1px hsl(0 0 0 / 0.10);
--shadow-2xl: 0px 1px 2.5px 0px oklch(0.49 0.09 235.00 / 0.15); --shadow: 0rem 0.25rem 0.5rem 0rem hsl(0 0 0 / 0.10), 0rem 1px 2px -1px hsl(0 0 0 / 0.10);
--shadow-md: 0rem 0.25rem 0.5rem 0rem hsl(0 0 0 / 0.10), 0rem 2px 4px -1px hsl(0 0 0 / 0.10);
--shadow-lg: 0rem 0.25rem 0.5rem 0rem hsl(0 0 0 / 0.10), 0rem 4px 6px -1px hsl(0 0 0 / 0.10);
--shadow-xl: 0rem 0.25rem 0.5rem 0rem hsl(0 0 0 / 0.10), 0rem 8px 10px -1px hsl(0 0 0 / 0.10);
--shadow-2xl: 0rem 0.25rem 0.5rem 0rem hsl(0 0 0 / 0.25);
--tracking-normal: 0em;
--spacing: 0.25rem;
} }
.dark { .dark {
--background: oklch(0.18 0.02 271.27); --background: oklch(0.1984 0.0154 256.8228);
--foreground: oklch(0.90 0.01 238.47); --foreground: oklch(0.8809 0.0134 247.9797);
--card: oklch(0.22 0.02 271.67); --card: oklch(0.2292 0.0222 256.8398);
--card-foreground: oklch(0.90 0.01 238.47); --card-foreground: oklch(0.8809 0.0134 247.9797);
--popover: oklch(0.22 0.02 271.67); --popover: oklch(0.2292 0.0222 256.8398);
--popover-foreground: oklch(0.90 0.01 238.47); --popover-foreground: oklch(0.8809 0.0134 247.9797);
--primary: oklch(52.5% 0.105 236); --primary: oklch(0.5096 0.1483 253.4619);
--primary-foreground: oklch(95.1% 0.00932 232.789); --primary-foreground: oklch(0.9843 0.0017 247.8393);
--secondary: oklch(0.28 0.03 270.91); --secondary: oklch(0.3095 0.0306 256.8416);
--secondary-foreground: oklch(0.90 0.01 238.47); --secondary-foreground: oklch(0.8809 0.0134 247.9797);
--muted: oklch(0.28 0.03 270.91); --muted: oklch(0.2605 0.0240 256.8358);
--muted-foreground: oklch(0.60 0.03 269.46); --muted-foreground: oklch(0.6780 0.0191 248.1098);
--accent: oklch(0.28 0.03 270.91); --accent: oklch(0.2605 0.0240 256.8358);
--accent-foreground: oklch(0.90 0.01 238.47); --accent-foreground: oklch(0.8809 0.0134 247.9797);
--destructive: oklch(0.64 0.25 19.69); --destructive: oklch(0.5875 0.2303 28.2622);
--border: oklch(0.90 0.01 238.47 / 15%); --destructive-foreground: oklch(0.9843 0.0017 247.8393);
--input: oklch(0.90 0.01 238.47 / 20%); --border: oklch(0.3567 0.0369 256.8455);
--ring: oklch(0.66 0.13 227.70); --input: oklch(0.3095 0.0306 256.8416);
--chart-1: oklch(0.66 0.13 227.70); --ring: oklch(0.5096 0.1483 253.4619);
--chart-2: oklch(0.60 0.10 269.83); --chart-1: oklch(0.5096 0.1483 253.4619);
--chart-3: oklch(0.70 0.15 159.83); --chart-2: oklch(0.6610 0.1560 154.8128);
--chart-4: oklch(0.80 0.10 100.65); --chart-3: oklch(0.7139 0.1737 55.1486);
--chart-5: oklch(0.60 0.15 300.14); --chart-4: oklch(0.5103 0.2201 301.6038);
--sidebar: oklch(0.22 0.02 271.67); --chart-5: oklch(0.5875 0.2303 28.2622);
--sidebar-foreground: oklch(0.90 0.01 238.47); --sidebar: oklch(0.2292 0.0222 256.8398);
--sidebar-primary: oklch(0.66 0.13 227.70); --sidebar-foreground: oklch(0.9210 0.0088 247.9219);
--sidebar-primary-foreground: oklch(0.18 0.02 271.27); --sidebar-primary: oklch(0.5096 0.1483 253.4619);
--sidebar-accent: oklch(0.28 0.03 270.91); --sidebar-primary-foreground: oklch(0.9843 0.0017 247.8393);
--sidebar-accent-foreground: oklch(0.90 0.01 238.47); --sidebar-accent: oklch(0.2605 0.0240 256.8358);
--sidebar-border: oklch(0.90 0.01 238.47 / 15%); --sidebar-accent-foreground: oklch(0.8809 0.0134 247.9797);
--sidebar-ring: oklch(0.66 0.13 227.70); --sidebar-border: oklch(0.3567 0.0369 256.8455);
--sidebar-ring: oklch(0.5096 0.1483 253.4619);
--font-sans: 'Roboto Mono', monospace;
--font-serif: 'Roboto Slab', serif;
--font-mono: 'Fira Code', monospace;
--radius: 0.25rem;
--shadow-x: 0rem;
--shadow-y: 0.5rem;
--shadow-blur: 0.75rem;
--shadow-spread: 0rem;
--shadow-opacity: 0.3;
--shadow-color: 0 0 0;
--shadow-2xs: 0rem 0.5rem 0.75rem 0rem hsl(0 0 0 / 0.15);
--shadow-xs: 0rem 0.5rem 0.75rem 0rem hsl(0 0 0 / 0.15);
--shadow-sm: 0rem 0.5rem 0.75rem 0rem hsl(0 0 0 / 0.30), 0rem 1px 2px -1px hsl(0 0 0 / 0.30);
--shadow: 0rem 0.5rem 0.75rem 0rem hsl(0 0 0 / 0.30), 0rem 1px 2px -1px hsl(0 0 0 / 0.30);
--shadow-md: 0rem 0.5rem 0.75rem 0rem hsl(0 0 0 / 0.30), 0rem 2px 4px -1px hsl(0 0 0 / 0.30);
--shadow-lg: 0rem 0.5rem 0.75rem 0rem hsl(0 0 0 / 0.30), 0rem 4px 6px -1px hsl(0 0 0 / 0.30);
--shadow-xl: 0rem 0.5rem 0.75rem 0rem hsl(0 0 0 / 0.30), 0rem 8px 10px -1px hsl(0 0 0 / 0.30);
--shadow-2xl: 0rem 0.5rem 0.75rem 0rem hsl(0 0 0 / 0.75);
}
--shadow-2xs: 0px 1px 2px 0px oklch(0 0 0 / 0.01); @theme inline {
--shadow-xs: 0px 1px 2px 0px oklch(0 0 0 / 0.01); --color-background: var(--background);
--shadow-sm: 0px 1px 2px 0px oklch(0 0 0 / 0.01), 0px 1px 2px -1px oklch(0 0 0 / 0.01); --color-foreground: var(--foreground);
--shadow: 0px 1px 2px 0px oklch(0 0 0 / 0.01), 0px 1px 2px -1px oklch(0 0 0 / 0.01); --color-card: var(--card);
--shadow-md: 0px 1px 2px 0px oklch(0 0 0 / 0.01), 0px 2px 4px -1px oklch(0 0 0 / 0.01); --color-card-foreground: var(--card-foreground);
--shadow-lg: 0px 1px 2px 0px oklch(0 0 0 / 0.01), 0px 4px 6px -1px oklch(0 0 0 / 0.01); --color-popover: var(--popover);
--shadow-xl: 0px 1px 2px 0px oklch(0 0 0 / 0.01), 0px 8px 10px -1px oklch(0 0 0 / 0.01); --color-popover-foreground: var(--popover-foreground);
--shadow-2xl: 0px 1px 2px 0px oklch(0 0 0 / 0.03); --color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);
--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);
--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);
--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);
--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);
--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);
--color-chart-1: var(--chart-1);
--color-chart-2: var(--chart-2);
--color-chart-3: var(--chart-3);
--color-chart-4: var(--chart-4);
--color-chart-5: var(--chart-5);
--color-sidebar: var(--sidebar);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-ring: var(--sidebar-ring);
--font-sans: var(--font-sans);
--font-mono: var(--font-mono);
--font-serif: var(--font-serif);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
--shadow-2xs: var(--shadow-2xs);
--shadow-xs: var(--shadow-xs);
--shadow-sm: var(--shadow-sm);
--shadow: var(--shadow);
--shadow-md: var(--shadow-md);
--shadow-lg: var(--shadow-lg);
--shadow-xl: var(--shadow-xl);
--shadow-2xl: var(--shadow-2xl);
} }
@theme inline { @theme inline {
+8 -8
View File
@@ -146,12 +146,12 @@ export default function MonitoringPage() {
> >
<stop <stop
offset="5%" offset="5%"
stopColor="oklch(0.66 0.13 227.70)" stopColor="var(--chart-1)"
stopOpacity={0.3} stopOpacity={0.3}
/> />
<stop <stop
offset="95%" offset="95%"
stopColor="oklch(0.66 0.13 227.70)" stopColor="var(--chart-1)"
stopOpacity={0} stopOpacity={0}
/> />
</linearGradient> </linearGradient>
@@ -179,7 +179,7 @@ export default function MonitoringPage() {
<Area <Area
type="monotone" type="monotone"
dataKey="value" dataKey="value"
stroke="oklch(0.66 0.13 227.70)" stroke="var(--chart-1)"
strokeWidth={2} strokeWidth={2}
fill="url(#cpuGradient)" fill="url(#cpuGradient)"
/> />
@@ -209,12 +209,12 @@ export default function MonitoringPage() {
> >
<stop <stop
offset="5%" offset="5%"
stopColor="oklch(0.70 0.15 159.83)" stopColor="var(--chart-3)"
stopOpacity={0.3} stopOpacity={0.3}
/> />
<stop <stop
offset="95%" offset="95%"
stopColor="oklch(0.70 0.15 159.83)" stopColor="var(--chart-3)"
stopOpacity={0} stopOpacity={0}
/> />
</linearGradient> </linearGradient>
@@ -242,7 +242,7 @@ export default function MonitoringPage() {
<Area <Area
type="monotone" type="monotone"
dataKey="value" dataKey="value"
stroke="oklch(0.70 0.15 159.83)" stroke="var(--chart-3)"
strokeWidth={2} strokeWidth={2}
fill="url(#memoryGradient)" fill="url(#memoryGradient)"
/> />
@@ -286,7 +286,7 @@ export default function MonitoringPage() {
<Line <Line
type="monotone" type="monotone"
dataKey="in" dataKey="in"
stroke="oklch(0.80 0.10 100.65)" stroke="var(--chart-2)"
strokeWidth={2} strokeWidth={2}
dot={false} dot={false}
name="Inbound" name="Inbound"
@@ -294,7 +294,7 @@ export default function MonitoringPage() {
<Line <Line
type="monotone" type="monotone"
dataKey="out" dataKey="out"
stroke="oklch(0.60 0.15 300.14)" stroke="var(--chart-4)"
strokeWidth={2} strokeWidth={2}
dot={false} dot={false}
name="Outbound" name="Outbound"