diff --git a/apps/dokploy/server/api/routers/settings.ts b/apps/dokploy/server/api/routers/settings.ts index cbf6ba56c..274b9ca0f 100644 --- a/apps/dokploy/server/api/routers/settings.ts +++ b/apps/dokploy/server/api/routers/settings.ts @@ -1,4 +1,5 @@ import { + CLEANUP_CRON_JOB, canAccessToTraefikFiles, checkGPUStatus, checkPortInUse, @@ -298,12 +299,12 @@ export const settingsRouter = createTRPCRouter({ } if (IS_CLOUD) { await schedule({ - cronSchedule: "0 0 * * *", + cronSchedule: CLEANUP_CRON_JOB, serverId: input.serverId, type: "server", }); } else { - scheduleJob(server.serverId, "0 0 * * *", async () => { + scheduleJob(server.serverId, CLEANUP_CRON_JOB, async () => { console.log( `Docker Cleanup ${new Date().toLocaleString()}] Running...`, ); @@ -316,7 +317,7 @@ export const settingsRouter = createTRPCRouter({ } else { if (IS_CLOUD) { await removeJob({ - cronSchedule: "0 0 * * *", + cronSchedule: CLEANUP_CRON_JOB, serverId: input.serverId, type: "server", }); @@ -331,7 +332,7 @@ export const settingsRouter = createTRPCRouter({ }); if (settingsUpdated?.enableDockerCleanup) { - scheduleJob("docker-cleanup", "0 0 * * *", async () => { + scheduleJob("docker-cleanup", CLEANUP_CRON_JOB, async () => { console.log( `Docker Cleanup ${new Date().toLocaleString()}] Running...`, ); diff --git a/apps/schedules/src/utils.ts b/apps/schedules/src/utils.ts index 9642f0405..30d61d814 100644 --- a/apps/schedules/src/utils.ts +++ b/apps/schedules/src/utils.ts @@ -1,4 +1,5 @@ import { + CLEANUP_CRON_JOB, cleanupAll, findBackupById, findScheduleById, @@ -125,7 +126,7 @@ export const initializeJobs = async () => { scheduleJob({ serverId, type: "server", - cronSchedule: "0 0 * * *", + cronSchedule: CLEANUP_CRON_JOB, }); } diff --git a/packages/server/src/constants/index.ts b/packages/server/src/constants/index.ts index b62ed64d5..644dabd26 100644 --- a/packages/server/src/constants/index.ts +++ b/packages/server/src/constants/index.ts @@ -2,6 +2,7 @@ import path from "node:path"; import Docker from "dockerode"; export const IS_CLOUD = process.env.IS_CLOUD === "true"; +export const CLEANUP_CRON_JOB = "50 23 * * *"; export const docker = new Docker(); export const BETTER_AUTH_SECRET = @@ -29,5 +30,6 @@ export const paths = (isServer = false) => { REGISTRY_PATH: `${BASE_PATH}/registry`, SCHEDULES_PATH: `${BASE_PATH}/schedules`, VOLUME_BACKUPS_PATH: `${BASE_PATH}/volume-backups`, + VOLUME_BACKUP_LOCK_PATH: `${BASE_PATH}/volume-backup-lock`, }; }; diff --git a/packages/server/src/utils/backups/index.ts b/packages/server/src/utils/backups/index.ts index 14d38ddf0..8da8f116a 100644 --- a/packages/server/src/utils/backups/index.ts +++ b/packages/server/src/utils/backups/index.ts @@ -1,4 +1,5 @@ import path from "node:path"; +import { CLEANUP_CRON_JOB } from "@dokploy/server/constants"; import { member } from "@dokploy/server/db/schema"; import type { BackupSchedule } from "@dokploy/server/services/backup"; import { getAllServers } from "@dokploy/server/services/server"; @@ -29,7 +30,7 @@ export const initCronJobs = async () => { const webServerSettings = await getWebServerSettings(); if (webServerSettings?.enableDockerCleanup) { - scheduleJob("docker-cleanup", "0 0 * * *", async () => { + scheduleJob("docker-cleanup", CLEANUP_CRON_JOB, async () => { console.log( `Docker Cleanup ${new Date().toLocaleString()}] Running docker cleanup`, ); @@ -45,7 +46,7 @@ export const initCronJobs = async () => { for (const server of servers) { const { serverId, enableDockerCleanup, name } = server; if (enableDockerCleanup) { - scheduleJob(serverId, "0 0 * * *", async () => { + scheduleJob(serverId, CLEANUP_CRON_JOB, async () => { console.log( `SERVER-BACKUP[${new Date().toLocaleString()}] Running Cleanup ${name}`, );