95 lines
1.8 KiB
Markdown
95 lines
1.8 KiB
Markdown
# Satoru Quick Start
|
|
|
|
Satoru is a web app that pulls backups from Linux hosts over SSH, stores them in a local restic repo, and can sync to Backblaze B2.
|
|
|
|
## 1. Prerequisites
|
|
|
|
Install these tools on the Satoru host:
|
|
|
|
- `go` (1.25+)
|
|
- `restic`
|
|
- `rsync`
|
|
- `ssh`
|
|
- `b2` (optional, needed for B2 features)
|
|
|
|
## 2. Run Satoru
|
|
|
|
```bash
|
|
cd /Users/peterli/git/satoru
|
|
go run ./cmd/satoru
|
|
```
|
|
|
|
Open:
|
|
|
|
- [http://localhost:8080](http://localhost:8080)
|
|
|
|
On first boot, Satoru will:
|
|
|
|
- create `data/satoru.conf` if missing
|
|
- auto-generate `RESTIC_PASSWORD` in that config if no explicit password is set
|
|
|
|
## 3. Configure (optional but recommended)
|
|
|
|
Edit:
|
|
|
|
- `/Users/peterli/git/satoru/data/satoru.conf`
|
|
|
|
Useful keys:
|
|
|
|
```bash
|
|
RESTIC_PASSWORD=your-local-restic-password
|
|
RESTIC_PASSWORD2=your-b2-restic-password
|
|
B2_APPLICATION_ID=your-b2-key-id
|
|
B2_APPLICATION_KEY=your-b2-application-key
|
|
B2_EXECUTABLE_PATH=/opt/homebrew/bin/b2
|
|
SATORU_RESTIC_B2_REPOSITORY=b2:your-bucket:satoru-repo
|
|
```
|
|
|
|
Then restart Satoru.
|
|
|
|
## 4. First Login
|
|
|
|
The first account you create is admin.
|
|
|
|
- Sign up with username + password
|
|
- Sign in
|
|
|
|
## 5. Add a Site
|
|
|
|
In the dashboard:
|
|
|
|
1. Add `SSH User`, `Server`, and `Port`
|
|
2. Add one or more directory/file paths
|
|
3. Add optional SQLite paths
|
|
4. Save
|
|
|
|
You can also add MySQL dump operations per site (host/user/db/password).
|
|
|
|
## 6. Run a Backup
|
|
|
|
On a site card, click:
|
|
|
|
- `Run backup`
|
|
|
|
Watch progress in:
|
|
|
|
- sidebar health
|
|
- active site logs
|
|
- per-target status
|
|
|
|
## 7. Sync to B2
|
|
|
|
After local backups exist:
|
|
|
|
- click `Sync to B2` on the site
|
|
|
|
If B2 repo is not initialized yet, use:
|
|
|
|
- `Initialize B2 Repo` button in runtime checks section
|
|
|
|
## Notes
|
|
|
|
- Site selection is remembered in the browser.
|
|
- Backups are tagged per site in one local restic repo.
|
|
- If a job gets stuck, use `Cancel` and re-run.
|