Jakub Trávník
b0d9985964
Merge branch 'main' into config-import-json
2026-01-03 12:08:38 +01:00
Nico
b8fe2a985b
feat: insecure tls & cacert for self-hosted repos ( #277 )
...
* feat: insecure tls & cacert for self-hosted repos
* fix: extra arg
2026-01-02 18:13:19 +01:00
tvories
07e68b9fe7
feat: add support for a cacert configuration as well as allowing the user to skip tls validation
2026-01-02 17:05:43 +01:00
Nico
2c786dfb35
feat: snapshots bulk actions ( #256 )
...
* feat: delete snapshots in bulk
* feat: re-tag snapshots in bulk
* chore: pr feedbacks
2026-01-02 17:04:06 +01:00
Jakub Trávník
b25ed606b2
fix: replace Error with BadRequestError for invalid shortId format in repository and volume creation
2026-01-02 10:23:48 +01:00
Jakub Trávník
cc9982b764
feat: add support for provided shortId in volume, repository and backup and pass shortIds to service creation from config import
2026-01-02 09:54:52 +01:00
Jakub Trávník
5a4f4641b4
feat: improve config import with result tracking and idempotent repository detection
...
- Add ImportResult type to track succeeded/warnings/errors counts across all import functions
- Implement multi-layer repository duplicate detection:
- URL-based check (same path/bucket/endpoint already registered)
- Restic repo check (path is already a restic repository)
- Name-based fallback check
- Standardize logging between CLI and env var import methods with logImportSummary()
- CLI exits with code 1 when import has errors
- Remove shortId override for local repo migrations (use full path with isExistingRepository instead)
- Update example JSON and README:
- Document that local repo path is optional (defaults to /var/lib/zerobyte/repositories)
- Add existing-local-repo example with isExistingRepository: true
- Add S3 endpoint field to example
- Expand config behavior docs to explain all repository skip conditions
- Improve .gitignore to exclude all JSON except example template
2025-12-29 18:34:02 +01:00
Jakub Trávník
e4f66de447
linting and SFTP volume support
2025-12-29 11:16:36 +01:00
Jakub Trávník
5cdec5cdaa
Merge remote-tracking branch 'origin/main' into config-import-json
2025-12-29 11:06:06 +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
Nicolas Meienberger
52a6ed6070
refactor: import local repositories use path only and not name
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-26 17:29:42 +01:00
Jakub Trávník
9e9edd73a1
Merge remote-tracking branch 'origin/main' into config-import-json
2025-12-23 13:18:14 +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
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
Jakub Trávník
8c3e85cb50
Merge remote-tracking branch 'origin/main' into config-import-json
2025-12-21 13:12:47 +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
Jakub Trávník
6e1cc89caa
Merge origin/main into config-import-json
2025-12-19 14:23:02 +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
Jakub Trávník
0b2576af91
Merge remote-tracking branch 'origin/main' into config-import-json
2025-12-17 18:27:32 +01:00
Nico
3efff035c5
fix(doctor): fail gracefully in case of unexpected error ( #132 )
2025-12-16 18:02:54 +01:00
Jakub Trávník
58b1a0574e
secret reference server usage
2025-12-15 10:50:13 +01:00
Jakub Trávník
ea9003ca4b
Merge branch 'main' into config-import-json
2025-12-05 10:56:38 +01:00
Jakub Trávník
1d4263046c
enhance repository creation logic to check for existing repositories and handle errors appropriately
2025-12-04 13:31:08 +01:00
Jakub Trávník
abe6eb79d8
removed duplicate isencrypted check as its handled inside encrypt already
2025-12-03 23:25:53 +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
1de82fa863
better handle importing of existing local repository config + documentation
2025-12-02 12:55:35 +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
Jakub Trávník
ebaebe0aad
config import via json
2025-11-30 18:53:32 +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
1d4e7100ab
fix: healtcheck, to not read full data
2025-11-29 12:24:07 +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
Nico
b26a062648
refactor: use short ids to allow changing the name of volumes & repos ( #67 )
...
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: use short ids to allow changing the name of volumes & repos
* refactor: address PR feedbacks
* fix: make short_id non null after initial population
2025-11-26 19:47:09 +01:00
Nicolas Meienberger
a622b5e689
feat: exclude specific xattr during restore
2025-11-22 17:39:08 +01:00
Nicolas Meienberger
043f73ea87
fix: properly decode path to support all special unicode characters
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-21 18:25:27 +01:00
Nico
a250c442f8
feat: add sftp repositories support ( #36 )
2025-11-20 20:31:40 +01:00
Nicolas Meienberger
4d48d7be58
feat: add support for REST server
2025-11-16 18:24:09 +01:00
Nico
e5435969be
feat: remove individual snapshot ( #26 )
2025-11-16 11:14:18 +01:00
Nicolas Meienberger
3ff6a04f8e
feat(repositories): allow importing existing repos
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-15 11:58:52 +01:00
Nicolas Meienberger
b83881c189
fix(backups): re-calculate next backup date before starting the backup
2025-11-15 11:13:23 +01:00
Nicolas Meienberger
f517438a8e
refactor(repository): keep the error if repo is already init
2025-11-15 09:42:29 +01:00
Renan Bernordi
52046c88cc
support cloudflare r2
2025-11-14 22:37:27 -03:00
Nico
95a0d44b45
refactor: unify backend and frontend servers ( #3 )
...
* refactor: unify backend and frontend servers
* refactor: correct paths for openapi & drizzle
* refactor: move api-client to client
* fix: drizzle paths
* chore: fix linting issues
* fix: form reset issue
2025-11-13 20:11:46 +01:00