From 1362fdd4b48726af8d7a0d8693efd3af228d99b1 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Sat, 6 Dec 2025 16:41:31 -0600 Subject: [PATCH] fix(server): refactor initialization sequence to prevent race conditions in production environment --- apps/dokploy/server/server.ts | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/dokploy/server/server.ts b/apps/dokploy/server/server.ts index eaf562695..e594538c6 100644 --- a/apps/dokploy/server/server.ts +++ b/apps/dokploy/server/server.ts @@ -4,11 +4,11 @@ import { createDefaultServerTraefikConfig, createDefaultTraefikConfig, IS_CLOUD, + initCancelDeployments, initCronJobs, initializeNetwork, initSchedules, initVolumeBackupsCronJobs, - initCancelDeployments, sendDokployRestartNotifications, setupDirectories, } from "@dokploy/server"; @@ -26,6 +26,16 @@ config({ path: ".env" }); const PORT = Number.parseInt(process.env.PORT || "3000", 10); const HOST = process.env.HOST || "0.0.0.0"; const dev = process.env.NODE_ENV !== "production"; + +// Initialize critical directories and Traefik config BEFORE Next.js starts +// This prevents race conditions with the install script +if (process.env.NODE_ENV === "production" && !IS_CLOUD) { + setupDirectories(); + createDefaultTraefikConfig(); + createDefaultServerTraefikConfig(); + console.log("✅ Critical initialization complete"); +} + const app = next({ dev, turbopack: process.env.TURBOPACK === "1" }); const handle = app.getRequestHandler(); void app.prepare().then(async () => { @@ -45,11 +55,8 @@ void app.prepare().then(async () => { } if (process.env.NODE_ENV === "production" && !IS_CLOUD) { - setupDirectories(); createDefaultMiddlewares(); await initializeNetwork(); - createDefaultTraefikConfig(); - createDefaultServerTraefikConfig(); await migration(); await initCronJobs(); await initSchedules();