Live-updating web dashboard for server monitoring
Project description
serverpeek
A live-updating web dashboard for server monitoring — CPU, memory, processes, Docker containers, and network ports in your browser.
Why?
Checking server health usually means SSH-ing in and running htop, docker ps, ss -tlnp, and half a dozen other commands. serverpeek gives you all of that in a single, auto-refreshing browser dashboard that you can leave open on a second monitor.
Features
- Machine & OS info — hostname, platform, architecture, CPU model, uptime
- CPU usage — overall with colour-coded bar (green → yellow → red), per-core bars on Linux
- Memory usage — physical and swap with macOS breakdown (app/wired/compressed), excludes file cache
- Load average — 1, 5, and 15 minute load averages
- Top processes — sorted by combined CPU + memory usage, grouped by parent process
- Smart process names — identifies scripts behind interpreters (python, node, ruby, perl, java) with runtime tags
- Docker containers — shows internal container processes via
docker top, merged into unified process view - Listening ports — non-localhost network ports with associated process names
- CPU & memory history graphs — 2 minute rolling history, shared across all viewers
- Live updates — Server-Sent Events push new data every 2 seconds
- Efficient — single background collector, sleeps when no clients are connected
- Beautiful dark theme — clean, modern kiosk-friendly dashboard (fits in one screen, no scrolling)
- Zero config — just run it and open the URL
- Single binary — statically-linked Go executable, no runtime dependencies
Quick Start
Install
pip install serverpeek
Or run directly with uv:
uvx serverpeek
Run
serverpeek
Then open http://localhost:8080 in your browser.
Options
serverpeek --port 9090 # Custom port
serverpeek --host 127.0.0.1 # Bind to localhost only
serverpeek --help # Show all options
How It Works
serverpeek starts an HTTP server that serves a single-page dashboard. A background goroutine collects system snapshots every 2 seconds and shares them with all connected clients via Server-Sent Events (SSE). When no clients are connected, the collector sleeps. New clients receive the full 2-minute history buffer so graphs are populated immediately.
System information is gathered using OS-native interfaces (/proc on Linux, sysctl/vm_stat on macOS) and subprocess calls for Docker and network port information. On macOS, memory usage excludes file cache (reports active + wired + compressed instead).
The dashboard is a self-contained HTML page with embedded CSS and JavaScript — compiled into the binary via go:embed. No build tools, no npm, no bundlers. Designed for kiosk use: everything fits in a single non-scrolling screen.
Licence
Released under the Unlicense — public domain.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file serverpeek-1.0.0b6-py3-none-win_arm64.whl.
File metadata
- Download URL: serverpeek-1.0.0b6-py3-none-win_arm64.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f670e87acfb3bc96a7cec1306401c00d94cd8e389574d1c48f903a1f6be656f6
|
|
| MD5 |
e1bdfe639738ca3c4ff80547e47d72a6
|
|
| BLAKE2b-256 |
aa076c1a310cda4eaf22999cc51c761b633919d8d569fe00635b4cb4d1f80915
|
File details
Details for the file serverpeek-1.0.0b6-py3-none-win_amd64.whl.
File metadata
- Download URL: serverpeek-1.0.0b6-py3-none-win_amd64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d70fa8c64397df06f27971a135956254c827e47a402e5562ef742cb4dd59b671
|
|
| MD5 |
c18a26c0c8290a4e715e7d678be5d615
|
|
| BLAKE2b-256 |
9a3f7135f7a082c65b7a622f3d8ae37a2ca93ff1641ff0e6b03a42ebaeafc7bf
|
File details
Details for the file serverpeek-1.0.0b6-py3-none-manylinux_2_17_x86_64.whl.
File metadata
- Download URL: serverpeek-1.0.0b6-py3-none-manylinux_2_17_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
57f22de46bd929e5d1939ffb8916d547a7fa94e9e1b870569e4772c124b4ccb7
|
|
| MD5 |
00391d01d787a3452f36bd0887f9d2ec
|
|
| BLAKE2b-256 |
b3ce251ec2a3cb702fa979692fa714c85dacb903f9928b75752a4ec850c71d5a
|
File details
Details for the file serverpeek-1.0.0b6-py3-none-manylinux_2_17_aarch64.whl.
File metadata
- Download URL: serverpeek-1.0.0b6-py3-none-manylinux_2_17_aarch64.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8325fca0326d87e6056152b7c5bc65c00d9020fefe66111cf548917100e0aa12
|
|
| MD5 |
6d085956149c9f9b04e39da033834cf1
|
|
| BLAKE2b-256 |
6031bfaf5a9a275296f7a3924e87bf583e83949b736caa64f5f144501bd90997
|
File details
Details for the file serverpeek-1.0.0b6-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: serverpeek-1.0.0b6-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7ab5ee846fa1a227b8c1b1b6998c6604a32e756492491e75f12f433fb5a3a5e6
|
|
| MD5 |
527d9e4f41325ac78183965fa34aa4a2
|
|
| BLAKE2b-256 |
b196a89b6b6dfb5566c14c64825d9883b51813a051f1780ceb0787309d82423d
|
File details
Details for the file serverpeek-1.0.0b6-py3-none-macosx_10_9_x86_64.whl.
File metadata
- Download URL: serverpeek-1.0.0b6-py3-none-macosx_10_9_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7ca8e98103ba74f58576968843cba20868ce824dfe55d865a841a2635612f42
|
|
| MD5 |
02fc27e60116f4bca174e7826a0403fb
|
|
| BLAKE2b-256 |
924258afe71da814007f743a51f9048e0996c7b0758eb532bc2a6667822d8d6f
|