Merge pull request #3177 from Dokploy/3094-traefik-not-running-after-fresh-install---read-etctraefiktraefikyml-is-a-directory

fix(server): refactor initialization sequence to prevent race conditi…
This commit is contained in:
Mauricio Siu
2025-12-06 17:24:15 -06:00
committed by GitHub
+11 -4
View File
@@ -4,11 +4,11 @@ import {
createDefaultServerTraefikConfig, createDefaultServerTraefikConfig,
createDefaultTraefikConfig, createDefaultTraefikConfig,
IS_CLOUD, IS_CLOUD,
initCancelDeployments,
initCronJobs, initCronJobs,
initializeNetwork, initializeNetwork,
initSchedules, initSchedules,
initVolumeBackupsCronJobs, initVolumeBackupsCronJobs,
initCancelDeployments,
sendDokployRestartNotifications, sendDokployRestartNotifications,
setupDirectories, setupDirectories,
} from "@dokploy/server"; } from "@dokploy/server";
@@ -26,6 +26,16 @@ config({ path: ".env" });
const PORT = Number.parseInt(process.env.PORT || "3000", 10); const PORT = Number.parseInt(process.env.PORT || "3000", 10);
const HOST = process.env.HOST || "0.0.0.0"; const HOST = process.env.HOST || "0.0.0.0";
const dev = process.env.NODE_ENV !== "production"; 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 app = next({ dev, turbopack: process.env.TURBOPACK === "1" });
const handle = app.getRequestHandler(); const handle = app.getRequestHandler();
void app.prepare().then(async () => { void app.prepare().then(async () => {
@@ -45,11 +55,8 @@ void app.prepare().then(async () => {
} }
if (process.env.NODE_ENV === "production" && !IS_CLOUD) { if (process.env.NODE_ENV === "production" && !IS_CLOUD) {
setupDirectories();
createDefaultMiddlewares(); createDefaultMiddlewares();
await initializeNetwork(); await initializeNetwork();
createDefaultTraefikConfig();
createDefaultServerTraefikConfig();
await migration(); await migration();
await initCronJobs(); await initCronJobs();
await initSchedules(); await initSchedules();