Commit graph

71 commits

Author SHA1 Message Date
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
8681ebc0c0
refactor: always use short id in api calls (#545) 2026-02-19 20:08:40 +01:00
Nico
8fcd446926
refactor: snapshot strip out base path (#542)
* refactor: strip out volume path in snapshot list / restore

chore: lint issue

* test: backups new include patterns
2026-02-18 21:45:19 +01:00
Nico
ca8248b2a0
ui: scroll to error (#541)
* refactor: scroll to first error when submitting a form

* refactor: split file browsers into dedicated components with base

* chore: pr feedbacks
2026-02-18 20:13:09 +01:00
Nico
f059a23ecc
fix: multiple mobile and responsiveness issues (#537)
Some checks failed
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
* fix: multiple mobile and responsiveness issues

fix(mobile): scroll reset on snapshot selection

fix(mobile): layout improvements

refactor(volume-details): improve layout

refactor: better card breakpoints layouts in backps list

fix(ui): keep sidebar in the state it was before reloading

refactor(ui): keep the same grid size in all breakpoints

refactor: manual hotkey devpanel to tanstack hotkeys

* chore: pr feedback
2026-02-17 18:44:22 +01:00
Nico
8e5eb68935
refactor: optimistic ui when deleting a snapshot (#515) 2026-02-14 13:47:09 +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
ec4cf938bc
feat: show progress indicator on mirrors (#499)
* feat: show progress indicator on mirrors

refactor: remove unnecessary useEffects

* refactor: pr feedbacks
2026-02-12 22:27:30 +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
825d46c934
refactor: react-router -> tanstack start (#498)
* refactor: move to tanstack start

* refactor: auth flow & volumes

* refactor: repo & snapshot details

* refactor: backups, create repo, volumes

* refactor: create volume & restore snapshot

* refactor: notifications

* refactor: settings

* refactor: breadcrumbs

* fix: ts issues

* refactor: prod deployment

* fix: import css production

* refactor: nitro build

* refactor: winston -> consola

* fix: memory leak is sse events cleanup

* fix: cli usage

* chore: remove rr routes file

* refactor: pr feedbacks

* refactor: patch api client to have a global client per call

* refactor: pr feedbacks

* fix(dockerfile): add explicit port

* fix(e2e): healthcheck under /api
2026-02-11 21:41:06 +01:00
Nico
b45d36e06a
refactor: make lock errors cleaner and show unlock button (#493)
* refactor: make lock errors cleaner and show unlock button

* chore: pr feedbacks
2026-02-10 20:18:25 +01:00
Nico
09c1cbbb94
feat: show retention tags in snapshots timeline (#462)
* feat: show retention tags in snapshots timeline

* refactor: use button for accesibility
2026-02-08 16:14:43 +01:00
Nicolas Meienberger
1e5921fa61 fix(create-repo): directory selection 2026-02-02 20:34:37 +01:00
Nico
17b4027e0b
refactor: split create schedule form (#453) 2026-02-02 18:18:14 +01:00
Nico
8ced05c5a9
feat: add refresh snapshot list and snapshot error page (#434)
Closes #372
2026-01-29 23:20:13 +01:00
Nicolas Meienberger
0e5438897c fix(repo-mutex): catch errors and remove listener 2026-01-22 22:06:39 +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
Nico
da37b08fa0
feat: user management (#394)
* feat: user management settings

* feat: cleanup user's org when deleting them

* chore: pr feedback

* refactor(create-user): tanstack mutation
2026-01-21 22:25:15 +01:00
Nico
451aed8983
Multi users (#381)
* feat(db): add support for multiple users and organizations

* feat: backfill entities with new organization id

* refactor: filter all backend queries to surface only organization specific entities

* refactor: each org has its own restic password

* test: ensure organization is created

* chore: pr feedbacks

* refactor: filter by org id in all places

* refactor: download restic password from stored db password

* refactor(navigation): use volume id in urls instead of name

* feat: disable registrations

* refactor(auth): bubble up auth error to hono

* refactor: use async local storage for cleaner context sharing

* refactor: enable user registration vs disabling it

* test: multi-org isolation

* chore: final cleanup
2026-01-20 22:28:22 +01:00
Nicolas Meienberger
f4a222aa15 refactor(up/down limit): allow floating value & default to 1 2026-01-15 18:27:50 +01:00
Nicolas Meienberger
1622e34b0d refactoring(bw-limit): stylistic refactoring 2026-01-15 18:07:00 +01:00
Nico
9bff375217 refactor: format dates in a human-friendly way (#334) 2026-01-15 16:13:14 +01:00
Raj Dave
623b4b7116 Remove 'Upload Limit' and 'Download Limit' text 2026-01-13 23:07:03 +03: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
62de036847
refactor: improve perf by calling api in parallel in clientLoaders (#312)
* refactor: improve perf by calling api in parallel in clientLoaders

* fix: dependent api calls
2026-01-05 21:10:00 +01:00
Nicolas Meienberger
3467d1e411 Merge branch 'tvarohohlavy-local-repo-enhancements' 2026-01-05 21:06:59 +01:00
Nicolas Meienberger
b7609a6574 chore: remove needless comments 2026-01-05 21:06:36 +01:00
Nico
b216219209
refactor: move from biome to oxlint/oxformat (#311)
* chore: install and configure oxlint

* chore: fix liniting issues

* chore: install and configure oxfmt

* ci: add oxlint action instead of biome

* chore: pr feedbacks

* Revert "chore: pr feedbacks"

This reverts commit 525dcd8d9f.
2026-01-05 21:04:37 +01:00
Jakub Trávník
86263fede7
Merge branch 'main' into local-repo-enhancements 2026-01-05 08:18:31 +01:00
Nicolas Meienberger
79d5f47b19 chore(repo-form): style adjustments 2026-01-04 15:40:09 +01:00
Jakub Trávník
2d6c9397c0 fix: handle imported repositories correctly in getEffectiveLocalPath
- Imported repositories use config.path directly (matching server logic)
- Removed unused isImportedLocal variable
2026-01-03 12:47:03 +01:00
Jakub Trávník
affe0a45fa Merge origin/main into local-repo-enhancements 2026-01-03 12:42:53 +01:00
Nico
1b88fa6bd6
style: responsive fixes (#282)
Some checks failed
Release Workflow / determine-release-type (push) Has been cancelled
Release Workflow / checks (push) Has been cancelled
Release Workflow / build-images (push) Has been cancelled
Release Workflow / publish-release (push) Has been cancelled
* style(backups): use container queries to avoid overflow when menu is open

* style: fix breadcrumbs breaking the layout on smaller devices

* style: improve wording and error displays

* chore: wording
2026-01-02 22:10:27 +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
Nicolas Meienberger
e0027b7668 refactor: code style and api client 2026-01-02 17:37:38 +01:00
tvories
08a19ed38d fix: PR suggestions 2026-01-02 17:05:43 +01:00
tvories
1a12436195 fix: add property existence checks before accessing repository config fields 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
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
Nicolas Meienberger
52a6ed6070 refactor: import local repositories use path only and not name
Some checks failed
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
a921fa4c80 fix(info): optimize effective local path retrieval in RepositoryInfoTabContent 2025-12-23 12:37:12 +01:00
Jakub Trávník
cd9f5a9bbe feat(ui): improve local repository path display and messaging
- Add shared client constants file with REPOSITORY_BASE
- Show effective local path in repository info tab
- Update host mount warning to clarify default path is safe when using recommended Docker setup
- Update README to clarify local repositories can use custom paths
2025-12-23 12:23:01 +01:00
Nicolas Meienberger
5cc7450ad0 refactor(snapshot-details): make page load faster by not awaiting restic snapshot details 2025-12-22 21:18:56 +01:00
Nico
00f44e4716 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:52:26 +01:00
Jakub Trávník
65655ebb56 fix: ensure safe access to backup name and volume in snapshot filtering 2025-12-22 14:35:37 +01:00
Jakub Trávník
068f9d88b3 feat: display backup schedule and volume information in snapshot details 2025-12-22 14:17:34 +01:00
Jakub Trávník
542842d012 feat: enhance snapshot filtering by including backup schedule names and volumes 2025-12-22 14:17:19 +01:00