Skip to content

About

Modern, self-hosted web UI for SnapRAID. Run and schedule sync, scrub and check, monitor SMART disk health, get alerts via ntfy, e-mail or webhook, and edit snapraid.conf with guided disk replacement. Docker image for your home server or NAS with SnapRAID 14 included.

Topics

Resources

Security policy

Stars

16 stars

Watchers

1 watching

Forks

Repository files navigation

SnapRAID UI

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.

CI Docker Pulls Image Size Platforms SnapRAID Docs

Features • Screenshots • Quick start • Documentation • Development

SnapRAID UI dashboard

💡 Why?

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 status output.
  • 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.

✨ Features

📊 Array overview

  • Health, last sync and scrub, scrub coverage, next job
  • Usage, files and parity headroom per disk
  • Usage history and a forecast of when each disk is full

⚡ Commands

  • Sync with preview, scrub plans, status, diff, check, fix
  • Repair and verify bad blocks with one click
  • Recover deleted or encrypted files from parity, picked from a list
  • Live output while a job runs
  • Clear explanations when SnapRAID stops a run for safety

🗓️ Automation

  • Cron schedules without editing a crontab
  • Nightly routine: touch, sync, then scrub
  • Sync guard that skips a sync after mass deletions or mass changes (ransomware)
  • Skip the next run of a schedule, or run it right now
  • Pauses Docker containers during sync and scrub
  • Spins idle disks down, or by hand

🔔 Monitoring

  • SMART health, temperature and failure probability
  • Notices a disk that is not mounted before a sync drops its files
  • Notifications via ntfy, e-mail or webhook, and a heartbeat for healthchecks.io or Uptime Kuma
  • Prometheus metrics for Grafana and alerts
  • Searchable logs of every run

🧰 Disk management

  • Setup wizard: pick your disks, it writes snapraid.conf and runs the first sync
  • Visual and text editor for snapraid.conf
  • Wizards to replace or remove a disk
  • Backup and restore of all settings

🎨 Made for everyday use

  • Light and dark theme, works on the phone
  • Command palette (Ctrl/⌘+K)
  • English, German and Italian, optional login

📸 Screenshots

SMART monitoring with per-disk health and attributes
SMART: health, temperature and failure probability per disk
Log history with run overview
Logs: every run with result, figures and raw output
Scheduled jobs
Schedules: nightly sync with touch and scrub, weekly scrub, SMART check
Notification channels and events
Notifications: ntfy, e-mail or webhook
Command palette
Command palette: run commands and jump to pages
Dashboard on a phone
On the phone

🚀 Quick start

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:latest

Put 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.conf stay valid.
  • --privileged is only needed for SMART data and the disk power state.
  • TZ sets 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.

📖 Documentation

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

🛠️ Development

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 needed

The 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.

🤝 Contributing

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.

About

Modern, self-hosted web UI for SnapRAID. Run and schedule sync, scrub and check, monitor SMART disk health, get alerts via ntfy, e-mail or webhook, and edit snapraid.conf with guided disk replacement. Docker image for your home server or NAS with SnapRAID 14 included.

Topics

Resources

Security policy

Stars

16 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages