@@ -4,11 +4,11 @@ import {
44 createDefaultServerTraefikConfig ,
55 createDefaultTraefikConfig ,
66 IS_CLOUD ,
7+ initCancelDeployments ,
78 initCronJobs ,
89 initializeNetwork ,
910 initSchedules ,
1011 initVolumeBackupsCronJobs ,
11- initCancelDeployments ,
1212 sendDokployRestartNotifications ,
1313 setupDirectories ,
1414} from "@dokploy/server" ;
@@ -26,6 +26,16 @@ config({ path: ".env" });
2626const PORT = Number . parseInt ( process . env . PORT || "3000" , 10 ) ;
2727const HOST = process . env . HOST || "0.0.0.0" ;
2828const dev = process . env . NODE_ENV !== "production" ;
29+
30+ // Initialize critical directories and Traefik config BEFORE Next.js starts
31+ // This prevents race conditions with the install script
32+ if ( process . env . NODE_ENV === "production" && ! IS_CLOUD ) {
33+ setupDirectories ( ) ;
34+ createDefaultTraefikConfig ( ) ;
35+ createDefaultServerTraefikConfig ( ) ;
36+ console . log ( "✅ Critical initialization complete" ) ;
37+ }
38+
2939const app = next ( { dev, turbopack : process . env . TURBOPACK === "1" } ) ;
3040const handle = app . getRequestHandler ( ) ;
3141void app . prepare ( ) . then ( async ( ) => {
@@ -45,11 +55,8 @@ void app.prepare().then(async () => {
4555 }
4656
4757 if ( process . env . NODE_ENV === "production" && ! IS_CLOUD ) {
48- setupDirectories ( ) ;
4958 createDefaultMiddlewares ( ) ;
5059 await initializeNetwork ( ) ;
51- createDefaultTraefikConfig ( ) ;
52- createDefaultServerTraefikConfig ( ) ;
5360 await migration ( ) ;
5461 await initCronJobs ( ) ;
5562 await initSchedules ( ) ;
0 commit comments