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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

File metadata

  • Download URL: serverpeek-1.3.0-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.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 4e15aa33ba8e4ba1eb06c3744b2c871cf725d1789bbc01870a1b02e8a06cfd44
MD5 a0fe6f648569f318ed02a95c8a115606
BLAKE2b-256 0e2e96e60b37251028088afcf2897696b1bf22db936e44d1d533f80167cfc89e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: serverpeek-1.3.0-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.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3bf904aae5a367675d34b1c5f279f6060b85e4c0f8861d292dbed111b6d5f5e4
MD5 8f2ff03edd0115b4083c833e099827ab
BLAKE2b-256 3d50ee12ec58e153e9e13250cf3768a091d6409269d4a58f5706004d8bc71356

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.3.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 e26429f0161935348a629e79a6abf9e6781659f8e5b64d1edfde7b5b2519bf4e
MD5 836e2281cc462fb91ded22debaeed181
BLAKE2b-256 2ff8b71a9d39882ac1a421a9b2ea34b0d509a01f0712f39d818dc3f7a338e8b0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.3.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 82c342fa98d9d93f8f288418dba9aa718256878914b4f62c484d1b74214e7bbb
MD5 a3442895225bfe428ef254c11a3c398f
BLAKE2b-256 e49285e0e96910ac4069d1b7d0cdd9e78aef0ef23bea4d0e42b7feb6029debcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.3.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 70ff39a411344ac0908e7ea7714d7f7928feb92ebbd4ffeafc2c6f232249eede
MD5 a1d4952d47ccaf682783bb7962fdec97
BLAKE2b-256 559f933787b75ef4c8d4bf30d48c4160e7f4daaeec6b939f60b11d9a764d0fdb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.3.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d0e7473da15379d1df4c1c23d59a35f641788d6c4c0c7ba445d18cf96a40fe2e
MD5 b1c3892c169e71730a65769a57361b1e
BLAKE2b-256 6e01acb7b7d90ad2b39b050ed82ca8727a9b06208f90887806b654ced3c589c1

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