From 77d7dc1f2233442962f095ed59507489a0a33f32 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 27 Apr 2025 23:09:39 -0600 Subject: [PATCH] Enhance backup functionality by adding support for compose backups in various components. Update ShowBackups to clarify backup update requirements, modify initCronJobs to include compose backups, and improve logging for backup scheduling. Additionally, ensure that the scheduleBackup function retains the latest backups for compose types and document the addition of domains and backups in the Docker compose process. --- .../components/dashboard/database/backups/show-backups.tsx | 2 +- packages/server/src/utils/backups/index.ts | 7 ++++--- packages/server/src/utils/backups/utils.ts | 1 + packages/server/src/utils/docker/domain.ts | 2 ++ 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/dokploy/components/dashboard/database/backups/show-backups.tsx b/apps/dokploy/components/dashboard/database/backups/show-backups.tsx index e6de42e5..e219c3e3 100644 --- a/apps/dokploy/components/dashboard/database/backups/show-backups.tsx +++ b/apps/dokploy/components/dashboard/database/backups/show-backups.tsx @@ -161,7 +161,7 @@ export const ShowBackups = ({ {backupType === "compose" && ( Deploy is required to apply changes after creating or - updating a backup. + updating the service name in the backup. )} diff --git a/packages/server/src/utils/backups/index.ts b/packages/server/src/utils/backups/index.ts index 6c940406..38a0b446 100644 --- a/packages/server/src/utils/backups/index.ts +++ b/packages/server/src/utils/backups/index.ts @@ -70,6 +70,7 @@ export const initCronJobs = async () => { mysql: true, mongo: true, user: true, + compose: true, }, }); @@ -77,10 +78,10 @@ export const initCronJobs = async () => { try { if (backup.enabled) { scheduleBackup(backup); + console.log( + `[Backup] ${backup.databaseType} Enabled with cron: [${backup.schedule}]`, + ); } - console.log( - `[Backup] ${backup.databaseType} Enabled with cron: [${backup.schedule}]`, - ); } catch (error) { console.error(`[Backup] ${backup.databaseType} Error`, error); } diff --git a/packages/server/src/utils/backups/utils.ts b/packages/server/src/utils/backups/utils.ts index 00d1aa0e..c91a7ac7 100644 --- a/packages/server/src/utils/backups/utils.ts +++ b/packages/server/src/utils/backups/utils.ts @@ -40,6 +40,7 @@ export const scheduleBackup = (backup: BackupSchedule) => { } } else if (backup.backupType === "compose" && compose) { await runComposeBackup(compose, backup); + await keepLatestNBackups(backup, compose.serverId); } }); }; diff --git a/packages/server/src/utils/docker/domain.ts b/packages/server/src/utils/docker/domain.ts index fac4d02a..8d314364 100644 --- a/packages/server/src/utils/docker/domain.ts +++ b/packages/server/src/utils/docker/domain.ts @@ -210,6 +210,7 @@ export const addDomainToCompose = async ( result = randomized; } + // Add domains to the compose for (const domain of domains) { const { serviceName, https } = domain; if (!serviceName) { @@ -264,6 +265,7 @@ export const addDomainToCompose = async ( } } + // Add backups to the compose for (const backup of backups) { const { backupId, serviceName, enabled } = backup;