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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

serverpeek-1.1.1-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.1.1-py3-none-win_arm64.whl.

File metadata

  • Download URL: serverpeek-1.1.1-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.5

File hashes

Hashes for serverpeek-1.1.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 7b099f94834d2a0da16bbaf4893342b2f3f0b8421116fb81446a3eafc7cb496c
MD5 e067acfbaa49b3eedb707f24ff6838d2
BLAKE2b-256 0f5dd3fa31959dca762e5794523010978019d4557884bd48a83d77522ebf9f02

See more details on using hashes here.

File details

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

File metadata

  • Download URL: serverpeek-1.1.1-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.5

File hashes

Hashes for serverpeek-1.1.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9930923195cafe46c758e12d6063ec0aaecf3be77ea938108b0e0bd6fd4085fd
MD5 6ab24e4b2d03c5a1bb8c5bff44f26691
BLAKE2b-256 eb5999f5076918b2c15dabd41e71a89627f3a3e8b4626f5a9a0e9bf919dbf84b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.1.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d268b2afe73552c8066c0fae8ebac948c8240a10ac262cc4cb0ece690f96f2a3
MD5 bad2c8a7271e6bb7d806a600b09e8b34
BLAKE2b-256 e0539936af493332d5ee5578761f233cf6b4d180f9996fff18f9f810273132ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.1.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 9acfcc907bb695edadbe09605e87359ed5898e8e432f25de0be73afc5e053063
MD5 8ddc2264d68e0133e7e5d8821d895796
BLAKE2b-256 ddeb4c4a173ed45afdcb43491fcae2a9e6f8b9aa612c72f38ac1751eab437114

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.1.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 83127b90b4d932017b95cfc74b13b8ea923e572919f77459c48b512901586952
MD5 6ee013b7553cb41bf15cb7be15a68b75
BLAKE2b-256 79b3c2ef02610ec4601f65a5248b536a2221be3641d7d955b72da9745e7fe455

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.1.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e76b2e7af20180c6204eb3af8a2bad353cf06984a95a2e6be1f790aa46db7a05
MD5 002f149a13e6be1dd76aa92b7057af54
BLAKE2b-256 86317b11956c10ea6f06bb0bbf908ca7bcec70ead35f709d8862df2ce8b1cf85

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