Krowa-Admin

===== SYSTEM =====
Uptime: up 12 days, 4 hours, 18 minutes
Load average: 0.42 / 0.36 / 0.31
Load per CPU (1 min): 0.11 (4 CPUs)
Memory: 2.8 GiB / 7.8 GiB (36% used)
Available: 4.7 GiB
Disk /: 18.4 GiB / 58.2 GiB (32% used)
Available: 36.8 GiB

===== SERVICES =====
docker: ✔ running
ssh: ✔ running
k3s: ✔ running

===== DOCKER CONTAINER STATUS =====
example-frontend: ✔ running
example-backend: ✔ running

===== K3S CLUSTER STATUS =====
Nodes:
raspberrypi   Ready   control-plane,master   235d   v1.31.5+k3s1
Running Pods: 24

✔ K3s token exists and matches backup

===== DOCUMENTATION =====
System overview  /srv/docs/system.md
Firewall         /etc/nftables.conf

🐮 What is Krowa-Admin?

Krowa-Admin is a lightweight, configurable server status report for Linux systems. It reports system resource usage, checks systemd services, expected Docker containers, and—optionally—selected K3s cluster resources. Each host can enable only the checks it needs in its own YAML file, so the same installation works across Raspberry Pi devices, VPS instances, and other servers.

Run the full report with the krowa-admin command. Package installations automatically display the shorter krowa-admin --summary report in interactive login sessions, including a summary and details of detected problems.

“Not another bloated DevOps suite—just a focused cow for focused work.” 😄

🚀 Key features

  • configurable systemd service checks,
  • optional uptime, load average, memory, active swap, and disk usage reports,
  • detection of missing, stopped, and unhealthy Docker containers,
  • optional K3s node, pod, and namespace reports,
  • optional K3s token validation against a local backup,
  • a compact report for interactive login sessions,
  • optional links to existing local administration documentation,
  • clear, colored terminal output,
  • host configuration in /etc/krowa-admin/config.yaml, preserved during upgrades,
  • native DEB and RPM packages.

All checks are disabled in the example configuration by default. Administrators explicitly enable only the checks required by each host.

📚 Local documentation

Krowa-Admin can display paths to documentation that already exists on the server, such as a system overview or firewall configuration. Entries are configured separately in /etc/krowa-admin/docs.conf:

# Local administration documentation
System overview | /srv/docs/system.md
Firewall | /etc/nftables.conf

Each entry uses the format Name | /absolute/path. The program only displays existing files and does not read their contents. Blank lines, comments, and malformed or missing paths are ignored. If no valid entries remain, the DOCUMENTATION section is omitted from the report. The local docs.conf is preserved during package upgrades.

📦 Installation

Download the appropriate package from the latest GitHub release.

Debian, Raspberry Pi OS, and related distributions:

sudo apt-get install ./krowa-admin_*_all.deb

Fedora and related RPM-based distributions:

sudo dnf install ./krowa-admin-*.noarch.rpm

Docker and kubectl are optional and are needed only when their corresponding checks are enabled.

The release also includes a SHA256SUMS file that can be used to verify downloaded packages before installation.

🔗 Project

The source code, complete configuration guide, and package build instructions are available at github.com/shiver25/krowa-admin. The project is released under the MIT License.