Managing a fleet of Debian servers, Raspberry Pi appliances, and customer VPS instances across both professional and private environments inevitably leads to a familiar dilemma: finding an infrastructure overview that doesn’t become a maintenance project of its own.
Most modern monitoring stacks are heavy. They demand bloated web servers, complex databases, continuous background scraping, and web interfaces that feel sluggish when accessing them on the move. Every system I run is hardened differently, but they all share a single, reliable constant: SSH.
That realization sparked the development of TermNOC on my primary Debian 13 KVM hypervisor. The goal: A dedicated high-contrast terminal operations center running 24/7 on the machine’s physically attached monitor (tty1), combined with an interactive TUI orchestrator.
Why Pure SSH?
TermNOC purposefully avoids web interfaces, HTTPS endpoints, and third-party monitoring agents. The architectural choice to rely solely on SSH comes down to four clear principles:
- Child of the 70s: I grew up with the command line. A dark terminal screen with crisp, immediate telemetry feels natural, readable, and distraction-free.
- Hardened Security via SSH Keys: Across all nodes, password authentication is strictly forbidden. Certificate- and key-based SSH authentication offers an uncompromising security baseline that web applications and exposed HTTPS endpoints simply cannot match without adding substantial attack surfaces.
- Flawless Mobile Connectivity: When troubleshooting from a phone or laptop over spotty cellular connections, an SSH session remains rock solid. Web dashboards often crawl or fail completely under high latency and packet loss.
- Zero Overhead: Eliminating heavy web frameworks and database backends preserves system memory and CPU cycles for the actual workloads—virtual machines and production services.
What TermNOC Does
TermNOC is split into two focused tools built with Python’s Rich framework:
_____ _ _ ____ _____ |_ _| | \ | |/ __ \ / ____| | | ___ _ __ _ __ ___ | \| | | | | | | | / _ \ '__| '_ ` _ \| . ` | | | | | | || __/ | | | | | | | |\ | |__| | |____ \_/ \___|_| |_| |_| |_|_| \_|\____/ \_____|
1. termnoc-display (Live Telemetry HUD)
Designed for informal, continuous situational awareness. It runs non-stop on tty1 (or in a dedicated tmux/terminal split) with an asynchronous 5-second polling cycle:
- Hypervisor Metrics: Real-time CPU load, memory utilization, swap, and uptime.
- KVM Virtual Machines: Direct integration with
virsh/libvirtdisplaying VM states, allocated RAM, vCPUs, and autostart configurations. - LAN & Peripheral Appliances: Latency and port checks for DNS instances, Raspberry Pis, and low-power IoT hardware (like NerdMiners).
- Remote & Customer Fleets: Non-blocking connectivity status and ping metrics for VPS and dedicated nodes.
2. termnoc-menu (Interactive Orchestrator)
An administrative control suite for operational maintenance:
- Quick lifecycle actions for local KVMs (start, shutdown, reboot, autostart toggle).
- Direct SSH jumping to any configured node in the fleet.
- Automated batch package updates across selected systems.
- Zero-Touch Preseed Deployments: Boots and installs standard Debian 13 guest VMs with unattended locale, keyboard layout, SSH keys, and QEMU guest agent integration in under two minutes.
100% YAML-Driven Configuration
Code changes are never required when updating infrastructure. Everything lives under /etc/termnoc/:
types.yaml: Port profiles and monitoring definitions (e.g.virtualmin,webserver,ping_only).local.yaml: Hypervisor-specific parameters.lan.yaml: Internal subnet nodes and microcontrollers.remote.yaml&customer.yaml: External dedicated servers and managed client instances.
Quickstart
Prerequisites
- Debian 13 (Trixie) or Debian 12 (Bookworm)
- A configured network bridge (
br0) for KVM networking python3,libvirt, andqemu-kvm
Installation
git clone https://github.com/n3tzzw3rg76/TermNOC.git
cd TermNOC
sudo ./install.sh
Launch
# Start the live telemetry display
termnoc-display
# Open the orchestrator menu
sudo termnoc-menu
Source Code & Repository
TermNOC is open source and published under the MIT License on GitHub: