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.3.0b1-py3-none-win_arm64.whl (2.4 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

serverpeek-1.3.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.3.0b1-py3-none-win_arm64.whl.

File metadata

  • Download URL: serverpeek-1.3.0b1-py3-none-win_arm64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.6

File hashes

Hashes for serverpeek-1.3.0b1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 0ebc63334c952d66cdc6f11e3c67c5de37ecd90e97d5150e50fa11faf97c7a46
MD5 800a737d4880ebe56abe7fdca2373794
BLAKE2b-256 47139f948d624de106aa0d5b698a723ff66cbf0c4c6de492a4e27de4e13936b8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: serverpeek-1.3.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.6

File hashes

Hashes for serverpeek-1.3.0b1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 fbb15c8262035bb7d4e97b3e846f5c6488afbae7b3811aa24887354fb2318218
MD5 a685e6c9144d872246b100653d1b2510
BLAKE2b-256 ee37e7e8f102ac451f31a4704bbb64ed088e7abd2211dca5298fb5f7d40b89a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.3.0b1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 65dc6483b8f21ac4f654be33aa2582f57ef8be2ebccf6147aa692fb0fbe6958f
MD5 29c586c05d5eca321ca9e0d7867d4712
BLAKE2b-256 8aacc7f542f35e4d143c422433d5128069bb6e1995a36cf75894d8fdc14c7f07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.3.0b1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 2ce0356c6af125a61144c55f2fb0383d15c1a497400d914b6111cb89a7ad8e22
MD5 ce0f4d4d69829395580f8c0973cd2de5
BLAKE2b-256 e566817bc701b5896253f151375dd250e1cfe7bb2851ae378f39a024310085b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.3.0b1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 473ca373d1059b67ead7f2262d69b4ffd08ee2bb6898c2a3a0ab8fd38bb1fb84
MD5 cdc337763431cd493aae331821738e11
BLAKE2b-256 a99e9d50e8ea58ec49ae5a8488445c5b3784c1fc0530733ccd7f3e9c92ff9754

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.3.0b1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 03134525c601b9a5e7f889bc0d0c061b1ea87e4b695301a9a91f2615bff07cf0
MD5 0e461a7f3d395afe1dfd97949bc4b29b
BLAKE2b-256 5ae01270224bf16b530ffedcdd685c6754da6820b8cb0ad4555e076462440a00

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