Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

serverpeek-1.2.0b1-py3-none-win_arm64.whl (2.4 MB view details)

Uploaded Python 3Windows ARM64

serverpeek-1.2.0b1-py3-none-win_amd64.whl (2.7 MB view details)

Uploaded Python 3Windows x86-64

serverpeek-1.2.0b1-py3-none-manylinux_2_17_x86_64.whl (2.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

serverpeek-1.2.0b1-py3-none-manylinux_2_17_aarch64.whl (2.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

serverpeek-1.2.0b1-py3-none-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

serverpeek-1.2.0b1-py3-none-macosx_10_9_x86_64.whl (2.6 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file serverpeek-1.2.0b1-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for serverpeek-1.2.0b1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 cc7a9871fc799cba78fcff5b7e6e2096673785e3d96ed59c8e7b97926249510a
MD5 23bc2f529d31a47239227b09ecf1f247
BLAKE2b-256 b7d702fa32f54b1237d867713f952585a4933838b1ce866b46c5d2e57902f900

See more details on using hashes here.

File details

Details for the file serverpeek-1.2.0b1-py3-none-win_amd64.whl.

File metadata

  • Download URL: serverpeek-1.2.0b1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for serverpeek-1.2.0b1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 20bd458f1781eca7bc1f121789ecb7e809b521e3ebd5d2b744a7e25ceb1e1aa3
MD5 33d504f49163a112558da6e4fbc9dcce
BLAKE2b-256 faca8809254183faf34e300298942facee4aec816a965b03d8dda15dbf1893a8

See more details on using hashes here.

File details

Details for the file serverpeek-1.2.0b1-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for serverpeek-1.2.0b1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c92365154fca67a0de1ee9d96e9709bc57f6fea715f66729abcea6b7af640dd2
MD5 35a593daae0c0608798dc77461509e95
BLAKE2b-256 5355f6d1d379561b25f91f4f6750393fc05d3d0321d02c06986cb65973592346

See more details on using hashes here.

File details

Details for the file serverpeek-1.2.0b1-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for serverpeek-1.2.0b1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 afc634f36074c02caf6d9189ecb121e6d84c028b483445ebf0095b6a6265f0fe
MD5 66eff9529ee692d1269dd2e44aec8aeb
BLAKE2b-256 5f05f0c7480ac022f44ad49e8bfde7a9a7578ac8c7cb18d2d012a2855a91311c

See more details on using hashes here.

File details

Details for the file serverpeek-1.2.0b1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for serverpeek-1.2.0b1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6fb7e9639ce9d2eaa56be216ca910149b0450d1fd36f64ed0a2f0b65f03d79c6
MD5 0133b7ab9d0fad31d588920843f1dc33
BLAKE2b-256 efa2bef125e4726d5d0b3c81d620cab1da4cf3729c7426a40d4bfcca25a6500d

See more details on using hashes here.

File details

Details for the file serverpeek-1.2.0b1-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for serverpeek-1.2.0b1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6205c274648836a116a70998665c8fa7b0aec4ca2cfad4457e87547d1e252407
MD5 aac911a914d5574434bb913c1f8e5eb4
BLAKE2b-256 56de921534fb11adad34f636e531c7f75d2c3bd16c227d147e958310a4caa998

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page