From 398f5ca6620d2dbea36d516dfb75a778d9875826 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Sun, 28 Dec 2025 17:13:14 +0100 Subject: [PATCH] Improved core structure --- src/app/api/get-docker/route.ts | 2 +- src/app/monitoring/page.tsx | 5 ++--- src/app/nodes/page.tsx | 4 ++-- src/app/overview/page.tsx | 2 +- src/components/dialogs/AddNode.tsx | 2 +- src/core/client/docker.ts | 12 ------------ src/core/docker.ts | 15 ++++++++------- src/core/{client => }/metrics.ts | 0 src/core/{client => }/node.ts | 0 src/core/server/docker.ts | 11 +++++++++++ 10 files changed, 26 insertions(+), 27 deletions(-) delete mode 100644 src/core/client/docker.ts rename src/core/{client => }/metrics.ts (100%) rename src/core/{client => }/node.ts (100%) create mode 100644 src/core/server/docker.ts diff --git a/src/app/api/get-docker/route.ts b/src/app/api/get-docker/route.ts index c70f62c..4e847f0 100644 --- a/src/app/api/get-docker/route.ts +++ b/src/app/api/get-docker/route.ts @@ -1,7 +1,7 @@ import { NextRequest, NextResponse } from "next/server"; import testAuth from "../auth"; import { StatusCodes } from "http-status-codes"; -import { getDocker } from "@/core/docker"; +import { getDocker } from "@/core/server/docker"; import { Docker } from "@/lib/types"; export async function GET(req: NextRequest): Promise { diff --git a/src/app/monitoring/page.tsx b/src/app/monitoring/page.tsx index 933a291..2aa6d3e 100644 --- a/src/app/monitoring/page.tsx +++ b/src/app/monitoring/page.tsx @@ -5,12 +5,11 @@ import { Progress } from "@/components/ui/progress"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { type ChartConfig } from "@/components/ui/chart"; import GradientAreaChart from "@/components/GradientAreaChart"; -import { getMetrics } from "@/core/client/metrics"; +import { getMetrics } from "@/core/metrics"; import { useEffect, useState } from "react"; import { useIsMobile } from "@/hooks/use-mobile"; import RadialChart from "@/components/RadialChart"; -import { Node, NodeLiveData } from "@/lib/types"; -import { getLiveNodes } from "@/core/client/node"; +import { getLiveNodes } from "@/core/node"; import { average } from "@/lib/format"; const containerMetrics = [ diff --git a/src/app/nodes/page.tsx b/src/app/nodes/page.tsx index 25564c6..7516e5f 100644 --- a/src/app/nodes/page.tsx +++ b/src/app/nodes/page.tsx @@ -8,9 +8,9 @@ import { Server, Plus, Settings, Trash2 } from "lucide-react"; import { Progress } from "@/components/ui/progress"; import { Docker, Node, NodeLiveData } from "@/lib/types"; import { useEffect, useState } from "react"; -import { getDockerNode, getLiveNodes } from "@/core/client/node"; +import { getDockerNode, getLiveNodes } from "@/core/node"; import { formatBytes } from "@/lib/format"; -import { setNodes as updateNodes } from "@/core/client/node"; +import { setNodes as updateNodes } from "@/core/node"; import AddNode from "@/components/dialogs/AddNode"; function DiskUsage({ liveData }: NodeLiveData) { diff --git a/src/app/overview/page.tsx b/src/app/overview/page.tsx index 98f59bf..a1c4f16 100644 --- a/src/app/overview/page.tsx +++ b/src/app/overview/page.tsx @@ -16,7 +16,7 @@ import { } from "lucide-react"; import { Progress } from "@/components/ui/progress"; import Link from "next/link"; -import { getLiveNodes } from "@/core/client/node"; +import { getLiveNodes } from "@/core/node"; import { useEffect, useState } from "react"; import { Node, NodeLiveData } from "@/lib/types"; diff --git a/src/components/dialogs/AddNode.tsx b/src/components/dialogs/AddNode.tsx index 29b80d5..ace0d4a 100644 --- a/src/components/dialogs/AddNode.tsx +++ b/src/components/dialogs/AddNode.tsx @@ -18,7 +18,7 @@ import { authNode, getNodes, setNodes as updateNodes, -} from "@/core/client/node"; +} from "@/core/node"; export default function AddNode({ children }: { children: ReactNode }) { const [step, setStep] = useState<1 | 2>(1); diff --git a/src/core/client/docker.ts b/src/core/client/docker.ts deleted file mode 100644 index 60103c8..0000000 --- a/src/core/client/docker.ts +++ /dev/null @@ -1,12 +0,0 @@ -"use server"; - -import axios from "axios"; -import { Node } from "@/lib/types"; - -export async function getDocker(node: Node): Promise<{ version: string }> { - return await ( - await axios.get(`http://${node.ip}:3000/api/get-docker`, { - headers: { Authorization: `ApiKey ${node.key}` }, - }) - ).data; -} diff --git a/src/core/docker.ts b/src/core/docker.ts index fdb79a2..60103c8 100644 --- a/src/core/docker.ts +++ b/src/core/docker.ts @@ -1,11 +1,12 @@ "use server"; -import Docker from "dockerode"; +import axios from "axios"; +import { Node } from "@/lib/types"; -const docker = new Docker(); - -export async function getDocker() { - const version = await docker.version(); - const containers = await docker.listContainers(); - return { version, containers }; +export async function getDocker(node: Node): Promise<{ version: string }> { + return await ( + await axios.get(`http://${node.ip}:3000/api/get-docker`, { + headers: { Authorization: `ApiKey ${node.key}` }, + }) + ).data; } diff --git a/src/core/client/metrics.ts b/src/core/metrics.ts similarity index 100% rename from src/core/client/metrics.ts rename to src/core/metrics.ts diff --git a/src/core/client/node.ts b/src/core/node.ts similarity index 100% rename from src/core/client/node.ts rename to src/core/node.ts diff --git a/src/core/server/docker.ts b/src/core/server/docker.ts new file mode 100644 index 0000000..fdb79a2 --- /dev/null +++ b/src/core/server/docker.ts @@ -0,0 +1,11 @@ +"use server"; + +import Docker from "dockerode"; + +const docker = new Docker(); + +export async function getDocker() { + const version = await docker.version(); + const containers = await docker.listContainers(); + return { version, containers }; +}