ResticUI is a WebUI wrapper for restic. 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 as a state store and cache.
Feature Support
- Configure multiple restic repositories
- Configure multiple backup plans for each repository
- Execute scheduled backup operations e.g. on a cron schedule
- Execute manually triggered backup operations
- Browse backup operation history
- Browse snapshot history
- 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)
apt install -y protobuf-compiler
go install \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest \
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest
go install github.com/grpc-ecosystem/protoc-gen-grpc-gateway-ts@latest
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
(cd webui && npm run build)
(cd cmd/resticui && go build .)