System Check
A one-click dependency audit that scans the host for every binary, service, library, and kernel module WolfStack touches — and tells you exactly what's broken and how to fix it.
Why it exists
WolfStack integrates with dozens of external tools — Docker, QEMU, LXC, iptables, dnsmasq, pppd, ethtool, tcpdump, fuse3, s3fs, NFS — and a missing or broken dependency can cause confusing symptoms ("app store installs fail on server B but work on server A"). System Check surfaces those gaps instantly instead of making you hunt through logs.
How to use it
- Go to Settings → System Check
- Click Run Check
- Review the results grouped by category: Core, Containers, Virtualisation, Networking, Storage, USB
Status levels
| Status | Meaning |
|---|---|
| OK | Installed and healthy — nothing to do. |
| Warning | Installed but something looks off (service stopped, missing permissions, kernel module not loaded). The install hint and AI button help you fix it. |
| Missing | Not installed — some WolfStack feature will not work. A distro-specific install command is shown. |
| Unsupported | Not available on this OS or architecture (e.g. s3fs on Alpine, QEMU on ppc64le for x86 ISOs). Nothing to fix — it's a platform limitation. |
Docker deep-check
The Docker check goes beyond "is the binary on PATH". It runs docker info to verify the daemon is actually reachable. This catches:
- Service stopped —
systemctl enable --now docker - Permission denied — current user not in the
dockergroup - Socket missing — Docker installed via snap or rootless and socket isn't at the expected path
AI-powered remediation
When the AI Agent is configured, each Warning or Missing row gets an Ask AI button. The AI receives the check details plus your host OS, architecture, and distro family, and returns concrete, distro-aware remediation steps you can run right now.
One-click Install button New
For the common case of "this dependency is missing" WolfStack now ships a 📦 Install button next to each Missing row. One click installs the package via your distro's package manager and enables any associated systemd unit. No SSH needed, no "what's the package called on Arch again?" copy-paste hunt.
Under the hood it POSTs to /api/system/install-package with a logical package name (cron, qemu, libvirt, etc.). The server looks the name up in a fixed allowlist — not a free-form shell escape hatch — maps to the per-distro package (cron on Debian, cronie on Arch & Fedora, cron on SUSE…), runs the right package manager, verifies the binary actually appeared on PATH, and enables + starts the service unit where there is one (cronie.service, libvirtd.service, sshd.service).
Packages in the allowlist today: cron, tcpdump, conntrack, iptables, dnsmasq, qemu, libvirt, openssh-server, wireguard-tools, nftables, bind-utils. Expands as WolfStack grows features that need new system packages — the allowlist is the gate.
Arch Linux gets a fair shake New
Arch ships zero cron daemon by default, which quietly broke Settings → Cron and any scheduled-task feature the moment you landed on a fresh install. System Check now has a dedicated Scheduling category:
- crontab binary present — red on Arch/Alpine by default, green after installing cronie.
- cron daemon running — probes
cronie,cron,crond, andvixie-cronservice names so whichever package your distro uses, we notice. Yellow warning if the binary is there but the service is stopped; install hint tells you the rightsystemctl enable --nowto run. - Install button installs cronie and starts the service in one click.
Checks performed
Coverage:
- Core — Linux kernel version, systemctl, curl, git, modprobe, pgrep
- Containers — Docker (daemon health), containerd (service state), LXC tools
- Virtualisation — QEMU (arch-aware: x86_64/aarch64/ppc64, with Install button), Proxmox VE detection
- Scheduling — crontab + cron daemon presence (with Install button) New
- Networking — iptables, ip (iproute2), bridge-utils, dnsmasq, socat, ethtool, tcpdump, pppd, /dev/net/tun
- Storage — fuse3, s3fs, mount.nfs
- USB — vhci_hcd kernel module, usbip_host kernel module