All apps · 0 apps
ReelSentry
Plugin from BGriffin63
Overview
Readme
View on GitHub
ReelSentry
Monitor every VM. Know when something changes.
Beta software. ReelSentry is feature-complete for public testing but has not yet been validated on a broad matrix of real Unraid 7.2 hardware. See Known limitations and
docs/TESTING.md. Try it on a test system first.
ReelSentry is a native Unraid plugin that watches your virtual machines and tells you when something changes — a VM starts, stops, shuts down, crashes, pauses, resumes, or reboots. It records a local event history, sends alerts through Unraid's built-in notification system, and can optionally post rich alerts to a Discord webhook (no bot required).
It is fail-open by design: a problem inside ReelSentry can never stop a VM from starting, stopping, or changing state.
What it does
- Lifecycle monitoring through a namespaced libvirt hook that coexists with other plugins — it never replaces Unraid's shared QEMU hook.
- Honest classification — ReelSentry labels a stop as normal, unexpected, or reason could not be determined. It never pretends every stop is a crash.
- Native Unraid notifications — alerts flow through whatever agents you already configured (email, Discord/Telegram/Pushover agents, browser).
- Optional Discord webhook with rich embeds, severity colors + text, and optional role/user mentions.
- Optional agentless health checks — ICMP ping, TCP port, or QEMU guest agent — with thresholds so you're alerted only on confirmed failure and recovery, not every blip.
- Event history — searchable, filterable, exportable (CSV/JSON), bounded by retention so it never fills your disk.
- Quiet hours & maintenance suppression, per-event cooldowns, and deduplication to keep the noise down.
- Diagnostics with a one-click sanitized support bundle.
Key features at a glance
| Area | Highlights |
|---|---|
| Safety | Fail-open hook, no network on the critical path, no VM XML changes, no inbound ports |
| Privacy | No telemetry; the only outbound traffic is your Discord webhook + Unraid's local notifier |
| Notifications | Native Unraid + Discord webhook; per-VM, per-event toggles; test buttons |
| Health | ICMP / TCP / guest-agent; stateful thresholds; startup grace period |
| Storage | Config on flash (tiny, atomic); history in appdata (rotated); runtime in RAM |
Screenshots
Screenshots live in docs/screenshots/ (placeholders until captured on real
hardware): Overview, VM configuration, Notifications, Event history, Diagnostics.
Supported Unraid versions
- Minimum: Unraid 7.2.0 (x86-64). See
docs/RESEARCH.mdfor why. Older releases are not supported.
Installation (Community Applications)
Once accepted into Community Applications:
- Open Apps in Unraid.
- Search ReelSentry.
- Click Install.
- Open Settings → ReelSentry.
Manual installation (for testing)
- In Unraid, go to Plugins → Install Plugin.
- Paste the raw
.plgURL:https://raw.githubusercontent.com/BGriffin63/ReelSentry/main/reelsentry.plg - Click Install. ReelSentry verifies your Unraid version and package checksum, installs its files, installs the libvirt hook, and starts its background service.
Basic setup
- Settings → ReelSentry → Notifications → turn Enable monitoring on.
- VMs tab → pick which VMs to watch and which events matter.
- Leave native Unraid notifications on (default).
- (Optional) paste a Discord webhook and click Send test.
- (Optional) configure health checks per VM.
- Click Send test notification, confirm you receive it, and you're done.
Sensible defaults: crash and unexpected/indeterminate-stop alerts on; start, pause, resume, reboot alerts off; Discord and health checks off until you configure them; debug logging off.
Native notification setup
ReelSentry uses Unraid's own notification system, so configure your delivery methods under Settings → Notifications (email/agents). Anything you enable there receives ReelSentry alerts automatically.
Discord webhook setup
See docs/DISCORD-SETUP.md. In short: create a channel
webhook in Discord, copy its URL, paste it into ReelSentry, and send a test.
No Discord bot is required. Treat the webhook URL like a password — VM
Sentinel stores it with restricted permissions and redacts it everywhere.
Health-check setup
Per VM you can enable one agentless check:
- Ping (ICMP) — is the VM reachable at an IP/host?
- TCP port — is a service listening (e.g. SSH 22, RDP 3389, Home Assistant 8123)?
- QEMU guest agent — is the guest agent responding? (requires the agent in the guest)
Set the failure/recovery thresholds and a startup grace period so a booting VM
isn't reported unhealthy while its OS comes up. Details in
docs/CONFIGURATION.md.
Security & privacy summary
- No telemetry, no analytics, no ads, no calls to developer servers.
- No inbound ports; no standalone API; no network listener.
- The Discord webhook is the only user-configured outbound destination.
- Secrets stored
0600, redacted in logs, diagnostics, and exports. - Full threat model:
docs/SECURITY.md.
Data-storage locations
| Data | Location | Notes |
|---|---|---|
| Configuration | /boot/config/plugins/reelsentry/config.json |
Tiny, atomic writes, survives reboot |
| Secrets | /boot/config/plugins/reelsentry/secrets.json |
0600, webhook only |
| Event history | /mnt/user/appdata/reelsentry/history/ |
Rotated JSON Lines; falls back to /var/log |
| Runtime (spool/locks/health) | /var/run/reelsentry/ |
tmpfs; never on the flash |
Uninstall behavior
Removing the plugin stops the service, removes only ReelSentry's own libvirt
hook, and clears runtime state. Your config/history under
/boot/config/plugins/reelsentry/ is kept by default; delete that folder to
fully remove everything. Running VMs are never affected. See
docs/TROUBLESHOOTING.md.
Troubleshooting
Start with Settings → ReelSentry → Diagnostics and
docs/TROUBLESHOOTING.md.
Support
- Issues: GitHub Issues on this repository.
- Community thread:
Will Create Later. - Security reports: see
.github/SECURITY.md.
Contributing
See CONTRIBUTING.md and docs/DEVELOPMENT.md.
Run scripts/lint.sh and scripts/test.sh before opening a PR.
Known limitations
- Not yet validated across real Unraid 7.2 hardware. The libvirt
qemu.d/hook mechanism and Unraidnotifyflags are documented but must be confirmed on-device (seedocs/RESEARCH.md§7). - Intent detection is honest, not perfect — libvirt does not always reveal why a VM stopped; ReelSentry says so rather than guessing "crash."
- No automatic VM restart/recovery in v1 (by design).
- QEMU guest-agent health check requires the agent inside the guest.
License
MIT. The logo and assets are original and licensed with the project.
Non-affiliation
ReelSentry is an independent community project for Unraid OS and is not affiliated with or endorsed by Lime Technology, Inc. "Unraid" is a trademark of Lime Technology, Inc.
Install ReelSentry on Unraid in a few clicks.
Find ReelSentry in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Download Statistics
Downloads by Month
Related apps
Explore more like this
Explore allDetails
https://raw.githubusercontent.com/BGriffin63/ReelSentry/main/reelsentry.plg