Files
dokploy/apps/dokploy/server/api/routers/admin.ts
Mauricio Siu 3052979bdd refactor(web-server): update components to utilize web server data
- Replaced user IP references with web server data across various components, including domain management and database credential displays.
- Adjusted API calls to fetch web server information instead of user data, enhancing data consistency and clarity.
- Refactored related functions to streamline the handling of server configurations and improve overall code maintainability.
2025-07-12 23:16:06 -06:00

63 lines
1.8 KiB
TypeScript

import { apiUpdateWebServerMonitoring } from "@/server/db/schema";
import {
IS_CLOUD,
findUserById,
setupWebMonitoring,
updateWebServer,
} from "@dokploy/server";
import { TRPCError } from "@trpc/server";
import { adminProcedure, createTRPCRouter } from "../trpc";
export const adminRouter = createTRPCRouter({
setupMonitoring: adminProcedure
.input(apiUpdateWebServerMonitoring)
.mutation(async ({ input, ctx }) => {
try {
if (IS_CLOUD) {
throw new TRPCError({
code: "UNAUTHORIZED",
message: "Feature disabled on cloud",
});
}
const user = await findUserById(ctx.user.ownerId);
if (user.id !== ctx.user.ownerId) {
throw new TRPCError({
code: "UNAUTHORIZED",
message: "You are not authorized to setup the monitoring",
});
}
await updateWebServer({
// @ts-expect-error - TODO: fix this
metricsConfig: {
server: {
type: "Dokploy",
refreshRate: input.metricsConfig.server.refreshRate,
port: input.metricsConfig.server.port,
token: input.metricsConfig.server.token,
cronJob: input.metricsConfig.server.cronJob,
urlCallback: input.metricsConfig.server.urlCallback,
retentionDays: input.metricsConfig.server.retentionDays,
thresholds: {
cpu: input.metricsConfig.server.thresholds.cpu,
memory: input.metricsConfig.server.thresholds.memory,
},
},
containers: {
refreshRate: input.metricsConfig.containers.refreshRate,
services: {
include: input.metricsConfig.containers.services.include || [],
exclude: input.metricsConfig.containers.services.exclude || [],
},
},
},
});
const currentServer = await setupWebMonitoring();
return currentServer;
} catch (error) {
throw error;
}
}),
});