A lightweight web dashboard for monitoring restic backup repositories. Built with Spring Boot 4, Thymeleaf, and Bootstrap 5.
- Multi-Repository Dashboard — monitor all your restic repos in one place with status badges, groups, and lock warnings
- Automated Scanning & Integrity Checks — scheduled
restic snapshotsandrestic check --read-data - Retention Policies — advisory daily/weekly/monthly/yearly rules with amber violation warnings
- Health Endpoint —
/actuator/healthwith per-repo scan, check, and retention status for integration with external monitoring - Encrypted Credentials — AES-256-GCM at rest for passwords and backend keys
- Dark Mode & Responsive UI — Bootstrap 5.3 with automatic light/dark theme
| Backend | URL Format | Details |
|---|---|---|
| Amazon S3 / S3-Compatible | s3:https://s3.amazonaws.com/bucket/path |
Access Key, Secret Key, Region |
| Azure Blob Storage | azure:container:/path |
Account Name, Account Key |
| SFTP | sftp:user@host:/path |
Key-based auth only (tutorial) |
| REST Server | rest:http://host:8000/ |
Optional HTTP basic auth (tutorial) |
| Rclone | rclone:remote:path |
Any rclone-supported backend (tutorial) |
docker compose up --build -dOpen http://localhost:8080 and create the admin account on first launch.
docker pull tmseidel/restic-explorer:latestSee Configuration → Docker Hub Image for a full docker-compose.yml.
mvn spring-boot:run # Start with H2 file DB
mvn test # Run tests (H2 in-memory)
mvn clean package # Build jarRequires Java 21+ and restic on PATH.
| Dashboard | Snapshots | Snapshot Detail |
|---|---|---|
![]() |
![]() |
![]() |
| Document | Description |
|---|---|
| User Guide | Setup, adding repositories, browsing snapshots, retention policies |
| Configuration | Properties, Docker env vars, encryption, deployment, migration |
| Architecture | System design, data model, extensibility, technology stack |
| SFTP Testing | SFTP backend setup tutorial |
| REST Server Testing | REST server backend setup tutorial |
| Rclone Testing | Rclone backend setup tutorial |
| Contributing | How to contribute |
| Code of Conduct | Community guidelines |
MIT — © 2026 Tom Seidel


