ServerStatus is a lightweight server monitoring and cloud dashboard system. It consists of a Go-based server that accepts TCP connections from Python clients, collects system metrics (CPU, memory, disk, network, processes, ping latency), and exposes a real-time JSON stats endpoint and a full REST management API. The server also supports service monitoring (HTTP/TCP probes), SSL certificate expiry checks, and a configurable watchdog rule engine that evaluates expressions against live metrics and triggers HTTP callbacks. The web UI is a single-page application with filtering, sorting, detail drawers, and an admin panel for CRUD operations on configuration. The architecture is a classic client-server model: multiple Python agents (client-linux.py or client-psutil.py) connect to a single Go server over a custom TCP protocol. The server authenticates agents, receives periodic metric updates, and serves a web dashboard and API. The Go server is a monolith with separate modules for HTTP handling, TCP agent handling, configuration management, SSL checking, and watchdog evaluation. It uses the Gin web framework for HTTP and the expr-lang library for rule evaluation. Key entry points are the TCP agent listener (port 35601), the HTTP server (port 80/8080), and the CLI flags for configuration. External dependencies include Go modules (gin, expr-lang), Python libraries (psutil for the psutil client), and Docker for containerized deployment. The system is designed for easy deployment via Docker Compose or shell scripts, with environment variable overrides for all client and server settings.
xyOps is a self-hosted, multi-server job scheduler and monitoring platform written in Node.js (CommonJS) with a browser-based single-page application. It is the successor to Cronicle and provides cron-like event scheduling, distributed job execution via WebSocket satellite agents, visual workflow orchestration, real-time server monitoring, alerting, ticketing, secrets management, and a plugin marketplace. The backend is organized around a central engine class (`lib/engine.js`) that mixes in modules for scheduling, job lifecycle, monitoring, alerts, maintenance, SSO, and API handling; the frontend uses a custom page framework with jQuery, CodeMirror, and WebSocket-driven live updates. In production, events are defined with triggers (schedule, interval, single, catchup, range, blackout), jobs are launched locally or on remote satellites, and job output is streamed via SSE/WebSocket. Monitoring data (CPU, memory, disk, processes) flows from satellites to the master, where JEXL expressions evaluate alert conditions and store multi-resolution timelines. The system persists to SQLite/Postgres/Redis via a custom storage abstraction (unbase) and supports import/export, snapshots, activity logging, and a plugin marketplace. Maintenance is active: frequent releases, CI workflows, security patching, and a comprehensive integration test suite are present. The codebase shows some technical debt—large monolithic files, duplicated CRUD patterns, callback-heavy async, and a custom UI framework—but the core architecture is modular, well-documented, and backed by a real test suite.
This is a comprehensive server monitoring and management platform called ServerBox (Flutter Server Box). It consists of a cross-platform Flutter mobile/desktop app, a Rust-based agent (monitor) that collects system metrics and exposes a REST/WebSocket API, and a Svelte web panel. The system supports SSH terminal sessions, SFTP file management, container management, virtual machine management (Proxmox VE and libvirt), BMC/Redfish power and sensor monitoring, firewall management (ufw/firewalld), cron, systemd/OpenRC services, process management, benchmark execution, custom commands, and push notifications. The architecture is heavily dependent on shared Rust crates (`sbm_parser`, `sbm_virt`, `sbm_redfish`, `sbm_ffi`) that are used both by the agent and via FFI by the Flutter app. This is a production-grade, actively maintained project with extensive test coverage across all layers.