From 9ecb770a01a24770cca1cc0323cc73cc66bca5df Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 21 Sep 2025 01:31:21 -0600 Subject: [PATCH 1/2] fix: enhance Traefik setup by adding directory checks and cleanup for existing config files --- packages/server/src/setup/traefik-setup.ts | 32 ++++++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/packages/server/src/setup/traefik-setup.ts b/packages/server/src/setup/traefik-setup.ts index 6b98457b9..c11e409c5 100644 --- a/packages/server/src/setup/traefik-setup.ts +++ b/packages/server/src/setup/traefik-setup.ts @@ -1,4 +1,11 @@ -import { chmodSync, existsSync, mkdirSync, writeFileSync } from "node:fs"; +import { + chmodSync, + existsSync, + mkdirSync, + rmSync, + statSync, + writeFileSync, +} from "node:fs"; import path from "node:path"; import type { ContainerCreateOptions, CreateServiceOptions } from "dockerode"; import { dump } from "js-yaml"; @@ -375,13 +382,26 @@ export const createDefaultTraefikConfig = () => { if (existsSync(acmeJsonPath)) { chmodSync(acmeJsonPath, "600"); } - if (existsSync(mainConfig)) { - console.log("Main config already exists"); - return; - } - const yamlStr = getDefaultTraefikConfig(); + + // Create the traefik directory first mkdirSync(MAIN_TRAEFIK_PATH, { recursive: true }); + + // Check if traefik.yml exists and handle the case where it might be a directory + if (existsSync(mainConfig)) { + const stats = statSync(mainConfig); + if (stats.isDirectory()) { + // If traefik.yml is a directory, remove it + console.log("Found traefik.yml as directory, removing it..."); + rmSync(mainConfig, { recursive: true, force: true }); + } else if (stats.isFile()) { + console.log("Main config already exists"); + return; + } + } + + const yamlStr = getDefaultTraefikConfig(); writeFileSync(mainConfig, yamlStr, "utf8"); + console.log("Traefik config created successfully"); }; export const getDefaultMiddlewares = () => { From 4ced8bec96d6b82847eaa26af284301f06493a4f Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 21 Sep 2025 01:35:46 -0600 Subject: [PATCH 2/2] feat: add completion message and exit process after Dokploy setup --- apps/dokploy/setup.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/apps/dokploy/setup.ts b/apps/dokploy/setup.ts index 13590e4e7..55e1da87c 100644 --- a/apps/dokploy/setup.ts +++ b/apps/dokploy/setup.ts @@ -1,3 +1,4 @@ +import { exit } from "node:process"; import { execAsync } from "@dokploy/server"; import { setupDirectories } from "@dokploy/server/setup/config-paths"; import { initializePostgres } from "@dokploy/server/setup/postgres-setup"; @@ -25,6 +26,8 @@ import { await initializeStandaloneTraefik(); await initializeRedis(); await initializePostgres(); + console.log("Dokploy setup completed"); + exit(0); } catch (e) { console.error("Error in dokploy setup", e); }