Nico
731ebad1ee
style: redesign volume details page to match repository ( #740 )
2026-04-02 22:55:23 +02:00
Nico
475bfb59ae
style: redesign respository details page ( #739 )
2026-04-02 22:51:57 +02:00
Nico
e77723164b
refactor: improve buttons and space with dropdowns ( #738 )
2026-04-02 21:44:32 +02:00
Nico
4bf1463406
refactor: dedicated edit page for volumes ( #737 )
2026-04-02 21:40:24 +02:00
Nico
d6e80b71d7
refactor: dedicated edit page for backups ( #736 )
2026-04-02 21:36:31 +02:00
Nico
4305057185
test: move test runner from Bun to Vitest ( #727 )
...
* chore: migrate to vitest
* test: speed up some suites by sharing sessions and mocking expensive non-tested actions
* test: refactor some tests to verify behavior instead of implementation details
* chore: fix linting issues
2026-04-01 20:05:54 +02:00
Nicolas Meienberger
e265f7d478
test: fix flaky test depending on mutex timing
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-04-01 09:27:13 +02:00
Nicolas Meienberger
add0f2788f
fix: restoring snapshots that have unrelated root paths
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-31 23:05:19 +02:00
Nicolas Meienberger
63e12868b1
fix: react hydration issues by using the same locale during ssr and hydration
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-31 22:39:16 +02:00
Nicolas Meienberger
ca38f7ca69
fix(select): render a div durng ssr to avoid hydration issues
2026-03-31 22:05:46 +02:00
Nicolas Meienberger
915b96c218
refactor: split out root-loader data getter into a dedicated function
2026-03-31 21:19:16 +02:00
Nicolas Meienberger
3acf565ccd
fix: force user to provide known hosts values in sftp volume / repository creation
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-31 20:27:48 +02:00
Kevin Stallone
aa7eaa0929
feat(volumes): add webdav, sftp, and rclone filters ( #720 )
...
* feat(volumes): add sftp, webdav, and rclone filters
* chore(volumes): align backend filter order with create-volume form
2026-03-31 20:27:43 +02:00
Nicolas Meienberger
e55ffccd21
feat: infer default time format from navigator.language
2026-03-30 18:44:26 +02:00
Nico
f89b8c3b52
feat: custom date time format ( #718 )
2026-03-29 17:24:54 +02:00
Nico
2a219ac042
refactor(backups): consolidate execution into service helpers ( #717 )
2026-03-29 12:57:47 +02:00
Nico
611640b32b
fix: split display path and query base path ( #714 )
...
* fix: split display path and query base path
#709
* test(frontend): shared render utils
* fix(file-tree): add missing path segments
* chore: bump Bun version
* fix: select kind for synthetic folders
2026-03-29 12:30:35 +02:00
Nico
866a3c63e8
feat: manual backup option ( #713 )
...
Closes #710
2026-03-26 19:35:18 +01:00
Nicolas Meienberger
b4668e23c7
test(e2e): attach browser logs and full errors in report
2026-03-24 07:52:54 +01:00
Nicolas Meienberger
7ef211ddd5
docs: update readme version
2026-03-24 07:52:54 +01:00
Nicolas Meienberger
4c928cbc33
refactor(client): configure time formatting with timezone from server
2026-03-24 07:52:54 +01:00
Nico
8acca9ef4a
fix: cli not running ( #703 )
2026-03-23 19:47:44 +01:00
Nicolas Meienberger
c93b076bf6
test: simplify file-tree selection & login mocking
2026-03-22 12:06:48 +01:00
Nico
4fec2777ce
test(e2e): fail in unexpected console.error ( #696 )
...
* test(e2e): fail in unexpected console.error
* fix(datetime): graceful fallback during SSR when navigator is undefined
2026-03-22 11:31:48 +01:00
Nico
05dd440dea
fix(restic): separate error summary from diagnostic details ( #694 )
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-21 20:50:23 +01:00
Nico
618f37e250
fix(notifications): fix telegram shoutrrr URL encoding ( #691 )
...
Closes #690
2026-03-21 20:38:45 +01:00
Nicolas Meienberger
aa23967329
fix: encrypt ntfy access token at rest
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-20 20:37:51 +01:00
Nicolas Meienberger
bad5f78991
fix(smb): use long form params username / password instead of user / pass
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
#674
2026-03-20 19:29:40 +01:00
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
f6f17cd61c
fix: backup progress use simple polling & cache ( #678 )
...
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
#593
2026-03-18 20:25:30 +01:00
Nico
429b69ec92
fix: show back warnings logs and surface in UI ( #677 )
...
fix: show back warnings logs and surface in UI
#544
chore: fix dev login issue
2026-03-18 20:21:14 +01:00
Nico
e39220c024
fix: allow quoted urls in env variables ( #676 )
2026-03-17 22:09:22 +01:00
Nicolas Meienberger
4356ace665
refactor: users table
2026-03-15 12:25:07 +01:00
Nicolas Meienberger
a671b17b4f
refactor(schedule form): helper for multiline parsing
2026-03-15 12:09:18 +01:00
Nicolas Meienberger
2d10da72f6
refactor(volume-backend): assert mounted helper
2026-03-15 12:03:27 +01:00
Nicolas Meienberger
959cb21d83
refactor(datetime): formatting helpers
2026-03-15 11:57:37 +01:00
Nicolas Meienberger
5f7f2005fa
refactor(notifications): extract config secret mapping
2026-03-15 11:51:17 +01:00
Nicolas Meienberger
a2d34a027e
refactor(notifications): use native URL builder
2026-03-15 11:40:03 +01:00
Nicolas Meienberger
b298524663
test: disable rate limiting in testing
2026-03-13 23:05:14 +01:00
Nico
7473c29948
feat: protect restores that would overwrite important internal path ( #663 )
2026-03-13 21:33:37 +01:00
Nico
9632c77177
feat: add a trust proxy env to control whether to trust incoming x-forwarded-for headers ( #662 )
2026-03-13 19:08:08 +01:00
Nicolas Meienberger
66f95dcd8e
fix: reject include patterns that are not in the volume root
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / e2e-tests (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
2026-03-12 20:17:40 +01:00
Nicolas Meienberger
469f0d6c4e
fix(dump): content-disposition header with special characters
2026-03-12 19:17:32 +01:00
Nico
d74f516336
feat: file-based provisionning of volumes and repos ( #656 )
...
* feat: file-based provisionning of volumes and repos
docs: provisioning example
chore: ui improvements
* chore: ci issues
2026-03-12 18:31:42 +01:00
Nicolas Meienberger
f7f56c6c83
refactor: repo error state
2026-03-12 18:02:05 +01:00
Nicolas Meienberger
2923bf9f27
feat: add toggle to switch snapshot order
2026-03-12 18:02:02 +01:00
Nicolas Meienberger
b132ad6df5
fix: add additional chmod after file write
...
Closes #478 The mode option of fs.writeFile does not reliably apply
permissions on all filesystems. On Synology NAS Docker volumes (btrfs),
the file ends up with 0755 permissions instead of 0600, causing SSH to
refuse the key.
2026-03-12 18:01:45 +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
dependabot[bot]
4e29295f68
chore(deps): bump the minor-patch group across 1 directory with 12 updates ( #648 )
...
* chore(deps): bump the minor-patch group across 1 directory with 12 updates
Bumps the minor-patch group with 12 updates in the / directory:
| Package | From | To |
| --- | --- | --- |
| [@scalar/hono-api-reference](https://github.com/scalar/scalar/tree/HEAD/integrations/hono ) | `0.10.0` | `0.10.1` |
| [@tanstack/react-hotkeys](https://github.com/TanStack/hotkeys/tree/HEAD/packages/react-hotkeys ) | `0.3.2` | `0.4.1` |
| [@tanstack/react-router](https://github.com/TanStack/router/tree/HEAD/packages/react-router ) | `1.166.2` | `1.166.7` |
| [@tanstack/react-router-ssr-query](https://github.com/TanStack/router/tree/HEAD/packages/react-router-ssr-query ) | `1.166.2` | `1.166.7` |
| [@tanstack/react-start](https://github.com/TanStack/router/tree/HEAD/packages/react-start ) | `1.166.2` | `1.166.7` |
| [hono](https://github.com/honojs/hono ) | `4.12.5` | `4.12.7` |
| [recharts](https://github.com/recharts/recharts ) | `3.7.0` | `3.8.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `25.3.5` | `25.4.0` |
| [lefthook](https://github.com/evilmartians/lefthook ) | `2.1.2` | `2.1.3` |
| [lightningcss](https://github.com/parcel-bundler/lightningcss ) | `1.31.1` | `1.32.0` |
| [oxfmt](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxfmt ) | `0.36.0` | `0.37.0` |
| [oxlint](https://github.com/oxc-project/oxc/tree/HEAD/npm/oxlint ) | `1.51.0` | `1.52.0` |
Updates `@scalar/hono-api-reference` from 0.10.0 to 0.10.1
- [Release notes](https://github.com/scalar/scalar/releases )
- [Changelog](https://github.com/scalar/scalar/blob/main/integrations/hono/CHANGELOG.md )
- [Commits](https://github.com/scalar/scalar/commits/HEAD/integrations/hono )
Updates `@tanstack/react-hotkeys` from 0.3.2 to 0.4.1
- [Release notes](https://github.com/TanStack/hotkeys/releases )
- [Changelog](https://github.com/TanStack/hotkeys/blob/main/packages/react-hotkeys/CHANGELOG.md )
- [Commits](https://github.com/TanStack/hotkeys/commits/@tanstack/react-hotkeys@0.4.1/packages/react-hotkeys )
Updates `@tanstack/react-router` from 1.166.2 to 1.166.7
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.7/packages/react-router )
Updates `@tanstack/react-router-ssr-query` from 1.166.2 to 1.166.7
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.7/packages/react-router-ssr-query )
Updates `@tanstack/react-start` from 1.166.2 to 1.166.7
- [Release notes](https://github.com/TanStack/router/releases )
- [Commits](https://github.com/TanStack/router/commits/v1.166.7/packages/react-start )
Updates `hono` from 4.12.5 to 4.12.7
- [Release notes](https://github.com/honojs/hono/releases )
- [Commits](https://github.com/honojs/hono/compare/v4.12.5...v4.12.7 )
Updates `recharts` from 3.7.0 to 3.8.0
- [Release notes](https://github.com/recharts/recharts/releases )
- [Changelog](https://github.com/recharts/recharts/blob/main/CHANGELOG.md )
- [Commits](https://github.com/recharts/recharts/compare/v3.7.0...v3.8.0 )
Updates `@types/node` from 25.3.5 to 25.4.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `lefthook` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/evilmartians/lefthook/releases )
- [Changelog](https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md )
- [Commits](https://github.com/evilmartians/lefthook/compare/v2.1.2...v2.1.3 )
Updates `lightningcss` from 1.31.1 to 1.32.0
- [Release notes](https://github.com/parcel-bundler/lightningcss/releases )
- [Commits](https://github.com/parcel-bundler/lightningcss/commits/v1.32.0 )
Updates `oxfmt` from 0.36.0 to 0.37.0
- [Release notes](https://github.com/oxc-project/oxc/releases )
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxfmt/CHANGELOG.md )
- [Commits](https://github.com/oxc-project/oxc/commits/crates_v0.37.0/npm/oxfmt )
Updates `oxlint` from 1.51.0 to 1.52.0
- [Release notes](https://github.com/oxc-project/oxc/releases )
- [Changelog](https://github.com/oxc-project/oxc/blob/main/npm/oxlint/CHANGELOG.md )
- [Commits](https://github.com/oxc-project/oxc/commits/HEAD/npm/oxlint )
---
updated-dependencies:
- dependency-name: "@scalar/hono-api-reference"
dependency-version: 0.10.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-hotkeys"
dependency-version: 0.4.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router"
dependency-version: 1.166.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-router-ssr-query"
dependency-version: 1.166.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: "@tanstack/react-start"
dependency-version: 1.166.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: hono
dependency-version: 4.12.7
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: recharts
dependency-version: 3.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: "@types/node"
dependency-version: 25.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: lefthook
dependency-version: 2.1.3
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-patch
- dependency-name: lightningcss
dependency-version: 1.32.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: oxfmt
dependency-version: 0.37.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
- dependency-name: oxlint
dependency-version: 1.52.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore: gen api-client
---------
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>
2026-03-11 19:19:24 +01:00
Nicolas Meienberger
d07be16fc6
fix(rclone): use correct timeout in seconds
2026-03-11 19:19:06 +01:00