Skip to content

Commit

Permalink
chore: update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
garethgeorge committed Nov 17, 2023
1 parent 9cd3758 commit e97b1cd
Showing 1 changed file with 39 additions and 41 deletions.
80 changes: 39 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,46 +1,38 @@
# ResticUI

WIP project to build a UI for restic.

Project goals

* 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

# High Level Goals

* 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.

# Roadmap

- [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.
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.

The goals of the project are:

* 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.

Feature Support

* [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)

## Screenshots

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

Expand All @@ -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 .)
```

0 comments on commit e97b1cd

Please sign in to comment.