chore: update README.md

This commit is contained in:
garethgeorge
2023-11-16 19:59:56 -08:00
parent 9cd37585b3
commit e97b1cd3f4
+33 -35
View File
@@ -1,46 +1,38 @@
# ResticUI
WIP project to build a UI for restic.
ResticUI is a WebUI wrapper for [restic](https://restic.net/). It is intended to be used as a self-hosted application for managing backups of your data.
Project goals
The goals of the project are:
* Single binary for easy and _very lightweight_ deployment with or without containerization.
* WebUI supporting
* Backup plan creation and configuration
* Backup status
* Snapshot browsing and restore
* Single binary deployment: the UI and backend are bundled into a single binary that can be deployed with no dependencies (other than restic!).
* Light weight: the binary weighs in at ~25 MB as of writing and the goal is to keep it in this territory.
* Easy to pull back the curtain: the UI is intended to be a wrapper around restic, but does not preclude using restic commands directly. It's easy to list snapshots directly using restic as a CLI to understand what's being stored.
* Performant
* Low background memory use
* Snapy UI performant leveraging [bbolt](https://github.com/etcd-io/bbolt) as a state store and cache.
# High Level Goals
Feature Support
* Restic repository configuration and initialization
* Multiple backup plans with independent file sets, schedules, etc can be configured and store data to a single repository definition.
* Backup status info at a glance
* Shows health of last backup operation attempted for a given repository.
* Shows health of last backup operation attempted for a given plan.
* Support for browsing snapshots belonging to a given repository.
* Support for browsing snapshots belonging to a given plan.
* [x] Configure multiple restic repositories
* [x] Configure multiple backup plans for each repository
* [x] Execute scheduled backup operations e.g. on a cron schedule
* [x] Execute manually triggered backup operations
* [x] Browse backup operation history
* [x] Browse snapshot history
* [x] Browse files in a snapshot
* [ ] Restore files from a snapshot (use restic UI to identify a snapshot to restore, use restic cli to restore it today)
* [ ] Prune snapshots after backup operations (recommend periodically running `restic prune` on the CLI until this feature is supported)
# Roadmap
## Screenshots
- [x] Restic repository configuration and initialization
- [x] Backup plan configuration
- [ ] Health checks in backend/GUI
- [ ] Backend state store
- [ ] Health status view for repos
- [ ] Health status view for plans
- [ ] Backup operation
- [X] Backend implementatio
- [ ] Backup command in UI
- [ ] Snapshot browser
- [X] Backend snapshot listing
- [ ] Snapshot browser GUI on repo view
- [ ] Snapshot browser GUI on backup plan view
- [ ] Operation history
- [ ] Backend operation tracking in state store e.g. log of backup operations, cleanup operations, etc.
- [ ] Scheduler log stored on plan?
- [ ] Operation result log stored on repo?
- [ ] Operation history GUI on repo view.
- [ ] Operation history GUI on plan view.
Configuring a backup plan:
![Configure Backup Plan](./screenshots/screenshot-add-plan.png)
Running backup operation:
![Backup Running](./screenshots/screenshot-backup-running.png)
Browsing snapshots:
![Browse Backup](./screenshots/screenshot-browse.png)
# Dependencies
@@ -56,3 +48,9 @@ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
go install github.com/bufbuild/buf/cmd/buf@v1.27.2
```
## Building
```sh
(cd webui && npm run build)
(cd cmd/resticui && go build .)
```