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.0.0-py3-none-win_arm64.whl (2.3 MB view details)

Uploaded Python 3Windows ARM64

serverpeek-1.0.0-py3-none-win_amd64.whl (2.6 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

serverpeek-1.0.0-py3-none-manylinux_2_17_aarch64.whl (2.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

serverpeek-1.0.0-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.0.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: serverpeek-1.0.0-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

Hashes for serverpeek-1.0.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 cd6f9631af0eda2b1d477fcda6305149012e6215a78b78c442f05d17bc2831e0
MD5 046c58963b9db189110fe5483a769652
BLAKE2b-256 2af85f36dfd555694f7513b793565c8ac21b5c3b6a84cd227c8bbb39bed1d490

See more details on using hashes here.

File details

Details for the file serverpeek-1.0.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: serverpeek-1.0.0-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

Hashes for serverpeek-1.0.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 7ca6f1c5c44334af5640cf7b1dafc6e80d96d42f6d3b03ca57f61ce28d062088
MD5 cc8a7449c78eebbc606f0f823bc4979d
BLAKE2b-256 e8acda715f048a29c8657b02ebdd9455c3e01a8c7d5bd7bc31d1f95cfb22907d

See more details on using hashes here.

File details

Details for the file serverpeek-1.0.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for serverpeek-1.0.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 7cc7342e75ca4179d371e7d1fe21315853a840a055987f3801e25d7adfe121c2
MD5 5e95bdc4796051094c4a4044c1f56e4e
BLAKE2b-256 2154dd62781f8b94b6a834a8e9d9699f64096374fdd1007372c7277a930b63a8

See more details on using hashes here.

File details

Details for the file serverpeek-1.0.0-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for serverpeek-1.0.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 b2df372dcc5eafe8447a3a1e9cc914220579aa300af595eb2dc71071cc7dcf95
MD5 db71583f271cf20a70cedd05ea42c7d2
BLAKE2b-256 8672a8b293b0ef414c554b2462e9e2763b02cc22a138b1fd352e2c2b9dc9a7bf

See more details on using hashes here.

File details

Details for the file serverpeek-1.0.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for serverpeek-1.0.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d22921c0a5c10c396387a1575d67b9ed4b9ffcb50797ef4fe416b7c31496c7fe
MD5 f8499fc1ab73ac3a684907b42438ee1c
BLAKE2b-256 6f7c531568a37f25a15e48c666090e67dadbfba6fd36196d61eadcc2ebdc59ab

See more details on using hashes here.

File details

Details for the file serverpeek-1.0.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for serverpeek-1.0.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c86d0fbd9b051fc713522ad8bca17ca0d903f973f5b99da8cdc811f94b6bb056
MD5 4756ee0c9e7887e9304dc0691ad9c454
BLAKE2b-256 0082c9bc9c614d5800e0bb1dea35d418f5cf617b6bc709cb17a37e3629ecfd76

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