Skip to content

Repository files navigation

SnapRAID UI

A modern web interface for SnapRAID.
Sync, scrub, schedule and watch your disks, from any browser, without touching the command line.

CI Docker Pulls Image Size Platforms SnapRAID

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
  • 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

🔔 Monitoring

  • SMART health, temperature and failure probability
  • Notifications via ntfy, e-mail or webhook
  • Searchable logs of every run

🧰 Disk management

  • 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

Everything in detail 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.


License: MIT
Not affiliated with the SnapRAID project. SnapRAID is developed by Andrea Mazzoleni.

About

A modern web interface for managing SnapRAID installations. Easily execute commands, monitor disks, and automate tasks through an intuitive UI.

Topics

Resources

Security policy

Stars

16 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages