Nicolas Meienberger
c426bdcbf8
fix: sftp keep alive
2025-12-21 15:37:21 +01:00
Nicolas Meienberger
6cc10293e1
fix: migration using 1 instead of true
2025-12-21 15:27:12 +01:00
Nico
ea9d867cd2
feat: version link to gh release in sidebar ( #203 )
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-21 14:39:30 +01:00
Nico
8cdd06ec49
fix(stop): always update status to warning when stop is executed ( #202 )
...
* fix(stop): always update status to warning when stop is executed
* fix: automatically put in_progress backups to warning during startup
2025-12-21 14:25:45 +01:00
Nico
492aa4178d
feat: allow to control --one-file-system option from the schedule config ( #201 )
2025-12-21 14:21:08 +01:00
Nico
fc04cfe02e
refactor(restic): use safeSpawn util instead of Bun shell ( #195 )
...
Bun has an issue with special non-ASCII charachters
https://github.com/oven-sh/bun/issues/15929 that makes commands crash if
manipulating a file with such charachter
2025-12-20 11:47:45 +01:00
Nico
598de4e078
fix: schedules not running if never run manually ( #194 )
...
* fix: backups that were never run manually are not picked up by job
* fix(mutex): prioritize waiting exclusive locks over newly added shared tasks
2025-12-20 11:28:18 +01:00
Nicolas Meienberger
febd795517
refactor: warning only when backup is aborted
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-19 23:30:23 +01:00
Nicolas Meienberger
46c8139a23
fix: ensure proper error message when backup operation is aborted
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-19 23:27:25 +01:00
Nicolas Meienberger
7879d88a54
fix(backups): preserve relative include/exclude pattern behavior
2025-12-19 23:18:56 +01:00
Jakub Trávník
30685c8481
fix: include name in initial values for notification form update ( #184 )
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-19 22:40:07 +01:00
Nico
579bc89970
fix: prepend mount path in exclude patterns ( #188 )
...
* fix: prepend mount path location in exclude patterns
* test(backups): add tests suite for backend include & exclude patterns
* test: fix leaking global module mock
2025-12-19 22:35:34 +01:00
Nico
61dc07b36b
Controllers tests ( #187 )
...
* test: backups service
* refactor: create hono app in a separate file
To avoid side effects like db migration or startup scripts when testing
test(backups): add security tests to the backups controller
* ci: run typechecks, build and tests on PR
* test: controllers security tests
* chore: update lock file
* refactor: pr feedbacks
2025-12-19 19:25:21 +01:00
Nico
94f49e2022
refactor: separate healthcheck and auto remount in two separate jobs ( #179 )
...
* refactor: separate healthcheck and auto remount in two separate jobs
* fix: try catch in volume auto remount
2025-12-18 23:03:41 +01:00
Nico
6a86de7b95
refactor: add default excludes to backups ( #178 )
...
- To avoid accidentaly backing up a repository to itself
- To avoid accidentaly backing up zerobyte's internal data
2025-12-18 22:34:21 +01:00
Nico
fd5193b5e3
refactor: reduce startup mounting noise ( #177 )
...
- Skip mount early if volume is not in error or neither mounted
- Error healthchecks early if volume is not mounted
2025-12-18 22:19:21 +01:00
Nico
a17da2562f
refactor(startup): ensure entities always use the latest configuration format ( #173 )
...
* refactor(startup): ensure entities always use the latest configuration schema
* refactor: await config updates to avoid race condition on later mount
2025-12-18 18:11:39 +01:00
Nicolas Meienberger
7951a87332
refactor: don't apply strict rate limit on /me and /status endpoints
2025-12-18 12:09:34 +01:00
Nicolas Meienberger
0838ce86bd
refactor: remove cors options and fix rate limiter usage
2025-12-17 23:40:57 +01:00
Nicolas Meienberger
45e7e88b09
fix: apply middlewares before the controller definition
2025-12-17 23:35:47 +01:00
Nicolas Meienberger
1d76e18d38
fix(sortable-card): keep opacity at 100 on mobile
2025-12-17 23:35:14 +01:00
orbisai0security
3cebc1ce47
fix: resolve high vulnerability V-002
...
Automatically generated security fix
2025-12-17 07:47:05 +00:00
Nicolas Meienberger
f77fd86694
Merge branch 'tvarohohlavy-secrets-management'
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-16 20:47:29 +01:00
Nicolas Meienberger
47b3c80317
refactor(secret-input): remove isDirty check
2025-12-16 20:45:33 +01:00
Nicolas Meienberger
e57efcfcdc
refactor: extract sortable card into its own component
2025-12-16 20:23:44 +01:00
Nicolas Meienberger
b983add4ca
chore(frontend): parametrize server IP
2025-12-16 19:40:53 +01:00
Nicolas Meienberger
e39552ee68
chore: small code style improvements
2025-12-16 19:36:37 +01:00
Nicolas Meienberger
feb6353e21
chore(frontend): parametrize server IP
2025-12-16 18:02:54 +01:00
Nicolas Meienberger
fe5810b1a7
fix: circular dependency
2025-12-16 18:02:54 +01:00
Nico
9e3cc90ba1
refactor: allow to run without the SYS_ADMIN cap for simple setups ( #138 )
...
* refactor: allow to run without the SYS_ADMIN cap for simple setups
* fix: pr feedback
2025-12-16 18:02:54 +01:00
Nicolas Meienberger
ebca72f1ee
fix: username optional in snapshot output
2025-12-16 18:02:54 +01:00
Nico
1b6539c5bf
refactor: remove docker volum plugin functionnality ( #137 )
2025-12-16 18:02:54 +01:00
Nicolas Meienberger
fe5c9ea599
refactor(rclone-form): minor UI improvements
2025-12-16 18:02:54 +01:00
Nico
dc20f209f7
fix: run forget on mirrors in the background ( #136 )
2025-12-16 18:02:54 +01:00
Nicolas Meienberger
affd300a09
fix(rclone-volume): remote was not loaded correctly in the form
2025-12-16 18:02:54 +01:00
Nico
54d077bf43
fix: same time backups run multiple times ( #134 )
2025-12-16 18:02:54 +01:00
Nico
3efff035c5
fix(doctor): fail gracefully in case of unexpected error ( #132 )
2025-12-16 18:02:54 +01:00
Raj Dave
008af5487d
Invalidates backup schedule queries on reorder
...
Ensures the backup schedule list is refreshed after reordering,
both on success and on error, by using the dedicated query key
instead of a generic string. This guarantees the UI reflects
the latest state.
2025-12-15 16:19:33 +03:00
Raj Dave
8e49b10042
Validates and improves schedule reordering
...
Ensures schedule reordering requests are valid by checking for duplicate and non-existent IDs.
Improves performance by using a transaction for batch updates.
2025-12-15 16:06:21 +03:00
Raj Dave
c3f5cd6b4e
properly generate migration
2025-12-15 13:30:51 +03:00
Raj Dave
fa8e06a92e
fix timestamp in drizzle journal
2025-12-15 13:26:47 +03:00
Raj Dave
b51f3549c2
Backend and UI modifications to allow reordering of backup schedules
...
Adds drag-and-drop functionality to reorder backup schedules
Introduces a sort order field to the database schema and implements API endpoints to update the schedule order.
This allows users to visually prioritize their backup jobs.
2025-12-15 13:13:34 +03:00
Jakub Trávník
c4ec8ea62b
secret reference frontend usage
2025-12-15 10:50:24 +01:00
Jakub Trávník
58b1a0574e
secret reference server usage
2025-12-15 10:50:13 +01:00
Jakub Trávník
605fb1c27c
secret reference core support
2025-12-15 10:48:35 +01:00
Nicolas Meienberger
5216cc195d
fix: circular dependency
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-14 20:49:27 +01:00
Nico
b23317354c
refactor: allow to run without the SYS_ADMIN cap for simple setups ( #138 )
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
* refactor: allow to run without the SYS_ADMIN cap for simple setups
* fix: pr feedback
2025-12-14 20:30:33 +01:00
Nicolas Meienberger
95e4fe5547
fix: username optional in snapshot output
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-14 20:25:42 +01:00
Nico
361311285a
refactor: remove docker volum plugin functionnality ( #137 )
2025-12-14 11:07:32 +01:00
Nicolas Meienberger
1eb247deec
refactor(rclone-form): minor UI improvements
2025-12-14 10:44:05 +01:00
Nico
8a5d45cbfb
fix: run forget on mirrors in the background ( #136 )
2025-12-14 10:34:25 +01:00
Nicolas Meienberger
7619612b1b
fix(rclone-volume): remote was not loaded correctly in the form
2025-12-14 10:33:16 +01:00
Nico
be53466739
fix: same time backups run multiple times ( #134 )
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-13 23:47:41 +01:00
Nico
6ab5c549c1
fix(doctor): fail gracefully in case of unexpected error ( #132 )
2025-12-12 17:55:37 +01:00
Nicolas Meienberger
47f64b51af
docs: update version in readme
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-11 18:32:40 +01:00
Nico
c3acc26e05
refactor(notification): make username and password optional (smtp) ( #126 )
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-10 21:36:18 +01:00
Nico
ef8fd7228f
fix(mirrors): keep last copy state ( #125 )
2025-12-10 21:18:10 +01:00
Nico
2ddf3c6597
refactor: split forms ( #124 )
...
* refactor: split create-volume-form
* refactor: split create-repository-form
* chore: pr feedbacks
2025-12-10 21:16:20 +01:00
Nico
9199a743db
feat: rclone volume backend ( #123 )
2025-12-10 20:20:49 +01:00
Nico
4c0ba33b5e
feat: notify on warning separation ( #122 )
2025-12-10 18:55:37 +01:00
Nicolas Meienberger
7091f1f296
chore: remove retry-lock
2025-12-06 11:17:31 +01:00
Nicolas Meienberger
fdb84374a0
refactor: remove icons where it was making the context worse
2025-12-06 11:13:26 +01:00
Nicolas Meienberger
c42380b26b
refactor: remove trim on password
...
The password should be taken as-is. It could potentially contain a space
2025-12-06 10:36:39 +01:00
Nicolas Meienberger
51ed47c30f
refactor: no need to print safe args as it's already sanitized
2025-12-06 10:36:39 +01:00
Nicolas Meienberger
b8ae10b316
fix: volume data not refreshing when changing selection
2025-12-06 10:36:39 +01:00
Nico
f232fc07c1
feat: custom include patterns ( #104 )
...
* feat: add custom include patterns
* feat: add exclude-if-present option
2025-12-06 10:36:39 +01:00
Nico
d542318e2c
feat: naming backup schedules ( #103 )
...
* docs: add agents instructions
* feat: naming backup schedules
* fix: wrong table for filtering
2025-12-06 10:36:39 +01:00
Nicolas Meienberger
2660d91002
fix: broken migration
2025-12-06 10:36:25 +01:00
Nicolas Meienberger
b155f82575
chore: update dependencies
2025-12-06 10:36:25 +01:00
Nico
9120153375
feat: mirror repositories ( #95 )
...
* feat: mirror repositories
feat: mirror backup repositories
* chore: pr feedbacks
2025-12-06 10:36:17 +01:00
Jakub Trávník
780fdae63e
cryptoUtils.decrypt alligned with encrypt in regards of handling extra space in password file
2025-12-06 10:35:55 +01:00
Jakub Trávník
fc482e9729
crypto.Utils comments updated to reflect behaviour
2025-12-06 10:35:55 +01:00
Jakub Trávník
1fe026a76f
avoid logging secrets in smb backend
2025-12-06 10:35:55 +01:00
Jakub Trávník
2df1fa53a0
feat: implement encryption for sensitive fields in volume backends
2025-12-06 10:35:55 +01:00
Jakub Trávník
4403e3cf19
Merge branch 'main' into missing-icons
2025-12-05 00:22:39 +01:00
Nicolas Meienberger
e85cc35b1a
feat: add DOCKER_HOST support
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-04 19:09:23 +01:00
Nicolas Meienberger
321dc4cdf7
fix: volume data not refreshing when changing selection
2025-12-04 18:54:02 +01:00
Nicolas Meienberger
0f7bd1e042
fix: remove debug logs in production
2025-12-04 18:46:12 +01:00
Nico
08d8a47352
feat: custom include patterns ( #104 )
...
* feat: add custom include patterns
* feat: add exclude-if-present option
2025-12-04 18:44:34 +01:00
Nico
1e20fb225e
feat: naming backup schedules ( #103 )
...
* docs: add agents instructions
* feat: naming backup schedules
* fix: wrong table for filtering
2025-12-04 18:31:00 +01:00
Nicolas Meienberger
b8e30e298c
fix: broken migration
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-03 21:56:41 +01:00
Nicolas Meienberger
ce07c588ad
chore: update dependencies
2025-12-03 20:55:38 +01:00
Nico
e7f0a2828d
feat: mirror repositories ( #95 )
...
* feat: mirror repositories
feat: mirror backup repositories
* chore: pr feedbacks
2025-12-03 20:52:47 +01:00
Jakub Trávník
ff4c1404a6
feat: add icons to buttons and alerts for improved UI clarity
2025-12-03 17:31:44 +01:00
Nicolas Meienberger
7ff38f0128
refactor: run forget commands in the background
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-01 20:22:43 +01:00
Nicolas Meienberger
33e6f3773b
fix: only lock shared tasks if an exclusive is running
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-12-01 20:07:30 +01:00
Nico
9b46737852
refactor(repositories): add a locking mechanism for restic operations ( #94 )
...
* refactor(repositories): add a locking mechanism for restic operations
* fix: add missing lock in list repositories
2025-12-01 19:47:21 +01:00
Nicolas Meienberger
dbd9ae2241
chore: generate types
2025-11-30 17:05:40 +01:00
Nico
0287bca4bb
restore as a page ( #87 )
...
* feat: add custom restore target directory
Adds the ability to restore snapshots to a custom directory instead of
only the original path. Closes #12 .
Changes:
- Add target parameter to restore API endpoint
- Add directory picker UI in file browser restore dialog
- Add target input field in snapshot restore form
- Create reusable PathSelector component
Note: Run `bun run gen:api-client` after merging to regenerate types.
* refactor: path selector design
* refactor: unify restore snapshot dialogs
* refactor: restore snapshot as a page
* chore: fix liniting issues
* chore(create-notification): remove un-used prop
---------
Co-authored-by: Deepseek1 <Deepseek1@users.noreply.github.com>
2025-11-30 16:47:14 +01:00
Jakub Trávník
03b898f84c
Update app/client/modules/notifications/components/create-notification-form.tsx
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-30 15:38:45 +01:00
Jakub Trávník
6fbb11fefe
telegram notification
2025-11-30 15:15:26 +01:00
Nico
3bf3b22b96
feat: restore to custom location ( #78 )
...
* feat: restore to custom location
* refactor: define overwrite mode in shared schema
2025-11-29 16:53:44 +01:00
Nicolas Meienberger
58708cf35d
refactor: repo healthcheck once per day
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-11-29 12:25:46 +01:00
Nicolas Meienberger
1d4e7100ab
fix: healtcheck, to not read full data
2025-11-29 12:24:07 +01:00
Nicolas Meienberger
0dfe000148
feat: rename volumes & repositories
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-11-28 20:47:27 +01:00
Nicolas Meienberger
7d9d3d5d3d
fix: wrong compression modes used
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-11-28 20:28:47 +01:00
Nicolas Meienberger
8e90c4ace1
refactor: native repository healthcheck
2025-11-28 08:20:06 +01:00
Nico
673827f9f3
refactor: all timestamps to ms ( #77 )
...
* refactor: change all timestamps to be in miliseconds
* chore: format files
* chore: fix syntax error
2025-11-26 23:20:22 +01:00
Nicolas Meienberger
4328607cc1
fix: skip renaming imported repository
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-11-26 22:20:42 +01:00
Nicolas Meienberger
bedd325a60
fix(db): set pragma after migrations
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2025-11-26 20:12:12 +01:00