Commit Graph

107 Commits

Author SHA1 Message Date
Nico
c05aa8d5bf feat: add support for SFTP volume backend (#249)
* feat: add support for SFTP volume backend

* feat: allow more secure SFTP connection with known hosts

* refactor: make default value for skip host key check to false

* refactor: use os.userInfo when setting uid/gid in mount commands
2025-12-28 18:30:49 +01:00
Nico
ae5233d9fb refactor: tag snapshots with schedule short_id instead of db id (#248)
* refactor: tag snapshots with schedule short_id instead of db id

* chore: formatting issues
2025-12-28 11:42:25 +01:00
Nico
54068d5269 feat: allow changing the hostname (restic host) (#240) 2025-12-26 21:02:16 +01:00
Nicolas Meienberger
52a6ed6070 refactor: import local repositories use path only and not name 2025-12-26 17:29:42 +01:00
Nico
ac9de54a7b fix: allow arbitrary name for repositories and correctly import existing local repos (#197)
* fix: allow arbitrary name for repositories and correctly import existing local repos

* chore: rebase conflicts
2025-12-22 20:50:53 +01:00
Nico
c69d2b6445 feat: reset password cli command (#220)
* feat: reset password cli command

* refactor: wrap user password reset operations in db transaction
2025-12-22 19:20:37 +01:00
Nico
55e27ef0b5 feat: server timeout env (#219)
* feat: increase server idle timeout and allow to modify it via env

* chore(app): move auth middleware to individual controller

To clean up de main app.ts file

* chore: remove console.log
2025-12-22 17:34:27 +01:00
dependabot[bot]
fe8eb1326d chore(deps-dev): bump @types/node from 24.10.4 to 25.0.3 (#209)
* chore(deps-dev): bump @types/node from 24.10.4 to 25.0.3

Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.10.4 to 25.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 25.0.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: use rm instead of rmdir

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicolas Meienberger <github@thisprops.com>
2025-12-21 19:51:03 +01:00
Nicolas Meienberger
c426bdcbf8 fix: sftp keep alive 2025-12-21 15:37:21 +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 2025-12-19 23:30:23 +01:00
Nicolas Meienberger
46c8139a23 fix: ensure proper error message when backup operation is aborted 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
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
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' 2025-12-16 20:47:29 +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
Nico
dc20f209f7 fix: run forget on mirrors in the background (#136) 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
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
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
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 2025-12-14 20:49:27 +01:00
Nico
b23317354c 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-14 20:30:33 +01:00
Nicolas Meienberger
95e4fe5547 fix: username optional in snapshot output 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
Nico
8a5d45cbfb fix: run forget on mirrors in the background (#136) 2025-12-14 10:34:25 +01:00
Nico
be53466739 fix: same time backups run multiple times (#134) 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 2025-12-11 18:32:40 +01:00