Skip to content
JBJamie Blair
PythonFlaskDevOpsLinux

Server Pulse

Live dashboard showing real-time CPU, RAM, disk, and uptime from a Hetzner CX23 server. Polls a Flask endpoint backed by psutil - no refresh needed.

Server rack with LEDs forming a heartbeat pattern, representing real-time server health monitoring.

Backend

Flask + psutil

Polling

5 seconds

Server

Hetzner CX23

SSL

Let's Encrypt

How it works

1psutil Metrics
2Flask API
3Client Poll (5s)
4CSS Gauges

How It Works

psutil reads CPU, RAM, disk, uptime, and load averages. Flask API endpoint returns JSON. Frontend polls every 5 seconds and renders gauges and bars. Added as a route on the existing Flask app - one deployment, one systemd unit.

Decisions

No history storage - metrics are point-in-time only, keeping the system simple. Pure CSS gauges with no chart library dependency. Endpoint sits behind a reverse proxy with SSL via Let's Encrypt.

Security

  • Endpoint behind Nginx reverse proxy with SSL
  • No sensitive system data exposed (just CPU/RAM/disk percentages)

Next step / direct enquiry

Want to discuss the engineering behind this work?

Send a private message about a role, collaboration, or technical problem.