resticview/README.md

72 lines
2.7 KiB
Markdown

# resticview
A TUI browser for restic backup repositories. Browse snapshots, explore the file tree of any snapshot, and restore whole snapshots or single paths on demand.
## Installation
### macOS (Homebrew)
```bash
brew tap janvete/tools https://git.janvete.com/seth/homebrew-tools.git
brew install resticview
```
### Debian / Ubuntu (.deb)
Add the janvete APT repository and install:
```bash
echo "deb [trusted=yes] https://git.janvete.com/seth/apt/raw/branch/main ./" | sudo tee /etc/apt/sources.list.d/janvete.list
sudo apt update
sudo apt install resticview
```
### Prebuilt binaries
Each [release](https://git.janvete.com/seth/resticview/releases) also ships standalone binaries: `resticview-macos` (Apple Silicon) and `resticview-linux` (x86_64). Put the file on your `PATH` and make it executable:
```bash
chmod +x resticview-linux
sudo mv resticview-linux /usr/local/bin/resticview
```
### From source
```bash
cargo install --git ssh://git@git-ssh.janvete.com:554/seth/resticview
```
`restic` must be installed and on `PATH`.
## Usage
resticview reads restic credentials (`RESTIC_REPOSITORY`, `RESTIC_PASSWORD`, …) from env files stored in `~/.restic`. It picks up every hidden file (name starting with `.`, e.g. `.env`, `.hetzner`) directly in that directory as well as inside hidden subdirectories, one level deep (e.g. `~/.restic/.work/.env`). If several env files are found, a picker is shown; with exactly one it is loaded directly.
```bash
resticview # use env files from ~/.restic
resticview --env-dir DIR # use a different env directory
resticview --select # always show the env file picker
```
The main view has three panels: snapshots (left), the file tree of the selected snapshot (middle), and repository / snapshot info (right). The right panel shows the repository name, env file, total snapshot count, and details of the selected snapshot (time, host, user, paths, tags). The focused panel has a highlighted border.
Restore (`r`) asks for a target directory (pre-filled with `~/restic-restore-<id>`), asks for confirmation, and then runs `restic restore` in the background. With the focus on the snapshot list the whole snapshot is restored; with the focus on the file tree only the selected path is restored (`--include`).
## Controls
| Key | Action |
|-----|--------|
| `q` / `Ctrl-C` | quit |
| `Tab` / `Shift-Tab` | cycle focus between panels |
| `j` / `k` or `↓` / `↑` | move selection / scroll |
| mouse wheel | scroll the focused panel |
| `Enter` | expand/collapse directory (Files panel) |
| `h` / `l` or `←` / `→` | collapse / expand directory |
| `g` / `G` | jump to top / bottom |
| `r` | restore selected snapshot or path |
| `R` | refresh snapshots |
| `Esc` | close prompt / dialog, clear status |
## License
MIT