Skip to main content
Version: 1.x

Housekeeping checks

Run routine health inspections on any server.

❯ Run housekeeping on app.example.com

Problems come first in a short report.

What it checks​

The basics​

Disk, memory and swap (zram and zswap included, the ZFS ARC counted as available), load, pending updates, the firewall, TLS certificates, failed services, the network, log anomalies, a kernel waiting for a reboot, a service still running an old binary, the timezone and the persistent journal.

The baseline​

Automatic security updates, time sync, the SSH host certificate, backups, storage maintenance. See Server baseline.

Hardware​

SMART and smartd, USB devices with an unwatched UPS flagged, CPU microcode on bare-metal x86, and the BMC event log.

Services​

Container engines (Docker, Podman, containerd), mesh VPN agents that are down or whose login is about to expire, Home Assistant on an ordinary host, Pi-hole, AdGuard Home, CasaOS, and the services the host's memory names.

Hosts and guests​

The guests of a hypervisor and what it passes through to them, the Proxmox VE baseline template's age, and files Hostwarden deployed that changed on either side.

Releases​

An Ubuntu LTS past standard support, fixes waiting on Ubuntu Pro.

macOS​

Failed launchd jobs, kernel panics and local Time Machine snapshots.

Coverage and limits​

It covers Linux (Debian, Ubuntu, RHEL, Fedora, SUSE, Alpine), FreeBSD, macOS and Windows Server. In a container, clock and kernel findings belong to the host and are not reported twice. Nothing is updated, pruned or restarted. Your own checks go into memory/housekeeping.md. A scheduled run can mail you the report (Scheduled housekeeping).

What the report looks like​

## Housekeeping Report: app.example.com

Date: 2026-09-26 06:17
OS: Debian 12 (Bookworm) | Last boot: 14 days ago

### Issues

CRITICAL Disk / at 97%
WARN 12 security updates pending
WARN SSL cert expires in 12 days

### Services

PostgreSQL OK — 4 databases, 2.1 GB total
nginx OK — config valid
Backups OK — latest 6 hours ago

### System

Disk / 97% (1.75 TB / 1.8 TB)
Memory 8.2 GB / 64 GB available
Swap zram 1.2 / 8 GB (zstd, 3.1:1), disk 0 / 4 GB, zswap off
Load 0.42 / 0.38 / 0.35 (4 cores)
Firewall ufw active, deny incoming
NTP synchronized
Kernel 6.1.0-31 (matches installed — no reboot
needed)
Updates 12 pending, all security
Auto-updates unattended-upgrades active

The issues section only appears when problems exist, sorted by severity. A finding a decision settles shows as DECIDED — <heading> (<who>, <date>) on its line instead of a severity — see Decisions.