feat: add swarm router and related Docker service functions

This commit is contained in:
djknaeckebrot
2024-12-17 12:04:49 +01:00
parent 829aa2a63c
commit b592a025e4
3 changed files with 137 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ import { mysqlRouter } from "./routers/mysql";
import { notificationRouter } from "./routers/notification";
import { portRouter } from "./routers/port";
import { postgresRouter } from "./routers/postgres";
import { previewDeploymentRouter } from "./routers/preview-deployment";
import { projectRouter } from "./routers/project";
import { redirectsRouter } from "./routers/redirects";
import { redisRouter } from "./routers/redis";
@@ -30,8 +31,8 @@ import { serverRouter } from "./routers/server";
import { settingsRouter } from "./routers/settings";
import { sshRouter } from "./routers/ssh-key";
import { stripeRouter } from "./routers/stripe";
import { swarmRouter } from "./routers/swarm";
import { userRouter } from "./routers/user";
import { previewDeploymentRouter } from "./routers/preview-deployment";
/**
* This is the primary router for your server.
@@ -73,6 +74,7 @@ export const appRouter = createTRPCRouter({
github: githubRouter,
server: serverRouter,
stripe: stripeRouter,
swarm: swarmRouter,
});
// export type definition of API

View File

@@ -0,0 +1,31 @@
import {
getApplicationInfo,
getNodeApplications,
getNodeInfo,
getSwarmNodes,
} from "@dokploy/server";
import { z } from "zod";
import { createTRPCRouter, protectedProcedure } from "../trpc";
export const swarmRouter = createTRPCRouter({
getNodes: protectedProcedure.query(async () => {
return await getSwarmNodes();
}),
getNodeInfo: protectedProcedure
.input(z.object({ nodeId: z.string() }))
.query(async ({ input }) => {
return await getNodeInfo(input.nodeId);
}),
getNodeApps: protectedProcedure.query(async () => {
return getNodeApplications();
}),
getAppInfos: protectedProcedure
.input(
z.object({
appName: z.string(),
}),
)
.query(async ({ input }) => {
return await getApplicationInfo(input.appName);
}),
});