diff --git a/apps/dokploy/server/api/routers/settings.ts b/apps/dokploy/server/api/routers/settings.ts index c9d21e515..04d5c1022 100644 --- a/apps/dokploy/server/api/routers/settings.ts +++ b/apps/dokploy/server/api/routers/settings.ts @@ -12,7 +12,6 @@ import { DEFAULT_UPDATE_DATA, execAsync, findServerById, - getDokployImage, getDokployImageTag, getLogCleanupStatus, getUpdateData, @@ -22,7 +21,6 @@ import { paths, prepareEnvironmentVariables, processLogs, - pullLatestRelease, readConfig, readConfigInPath, readDirectory, @@ -406,18 +404,17 @@ export const settingsRouter = createTRPCRouter({ return true; } - await pullLatestRelease(); - - // This causes restart of dokploy, thus it will not finish executing properly, so don't await it - // Status after restart is checked via frontend /api/health endpoint - void spawnAsync("docker", [ - "service", - "update", - "--force", - "--image", - getDokployImage(), - "dokploy", - ]); + const data = await getUpdateData(packageInfo.version); + if (data.updateAvailable) { + void spawnAsync("docker", [ + "service", + "update", + "--force", + "--image", + `dokploy/dokploy:${data.latestVersion}`, + "dokploy", + ]); + } return true; }), diff --git a/packages/server/src/services/settings.ts b/packages/server/src/services/settings.ts index 4235376d9..0ce252308 100644 --- a/packages/server/src/services/settings.ts +++ b/packages/server/src/services/settings.ts @@ -1,6 +1,5 @@ import { readdirSync } from "node:fs"; import { join } from "node:path"; -import { docker } from "@dokploy/server/constants"; import { execAsync, execAsyncRemote, @@ -26,19 +25,6 @@ export const getDokployImageTag = () => { return process.env.RELEASE_TAG || "latest"; }; -export const getDokployImage = () => { - return `dokploy/dokploy:${getDokployImageTag()}`; -}; - -export const pullLatestRelease = async () => { - const stream = await docker.pull(getDokployImage()); - await new Promise((resolve, reject) => { - docker.modem.followProgress(stream, (err, res) => - err ? reject(err) : resolve(res), - ); - }); -}; - /** Returns Dokploy docker service image digest */ export const getServiceImageDigest = async () => { const { stdout } = await execAsync(