FireSquire

FireSquire

apps.detail.types.plugin from Junker der Provinz

apps.detail.sections.overview

Reads the beacon before your reboot catches fire. FireSquire checks, BEFORE you reboot, whether your server will come back up clean - and gives one verdict: GO / CAUTION / NO-GO, with the exact findings. Advisory only: it reads the host and reports, it never changes anything. It catches the reboot landmines that are detectable from the running system: an unclean array or a disabled/invalid disk, a parity/sync/rebuild/clear or mover in progress, a container mounting a host runtime directory or a stuck docker.img/libvirt.img loop, a non-writable flash, low free space, recent kernel/IO errors, running VMs, stopped core services, and SMART health (status + attributes + temperature). Adds a button next to Reboot on the Main tab. Follows your Unraid light/dark theme and language (all 26 supported languages, English fallback).

FireSquire

Build  Lint  Unraid Plugin  Release  License: AGPL-3.0

An Unraid plugin that answers one question before you reboot: will the box come back up clean?
FireSquire reads the live host state and gives you a single verdict — GO / CAUTION / NO-GO — with the exact findings, so you never reboot into a known landmine. Advisory only: it reads, it never touches anything.

Buy me a coffee


Table of Contents

  1. What is this?
  2. Screenshots
  3. What it checks
  4. How it works
  5. Install
  6. Development
  7. License
  8. Support this project

1. What is this?

A reboot is never 100% guaranteed, but a large class of "it didn't come back right" is predictable from the current live state. FireSquire inspects that state before you reboot and gives you a single, honest verdict:

  • GO — nothing found that should block a reboot
  • CAUTION — non-fatal issues you should know about first
  • NO-GO — conditions likely to make the reboot come back dirty

It is advisory only. It reads the system and reports. It never stops, mounts, unmounts, or changes anything — because acting on the host is exactly what tends to cause reboot trouble in the first place.

The plugin adds a FireSquire button next to Reboot on the Main tab, plus a Tools → FireSquire page with a short description. Click it and a live progress bar shows each check as it runs; then read the verdict and reboot with confidence. Each problem finding is a click-through link straight to the page where you fix it — syslog and disk/IO findings open the System Log viewer, array/parity/SMART/space findings open Main, running VMs open the VMs tab, and so on. The report follows your Unraid light/dark theme and the language configured in the Unraid UI (all 26 supported languages, English fallback).


2. Screenshots

FireSquire pre-reboot report with a CAUTION verdict
The pre-reboot report: a single GO / CAUTION / NO-GO verdict with the exact checks behind it. Advisory only — it never changes anything.


FireSquire button next to Reboot on the Main tab
One click from the Main tab — the FireSquire button sits right next to Reboot.


3. What it checks

Critical — a failure here means NO-GO

  • Array started and clean (no disabled / invalid / missing disks)
  • No parity check / sync / rebuild / clear in progress, mover not running
  • No container mounting a host runtime directory (/var/run, /run, /var/run/libvirt, … — docker.sock excepted) — the bind class that can take libvirt/docker down on reboot
  • No stuck docker.img / libvirt.img loop (attached-but-not-mounted, or a loop backing a deleted file)
  • Flash /boot mounted and writable

Caution — worth knowing before you reboot

  • Crashes since last boot in the syslog (segfault, general-protection-fault, OOM, kernel panic, call traces)
  • Low free space on /, /var/log (both RAM), docker.img, cache
  • VMs currently running (a reboot force-stops them)
  • A core service down right now (dockerd / libvirtd / emhttpd)
  • Container bind sources under /mnt that no longer exist
  • SMART health (smartctl -H) on every disk

Info — uptime, kernel, Unraid version.

Honest limits

This is an early-warning check, not an oracle. Genuine hardware, BIOS or timing failures during boot cannot be seen from a running system. What it does cover reliably is the state-detectable class: pinned mounts, stuck loops, an unclean array, in-flight array operations, a low-on-RAM or crash-looping box.


4. How it works

A single Bash engine (firesquire-check.sh) runs the checks by querying the tools Unraid already ships — mdcmd, losetup, docker, smartctl, df, pgrep. No daemon, no dependencies. It prints a human-readable report on a console, or machine-readable JSON for the WebGUI:

firesquire-check.sh          # human-readable report
firesquire-check.sh --json   # machine-readable (used by the WebGUI)

Exit code mirrors the verdict: 0 = GO, 1 = CAUTION, 2 = NO-GO.

The WebGUI layer is a small PHP page (FireSquireReport.php) that runs the engine and renders the verdict in an Unraid modal.


5. Install

Community Apps (planned) — search for FireSquire in the Apps tab.

By URL (today): Unraid → PluginsInstall Plugin, paste:

https://raw.githubusercontent.com/junkerderprovinz/firesquire/main/plugin/firesquire.plg

6. Development

The plugin files live under src/ mirroring the on-disk layout (/usr/local/emhttp/plugins/firesquire/). The release .txz is built by CI on a tagged push (v*) — built on Linux so executable bits are preserved.

Assets (icon, banner) are generated with .github/assets/render-assets.mjs.


7. License

Copyright (C) 2026 Junker der Provinz.

FireSquire is free software under the GNU Affero General Public License v3.0 (AGPL-3.0); see LICENSE. You may run, study, share and modify it. If you distribute it, or run a modified version as a network service, you must release your source under the same AGPL-3.0 terms and keep the existing copyright and attribution notices intact.

Name and branding are not licensed. The AGPL covers the source code only. "FireSquire", its logo and its branding remain reserved: a fork or derivative must use its own distinct name and branding, and may not present itself as FireSquire. This keeps it unambiguous which project is the original.


8. Support this project

If FireSquire saved you a bad reboot, consider buying me a coffee. Thanks!

Buy me a coffee

apps.marketingCta.appInstallTitle

apps.marketingCta.appInstallDescription

apps.installHelp.stepOpen apps.installHelp.stepSearchApp apps.installHelp.stepReview apps.installHelp.stepInstall

apps.detail.sections.categories

apps.downloadStats.title

0
apps.downloadStats.metrics.totalDownloads

apps.downloadStats.monthly.title

apps.downloadStats.chart.loading

apps.detail.sections.related

apps.detail.sections.details

apps.detail.details.repository
https://raw.githubusercontent.com/junkerderprovinz/firesquire/main/plugin/firesquire.plg
apps.detail.details.lastUpdated2026-08-11
apps.detail.details.firstSeen2026-08-11