A modern, self-hosted web interface for SnapRAID.
Sync, scrub, schedule and watch your disks and their SMART health from any browser, without touching the command line.
One Docker image for your home server or NAS, with SnapRAID 14 included.
Features • Screenshots • Quick start • Documentation • Development
SnapRAID is a great way to protect a home server's disks, but day to day it means cron jobs, log files and remembering the right flags. SnapRAID UI puts all of it in one place:
- See the state of your array at a glance instead of reading
snapraid statusoutput. - Run and schedule jobs with a click, with live output and a log of every run.
- Hear about problems right away through push, e-mail or webhook, before a second disk fails.
- Get guided through the hard parts, like replacing a failed disk or a run SnapRAID stopped for safety.
|
|
|
|
|
|
The Docker image ships with SnapRAID 14, so nothing needs to be installed on the host.
docker run -d --name snapraid-ui \
--privileged \
-p 3000:80 \
-e TZ=Europe/Berlin \
-e SNAPRAID_UI_USERNAME=admin \
-e SNAPRAID_UI_PASSWORD=change-me \
-v ./snapraid:/app/snapraid \
-v /mnt/disk1:/mnt/disk1 \
-v /mnt/disk2:/mnt/disk2 \
-v /mnt/parity:/mnt/parity \
tristanteu/snapraid-ui:latestPut your snapraid.conf into ./snapraid/ (or add or create one under Manage Configurations) and open
http://localhost:3000.
- Mount your disks at the same paths as on the host, so the paths in
snapraid.confstay valid. --privilegedis only needed for SMART data and the disk power state.TZsets the time zone your schedules run in (UTC otherwise).- Prefer Compose or Podman? See Installation.
Important
Use the bundled SnapRAID rather than your distribution's. The UI reads SnapRAID's structured log, which exists only since version 14.0, and most distributions still ship 12.x. If cron jobs on the host run SnapRAID for the same array, move them to the UI's scheduler.
The full documentation, with search, is at firsttris.github.io/snapraid-ui. Its source lives in docs/.
| Installation | Docker, Compose and Podman, disks and paths, reverse proxy, updates |
| Configuration | Environment variables, data directory, log retention |
| Using SnapRAID UI | Dashboard, commands, reports, safety stops, command palette |
| Scheduling · Notifications | Automate jobs and get told when something goes wrong |
| SMART & disk health · Logs | What the UI watches and how to read it |
| Managing disks | Config editor, adding, replacing and removing disks, backup |
| Security · Troubleshooting | Login and exposure, common problems |
| Architecture · Development | How it works, API, contributing |
Requires Node.js 22+, Deno 2.5+ and the fish shell for start.sh.
git clone https://github.com/firsttris/snapraid-ui && cd snapraid-ui
./install.sh
./start.sh --demo # sandbox with fake disks, no real array neededThe frontend runs on http://localhost:3000, the API on http://localhost:8080. Built with Deno + Hono, React 19, TanStack Start, Tailwind CSS and shadcn/ui. See Development for the project layout, tests and translations.
Issues and pull requests are welcome. Please run npx biome check, npm run typecheck and the tests
(deno test --allow-all in backend/, npm test in frontend/) before opening a pull request.
Changes to jobs, schedules or the Docker image are also covered by the end-to-end tests in e2e/,
which CI runs against the local build and the image; see Development to run them locally.
⭐ Like SnapRAID UI? A star on GitHub helps others find it.
🐛 Report a bug · 💡 Request a feature
License: AGPL-3.0 · © Tristan Teufel and contributors
Changed versions you pass on or run for others must offer their source code under the AGPL; a commercial license without these obligations is available via teufel-it.de.
Not affiliated with the SnapRAID project. SnapRAID is developed by Andrea Mazzoleni.





