Commit graph

218 commits

Author SHA1 Message Date
Nico
28ba8657f9
feat(runtime): start and ship the local agent (#767)
* feat(runtime): start and ship the local agent

* refactor: gate local agent behind feature flag

* chore: skip agent manager if flag is false

* fix: hot reload agents

* test: fix config tests
2026-04-10 00:00:30 +02:00
Nico
5bcc3acc56
feat(controller): add agent manager and session handling (#763) 2026-04-09 20:00:54 +02:00
Nico
c371676ad0
feat(agent): add standalone agent runtime (#761)
* feat(agent): add standalone agent runtime

* fix(backups): bridge local executor to Effect restic API

* fix(agent): add Bun and DOM types to agent tsconfig

* refactor: wrap backup error in a tagged effect error

* fix: pr feedbacks
2026-04-08 20:47:15 +02: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
Nicolas Meienberger
8d7e50508d refactor: system-info hook 2025-11-11 21:48:42 +01:00
Nicolas Meienberger
52e38a6242 refactor: rclone system capability 2025-11-11 21:44:04 +01:00
Nicolas Meienberger
36b0282d18 feat(frontend): rclone repositories config 2025-11-11 21:31:10 +01:00
Nicolas Meienberger
8f9873148a feat(repositories): rclone backends 2025-11-11 20:42:44 +01:00
Nicolas Meienberger
a1cc89c66e fix: ensure caching in file explorers 2025-11-11 18:01:54 +01:00
Nicolas Meienberger
ff7f6ffad9 feat(repositories): azure blob storage 2025-11-10 21:07:12 +01:00
Nicolas Meienberger
e98c0af8ca feat(repositories): add google cloud storage support 2025-11-10 21:04:08 +01:00
Nicolas Meienberger
d31fa8d464 chore: small improvements 2025-11-10 21:03:37 +01:00
Nicolas Meienberger
bf33b15b3e fix: cleanup volumes on shutdown
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-11-10 07:08:51 +01:00
Nicolas Meienberger
2b0fea9645 fix(mounts): use bun shell instead of execFile
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-11-10 06:52:14 +01:00
Nicolas Meienberger
4ddc45a74f style(create-schedule): fix explorer width on mobile
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-11-09 14:19:34 +01:00
Nicolas Meienberger
2aa90ec44d feat: exclude patterns 2025-11-09 14:09:49 +01:00
Nicolas Meienberger
2ec8d4c1dd chore: small fixes 2025-11-09 12:34:12 +01:00
Nicolas Meienberger
4b981bdcac style: use card in backup progress waiting 2025-11-09 12:25:41 +01:00
Nicolas Meienberger
5e908dc945 feat: backup progress 2025-11-09 12:25:41 +01:00
Nicolas Meienberger
5f35cfd4c2 feat: throttle logs during backup 2025-11-09 12:25:41 +01:00
Nicolas Meienberger
1152939373 feat: repository doctor always visible 2025-11-09 12:25:41 +01:00
Stavros
db0d153610 chore: format 2025-11-09 13:16:14 +02:00
Stavros
ffca433a43 fix: accessibility and responsiveness fixes 2025-11-09 13:04:14 +02:00
Nicolas Meienberger
3e80850396 fix(backup): only keep last line of stdout in memory
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-11-08 23:41:29 +01:00
Nicolas Meienberger
5f620b4c45 feat: allow stopping an ongoing backup
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-11-08 23:26:53 +01:00
Nicolas Meienberger
3abf8ab12d fix: skip backups if in_progress
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-11-08 18:19:49 +01:00
Nicolas Meienberger
b5ba03da3d feat: download recovery file restic password 2025-11-08 17:52:43 +01:00
Nicolas Meienberger
b289920720 fix: timeout statfs
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-11-08 16:52:58 +01:00
Nicolas Meienberger
ef5d95d347 refactor: consolidate page titles 2025-11-08 14:04:06 +01:00
Nicolas Meienberger
1c4b1f34dd fix: get correct volume path for directories 2025-11-08 11:19:22 +01:00
Nicolas Meienberger
11dd6f46c8 feat: sse for volume status change 2025-11-08 11:07:09 +01:00
Nicolas Meienberger
fd3a527164 feat: sse events 2025-11-08 11:06:26 +01:00
Nicolas Meienberger
5b4b571581 feat: local volume explore file system 2025-11-08 11:00:18 +01:00
Nicolas Meienberger
4aeebea5b2 refactor: consolidate all data in /var/lib/ironmount 2025-11-08 10:40:25 +01:00
Nicolas Meienberger
ba08c97681 feat: backup in progress status 2025-11-08 10:33:08 +01:00
Nicolas Meienberger
42497be4b5 feat: host/proc optional capability 2025-11-08 10:26:50 +01:00
Nicolas Meienberger
9d27bffc21 feat: docker optional capability 2025-11-08 10:16:18 +01:00
Nicolas Meienberger
9ec765bd90 feat: system optional capabilities 2025-11-08 10:14:42 +01:00
Nicolas Meienberger
4dc239139f feat(repositories): healthchecks and doctor command 2025-11-08 10:11:07 +01:00
Nicolas Meienberger
f5339d3708 feat(volumes): read only mount mode 2025-11-08 10:01:54 +01:00
Nicolas Meienberger
418369c4ad feat(settings): change password 2025-11-08 09:47:10 +01:00
Nicolas Meienberger
195aea052e refactor(backup-details): load snapshots after page load 2025-11-08 09:24:30 +01:00
Nicolas Meienberger
c32eb0831f fix: favicon and background image serving 2025-11-07 19:26:37 +01:00
Nicolas Meienberger
885ae02b18 fix: error details visible in backup page 2025-11-07 19:19:02 +01:00
Nicolas Meienberger
8f1e24a034 chore: update readme
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-11-05 22:17:11 +01:00
Nicolas Meienberger
1e68339dd9 style: fix snapshots table 2025-11-05 22:00:39 +01:00
Nicolas Meienberger
941be2f306 style(snapshots): fix margin in timeline 2025-11-05 21:31:49 +01:00
Nicolas Meienberger
99d4d46338 feat(restore): delete files not in snapshot option 2025-11-05 19:00:44 +01:00
Nicolas Meienberger
ab997ef450 feat: restore alert dialog 2025-11-05 18:36:48 +01:00
Nicolas Meienberger
9ee5871fbb feat: restore 2025-11-05 18:30:10 +01:00
Nicolas Meienberger
01c2a3669c refactor(backups): tag snapshots by backup id and run forget by grouping first by tags 2025-11-04 20:13:00 +01:00
Nicolas Meienberger
ecd517341c fix(backup-details): re-fetch when selected snapshot is changed 2025-11-04 18:41:30 +01:00
Nicolas Meienberger
ef27ab8ed8 fix(file-tree) select parent even if children are not loaded yet 2025-11-04 18:13:35 +01:00
Nicolas Meienberger
d1e46918ec refactor: simplify snapshot file explorer 2025-11-04 18:01:37 +01:00
Nicolas Meienberger
11ca80a929 feat: backup details snapshots timeline & file explorer 2025-11-03 22:03:55 +01:00
Nicolas Meienberger
f2643436b0 refactor: snapshots flat response 2025-11-03 21:54:31 +01:00
Nicolas Meienberger
acc5f44565 feat: select folders to backup when creating a job 2025-11-02 19:16:24 +01:00
Nicolas Meienberger
ccfa5e35e9 refactor: delete alert dialogs 2025-11-02 16:55:24 +01:00
Nicolas Meienberger
c2041932b5 feat: delete backup schedule 2025-11-02 16:52:25 +01:00
Nicolas Meienberger
44917f3513 fix(create-backup): missing submit button 2025-11-02 16:47:42 +01:00
Nicolas Meienberger
3e514e61db feat(backups): add backup card 2025-11-02 16:42:21 +01:00
Nicolas Meienberger
67e7d36fe7 refactor(ui): use dot for backup status 2025-11-02 16:36:02 +01:00
Nicolas Meienberger
8f447ac58d refactor: use correct namings 2025-11-02 16:05:22 +01:00
Nicolas Meienberger
3befa127d7 refactor: frontend components consolidation 2025-11-01 19:42:13 +01:00
Nicolas Meienberger
18115b374c feat(frontend): backup jobs page 2025-11-01 17:09:43 +01:00
Nicolas Meienberger
d81f3653ec feat: run backup now 2025-10-31 22:16:31 +01:00
Nicolas Meienberger
c64e50bdec chore: drizzle config root 2025-10-31 22:05:28 +01:00
Nicolas Meienberger
afeaf87bb0 refactor(utils): use nsenter only if /host/proc is mounted 2025-10-31 22:04:55 +01:00
Nicolas Meienberger
ee79fce2aa feat(frontend): restore whole snapshot 2025-10-31 21:52:54 +01:00
Nicolas Meienberger
c7db88fb56 feat(snapshot): backend restore api 2025-10-31 21:15:43 +01:00
Nicolas Meienberger
5846c1ff86 feat: snapshot files list frontend 2025-10-30 19:01:49 +01:00
Nicolas Meienberger
b80a187108 feat(snapshots): list files in snapshots api 2025-10-30 18:58:57 +01:00
Nicolas Meienberger
ed73ca73fb refactor(snapshots): unify tables in a single component 2025-10-30 18:38:05 +01:00
Nicolas Meienberger
bd168df352 style(layout): fix header sticky
style(layout): fix unnecessary scroll
2025-10-30 18:22:53 +01:00
Nicolas Meienberger
cce2d356fe feat: backup schedule frontend 2025-10-30 18:18:11 +01:00
Nicolas Meienberger
9628310d53 refactor(backups): use upsert instead of create/update split 2025-10-29 21:14:41 +01:00
Nicolas Meienberger
e335133237 fix(restic): unlock repo before trying to backup 2025-10-29 19:16:20 +01:00
Nicolas Meienberger
b188a84af3 refactor: simplify dtos and improve type saftey in json returns 2025-10-29 18:28:00 +01:00
Nicolas Meienberger
d1c1adaba7 feat: backup schedule creation form 2025-10-28 22:34:56 +01:00
Nicolas Meienberger
37a22b260f fix(login/onboarding): redirect to dashboard if already logged in 2025-10-25 22:46:37 +02:00
Nicolas Meienberger
a7bc1c2e7e refactor: bind /proc and mount volumes with nsenter 2025-10-25 22:30:33 +02:00
Nicolas Meienberger
43e31596f1 feat(backend): backup service with retention policy 2025-10-25 20:38:13 +02:00
Nicolas Meienberger
2202ad3247 refactor(backend): better job scheduling pattern 2025-10-25 17:46:01 +02:00
Nicolas Meienberger
47ff720adb style(auth): redesign login and onboarding pages 2025-10-25 17:12:43 +02:00
Nicolas Meienberger
d58c4f793d feat: enable restic cache 2025-10-23 21:10:36 +02:00
Nicolas Meienberger
f7718055eb feat: repositories snapshots frontend 2025-10-23 20:55:44 +02:00
Nicolas Meienberger
cae8538b2e feat(repositories): list snapshots api 2025-10-23 20:22:09 +02:00
Nicolas Meienberger
4ae738ce41 refactor: use schema constants 2025-10-23 19:25:12 +02:00
Nicolas Meienberger
8b1438ea62 feat: repositories frontend 2025-10-23 19:14:03 +02:00
Nicolas Meienberger
9d10e48da6 style: logo header 2025-10-22 22:16:29 +02:00
Nicolas Meienberger
a927411c0d style: full width design 2025-10-22 21:28:14 +02:00
Nicolas Meienberger
a64de8ec78 refactor: / -> /volumes 2025-10-21 21:03:38 +02:00
Nicolas Meienberger
6960b4d71e feat: sidebar 2025-10-21 20:45:20 +02:00
Nicolas Meienberger
06cb401cf7 fix(lifecycle): catch error on startup 2025-10-21 20:30:42 +02:00
Nicolas Meienberger
0090c3c43c refactor(schemas): move restic schemas to a subfolder 2025-10-21 19:57:04 +02:00
Nicolas Meienberger
100c24de13 feat: encrypt repository credentials at rest 2025-10-18 15:15:30 +02:00
Nicolas Meienberger
6e8aa4b465 feat: repositories controller and service for crd 2025-10-18 14:23:42 +02:00
Nicolas Meienberger
ad54948a69 refactor: use getVolumePath helper 2025-10-17 23:39:16 +02:00
Nicolas Meienberger
5b6a86331e fix(list): copy path to clipboard 2025-10-17 23:26:58 +02:00
Nicolas Meienberger
8fcc9ada74 feat: cleanup dangling volumes and folders on startup and on schedule
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-10-17 23:01:47 +02:00