A lightning-fast, self-contained system information dashboard. The backend is written entirely in optimized C++ to directly parse Linux kernel metrics from the /proc filesystem, serving them to a beautiful, responsive Tailwind CSS web UI.
Because it is compiled directly to machine code in a multi-stage Docker build, this image is exceptionally small and consumes practically zero CPU overhead while monitoring your server.
The dashboard auto-refreshes every 1.5 seconds to display:
- System: Hostname, OS Name, Kernel Version, Uptime, Online Status
- CPU: Real-time Usage (%), Core Count, Model Name, Active Tasks (Load)
- Memory: Total RAM, Free RAM, RAM Usage (%)
- Storage: Disk Total Space, Disk Free Space, Disk Usage (%)
- Network: Rx (Received) and Tx (Transmitted) traffic
To run the container in the background using standard port forwarding, execute:
docker run -d \
--name cpp-sysinfo \
-p 8080:8080 \
--pid=host \
tiwutdev/system-info-dashboard:latestCreate a docker-compose.yml file:
version: '3.8'
services:
sysinfo-app:
image: tiwutdev/system-info-dashboard:latest
container_name: cpp-sysinfo
restart: unless-stopped
ports:
- "8080:8080"
pid: "host"Then start it up:
docker compose up -dAccess the dashboard: Open your browser and navigate to http://<your-server-ip>:8080.
To get the most accurate hardware metrics, you must understand how Docker isolates environments:
-
pid: "host"(Required) By default, Docker hides host processes from containers. Passing--pid=hostallows the C++ backend to read the actual number of active tasks on the host machine from/proc/loadavg. Without it, your active task count will constantly show0or1. -
Port Forwarding vs. Host Networking Because this configuration uses Port Forwarding (
-p 8080:8080), the Network Rx/Tx metrics will show the traffic of the container's isolated virtual network, not the host machine's physical network card.- Want accurate host network traffic? Remove
ports: - "8080:8080"and replace it withnetwork_mode: "host"in your compose file.
- Want accurate host network traffic? Remove
-
Disk Metrics The disk space metrics read the partition where Docker's overlay network is stored (usually
/var/lib/docker). In 99% of setups, this accurately reflects the main root drive of the host machine.
- Backend: C++11 (GCC)
- Libraries: cpp-httplib, nlohmann/json
- Frontend: HTML5, Vanilla JavaScript, Tailwind CSS
- Base Image: Debian Bookworm Slim