diff --git a/src/paths.js b/src/paths.js index 63fee9867..427f6d344 100644 --- a/src/paths.js +++ b/src/paths.js @@ -22,6 +22,7 @@ exports = module.exports = { PROVIDER_FILE: '/etc/cloudron/PROVIDER', SETUP_TOKEN_FILE: '/etc/cloudron/SETUP_TOKEN', + DEFAULT_BACKUP_DIR: '/var/backups', VOLUMES_MOUNT_DIR: '/mnt/volumes', MANAGED_BACKUP_MOUNT_DIR: '/mnt/cloudronbackup', diff --git a/src/settings.js b/src/settings.js index 7123c7710..272cbd50e 100644 --- a/src/settings.js +++ b/src/settings.js @@ -192,7 +192,7 @@ const gDefaults = (function () { result[exports.APPSTORE_WEB_TOKEN_KEY] = ''; result[exports.BACKUP_CONFIG_KEY] = { provider: 'filesystem', - backupFolder: '/var/backups', + backupFolder: paths.DEFAULT_BACKUP_DIR, format: 'tgz', encryption: null, }; diff --git a/src/system.js b/src/system.js index cf666fb3a..0558c4e53 100644 --- a/src/system.js +++ b/src/system.js @@ -115,6 +115,13 @@ async function getDisks() { if (disks[filesystem]) disks[filesystem].contents.push({ type: 'standard', id: 'cloudron-backup', path: backupConfig.backupFolder }); } + // often the default backup dir is not cleaned up + if (backupConfig.provider !== 'filesystem' || backupConfig.backupFolder !== paths.DEFAULT_BACKUP_DIR) { + const [, dfResult] = await safe(df.file(paths.DEFAULT_BACKUP_DIR)); + const filesystem = dfResult?.filesystem || rootDisk.filesystem; + if (disks[filesystem]) disks[filesystem].contents.push({ type: 'standard', id: 'cloudron-backup-default', path: paths.DEFAULT_BACKUP_DIR }); + } + const [dockerError, dockerInfo] = await safe(docker.info()); if (!dockerError) { const [, dfResult] = await safe(df.file(dockerInfo.DockerRootDir)); @@ -233,7 +240,6 @@ async function updateDiskUsage(progressCallback) { const [error, usage] = await safe(du(content.path)); if (error) progressCallback({ message: `du error: ${error.message}`}); // can happen if app is installing etc content.usage = usage || 0; - } progressCallback({ message: `du of ${JSON.stringify(content)}: ${content.usage}`}); }