47 Commits

Author SHA1 Message Date
Nico
a039bb478e fix: separate raw include paths and patterns (#683)
Separate include patters and included path cleanly to avoid path with special characters to be expanded. Closes https://github.com/nicotsx/zerobyte/discussions/680

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->

## Summary by CodeRabbit

* **New Features**
  * Added ability to select specific directories and paths for inclusion in backup schedules, separate from pattern-based rules.

* **Bug Fixes & Improvements**
  * Automatically migrates existing backup configurations to work with the new path selection system.
  * Enhanced backup restoration to properly handle both selected paths and pattern-based inclusions.

* **Chores**
  * Updated database schema to support path selections in backup schedules.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-03-20 19:27:54 +01:00
Nico
332e5bffda refactor: extract restic in core package (#651)
* refactor: extract restic in core package

* chore: add turbo task runner

* refactor: split server utils

* chore: simplify withDeps signature and fix non-null assertion
2026-03-11 21:56:07 +01:00
Nicolas Meienberger
b156d6154e fix: rebase issues 2026-03-11 19:05:50 +01:00
Nico
55dbcf0eb3 refactor: move from arktype to zod (#637)
chore: gen api-client
2026-03-11 18:53:58 +01:00
bcrooker
2adec5a999 fix: add seconds_remaining to restic backup progress schema 2026-03-07 11:22:41 -05:00
Nicolas Meienberger
b1a0cdb195 chore: gen api-client 2026-02-25 23:19:34 +01:00
Nicolas Meienberger
907bc57c2d fix(restic-dto): allow missing current_files in schema 2026-02-25 23:07:53 +01:00
Nico
45fd9f9de1 feat: repository used space (#551)
* feat: repository used space

refactor: use a smarter cache key logic for easier invalidations

* chore: pr feedbacks
2026-02-21 10:52:55 +01:00
Nico
182d39a887 feat: restore snapshot as tar (#550)
* feat: export snapshot as tar file

chore(mutext): prevent double lock release

* chore: pr feedbacks

* fix: dump single file no tar

* chore: pr feedbacks
2026-02-21 10:19:20 +01:00
Nico
8681ebc0c0 refactor: always use short id in api calls (#545) 2026-02-19 20:08:40 +01:00
Nico
bad944a232 feat: restore progress (#281)
* feat: restore progress

* feat: keep restore progress on reload

* refactor: centralize sse event types

* refactor(sse): generic handler factory
2026-02-14 12:35:16 +01:00
Nico
1017f1a38b feat: edit repository form (#507)
* feat: edit repository form

* refactor: local repo path concat as a code migration

* refactor: server constants

* chore: fix lint issue in test file

* refactor: add auth to getServerConstants
2026-02-14 11:49:33 +01:00
Nico
7ebce1166b feat: expand snapshot details with additional info (#505)
* feat: extend snapshot details with more info

Closes #385

* refactor: centralize restic backup schemas

* refactor: pr feedbacks
2026-02-12 18:25:21 +01:00
Nico
da5ad5c817 feat: add config for SMB guest mode (#431)
* feat: add config for SMB guest mode

Closes #279

* chore: pr feedbacks
2026-01-29 23:16:31 +01:00
Nico
bde5302ca4 feat(smtp-notification): add missing from name param to form (#429)
* feat(smtp-notification): add missing from name param to form

* chore: gen api client
2026-01-29 21:13:51 +01:00
Didin Sino
d449547336 feat: add support for sending notifications to Telegram group topics (#401) 2026-01-27 19:43:05 +01:00
Nico
2ab37e6b67 refactor: async doctor (#375)
* feat: background doctor operation

* refactor(repo-details): design layout

* refactor(doctor): support abort signal in all operations

* chore: fix linting issue

* chore: pr feedbacks

* chore: merge conflicts

* refactor: handle aborted signal in all operations

* chore: pr feedbacks

* chore: remove old migration
2026-01-22 21:55:45 +01:00
Nicolas Meienberger
1622e34b0d refactoring(bw-limit): stylistic refactoring 2026-01-15 18:07:00 +01:00
Nicolas Meienberger
02fe55b533 fix: properly catch before fallback mount 2026-01-15 16:14:05 +01:00
Raj Dave
a7a4ccef6b fix a lot of the coderabbit warnings 2026-01-10 14:23:39 +03:00
Raj Dave
db127afe5a Adds bandwidth limiting to repositories
Implements bandwidth limits for repository uploads and downloads.

Adds UI components to configure bandwidth limits.
Adds database fields to store bandwidth limit configuration.
Integrates bandwidth limiting into restic commands.
2026-01-10 14:03:45 +03: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
08a19ed38d fix: PR suggestions 2026-01-02 17:05:43 +01:00
tvories
e78af76beb feat: added additional validation, moved field location, made skip tls and ca certificate mutually exclusive with tooltips 2026-01-02 17:05:43 +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
658c42a53b feat: add generic webhook form & refactor each type in its own form (#239)
* feat: add generic webhook form & refactor each type in its own form

* chore: pr feedbacks

* fix(email-form): filter out empty emails
2026-01-02 14:56:35 +01:00
SaarLAN-Pissbeutel
a5242fa64a code cleanup
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-30 13:06:11 +01:00
SaarLAN-Pissbeutel
1b8154a74b add access token for ntfy notifications 2025-12-30 11:08:32 +00:00
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
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
Nico
c3acc26e05 refactor(notification): make username and password optional (smtp) (#126) 2025-12-10 21:36:18 +01:00
Nico
9199a743db feat: rclone volume backend (#123) 2025-12-10 20:20:49 +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
7d9d3d5d3d fix: wrong compression modes used 2025-11-28 20:28:47 +01:00
Nico
d190d9c8cd feat: partial success warning status (#74)
* feat: report partial backups with warnings

* chore: rebase

* chore: remove un-used size prop
2025-11-26 19:02:29 +01:00
Nicolas Meienberger
e99487eed9 fix(notifications): multiple providers using the wrong params 2025-11-23 21:09:23 +01:00
Nicolas Meienberger
8d4e5d2d4e fix(ntfy): wrong usage of token 2025-11-23 20:49:44 +01:00
Nicolas Meienberger
8c4939af4e feat(notifications): native support for pushover 2025-11-22 17:48:19 +01:00
Nico
6c30e7e357 Feat/notifications alerts (#52)
* feat: notifications backend & creation

* feat: assign notification to backup schedule

* refactor: status dot one component

* chore(notification-details): remove refetchInterval
2025-11-22 14:58:21 +01:00
Nico
a250c442f8 feat: add sftp repositories support (#36) 2025-11-20 20:31:40 +01:00
Nicolas Meienberger
c726c6fc72 feat: custom local repository path 2025-11-17 18:17:51 +01:00
Nicolas Meienberger
4d48d7be58 feat: add support for REST server 2025-11-16 18:24:09 +01:00
Nicolas Meienberger
3ff6a04f8e feat(repositories): allow importing existing repos 2025-11-15 11:58:52 +01:00
Renan Bernordi
52046c88cc support cloudflare r2 2025-11-14 22:37:27 -03:00
Nicolas Meienberger
18f863cbac chore: remove node_modules folder 2025-11-14 20:03:11 +01: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