Commit Graph

18518 Commits

Author SHA1 Message Date
Girish Ramakrishnan
c89030beee add encryptionPasswordHint to config 2025-08-05 12:39:48 +02:00
Johannes Zellner
4fa65099f9 Add multipleBackupTargets and encryptedBackups to features 2025-08-05 12:03:32 +02:00
Girish Ramakrishnan
2a90a0a278 backup target: add password hint and encryption route 2025-08-05 11:26:02 +02:00
Girish Ramakrishnan
36ab052dda restore: import with the latest backup on cloudron restore
in previous versions, the single backup target was replaced during
restore. we cannot do this anymore with multiple backup targets.

during cloudron restore, a pseudo target is created and all the apps
are restored using this backup target.
2025-08-04 23:24:06 +02:00
Girish Ramakrishnan
fddbe6a574 Fixup tests 2025-08-04 23:11:50 +02:00
Johannes Zellner
a887be432b Create correct mount objects for mountpoint validation 2025-08-04 15:25:27 +02:00
Johannes Zellner
cf86645bb5 Remove backup list from backup targets view 2025-08-04 15:17:46 +02:00
Johannes Zellner
705311f01f Fix typo 2025-08-04 15:17:27 +02:00
Johannes Zellner
81429bfa85 Adjust backup listing icon 2025-08-04 15:08:12 +02:00
Johannes Zellner
1016d41d7a Rename backup label to name and separate backup listing into new view 2025-08-04 15:00:24 +02:00
Johannes Zellner
0ff760fe4a Ensure we pass mount object also from volumes code 2025-08-04 14:40:35 +02:00
Johannes Zellner
f48b1d066e fix backup target edit form filling 2025-08-04 14:40:35 +02:00
Johannes Zellner
90c82ab1e7 make sure we only use mount objects with the mounts api 2025-08-04 14:40:35 +02:00
Girish Ramakrishnan
1a0d1f7d79 provision: add default backup target after setup 2025-08-04 14:33:12 +02:00
Girish Ramakrishnan
132132307f backuptarget: rename label to name 2025-08-04 14:28:37 +02:00
Johannes Zellner
2a6e6a671e Fix remount tooltip 2025-08-04 13:43:50 +02:00
Johannes Zellner
c073f2a15b Add backup target remount action 2025-08-04 13:35:30 +02:00
Johannes Zellner
cf1e1aac77 Fixup some refactoring issues in mounting ext4 2025-08-04 13:32:12 +02:00
Johannes Zellner
19893601f2 Show backup target status 2025-08-04 11:48:00 +02:00
Johannes Zellner
034d35b8a7 Add primary target tooltip 2025-08-04 11:10:49 +02:00
Girish Ramakrishnan
7ef9e7eb51 storage: add getStatus hook 2025-08-04 11:01:20 +02:00
Girish Ramakrishnan
28e23dfdab backuptargets: add test that archives/backups are removed when target is deleted 2025-08-04 10:21:29 +02:00
Girish Ramakrishnan
2c80c4a7d5 backuptargets: fix del to delete archives as well 2025-08-04 10:16:19 +02:00
Girish Ramakrishnan
5c1147bfa4 backupTargets: id is not used in config 2025-08-04 09:49:06 +02:00
Johannes Zellner
ee79744735 Add action to make a backup target the primary one 2025-08-04 09:40:55 +02:00
Johannes Zellner
410d4a47ed Fix typo 2025-08-03 21:05:46 +02:00
Girish Ramakrishnan
ead6d9c7d3 Fix app import 2025-08-02 20:42:12 +02:00
Girish Ramakrishnan
4c74908789 targets ui: backupFolder -> backupDir 2025-08-02 11:20:48 +02:00
Girish Ramakrishnan
547d8ae113 filesystem: rename backupFolder to backupDir 2025-08-02 10:37:37 +02:00
Girish Ramakrishnan
4fcaae8053 backup: fix listDir to return path instead of fullPath 2025-08-02 10:24:51 +02:00
Girish Ramakrishnan
c935744f4c backups: root ~~canal~~ path surgery
remove rootPath and getBackupFilePath from the backup target and
make this backend specific.
2025-08-02 10:15:34 +02:00
Girish Ramakrishnan
a01e1bad0f backuptarget: pseudo target for import and restore 2025-08-02 00:06:47 +02:00
Girish Ramakrishnan
3cabbc1328 backupformat: getFileExtension 2025-08-01 22:58:26 +02:00
Girish Ramakrishnan
7192439b2c no need for format specific getBackupFilePath 2025-08-01 20:49:11 +02:00
Girish Ramakrishnan
ff6cbf6628 backups: encode extension into the remotePath 2025-08-01 20:42:12 +02:00
Girish Ramakrishnan
53e9925880 backups: make id, provider a backend specific setting
the backend can stash whatever values it wants in the config.
just like the DNS backends, we make verifyConfig return a sanitized config.
added benefit is that extra user fields (via API) are also not dumped into the db.
2025-08-01 18:55:04 +02:00
Girish Ramakrishnan
9dfe6242b9 mounts: rename name to description
this makes it clear that the field is not important
2025-08-01 15:48:11 +02:00
Girish Ramakrishnan
ea419509f1 backups: add setup/teardown
1. add setup, teardown hooks
2. move the managed mount setup and teardown to filesystem backend
3. remove this vague storage.js

we should convert storageApi into a real object, so we don't have to
keep passing apiConfig around
2025-08-01 15:36:25 +02:00
Girish Ramakrishnan
a1a683ec56 import: use inPlace flag 2025-08-01 13:22:12 +02:00
Girish Ramakrishnan
dbe3b6a427 Update package lock 2025-08-01 12:58:36 +02:00
Girish Ramakrishnan
e8bd4d05b5 Update dashboard packages 2025-08-01 12:54:42 +02:00
Girish Ramakrishnan
1fb0ed9545 port bindings: use enabledByDefault 2025-08-01 12:20:45 +02:00
Girish Ramakrishnan
ea464bdc7d update modules 2025-08-01 12:14:32 +02:00
Johannes Zellner
d1c2d0b907 Move schedule and retention settings back to a separate dialog 2025-07-31 18:18:27 +02:00
Johannes Zellner
175b2914b6 Make basic backup target add and edit work 2025-07-31 17:25:31 +02:00
Johannes Zellner
a2c86daef6 Remove now unused AppArchive component 2025-07-31 14:37:32 +02:00
Johannes Zellner
b40248a1d5 Create separate views for backup targets and archives 2025-07-31 11:51:45 +02:00
Girish Ramakrishnan
ae3a34287a backup target: create snapshot and cache files per target
snapshot file tracks the snapshot directory. when app gets deleted,
the cleaner will remove the upstream snapshot directory when it runs.

cache files are used in rsync logic to track what was uploading into
snapshot in the previous run without needing to rescan upstream.
2025-07-30 11:44:42 +02:00
Girish Ramakrishnan
b971f2ab22 Fix tests 2025-07-28 13:11:57 +02:00
Girish Ramakrishnan
cbc73f5c9a remove uuid module
built into node.js now
2025-07-28 12:54:09 +02:00