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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

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

File metadata

  • Download URL: serverpeek-1.1.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.1.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 18269f51bf0554164f52e018bb0723c11054832cef67ebb0d886ef7fcad8f4cd
MD5 a7f6bee896634042e73b11f4bcf84926
BLAKE2b-256 65fd82b04fd9cbc06d11310b0a53947835002e2c0bd18a661b5737766bdf54fd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: serverpeek-1.1.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.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 172f1863d4aa9a532ab532007d7c3cf73fbb1ee29bc4b64bb274653ae4299625
MD5 7aab967033ae8f6c00718a38061b4f67
BLAKE2b-256 730145ca7c608c4e46e57ce10e00ab78fcbd02b88c685b1d1dbfc4506dd5f7f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.1.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b16a5e2aeb9855dd2ac851f7a0c7f9a0a1d95e1f99a10f241a48a2c87ea34851
MD5 08f4c8956c66fb3cd42d682d01f098c5
BLAKE2b-256 3e761565575c7b1d9342586218e847aa402f9e08e3779db055f5d48aa90890be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.1.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 8937948934ed7dd4f985bfa88044d262c48579060faf0b1f7d478a779c803286
MD5 5aad261318466b750860f5524a2306e1
BLAKE2b-256 fc977e18a1b13617187db6349b211ef5b370827eadf0b6dee937e02ad45f3c19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9677a7f70fa83ea422719fcde06b3857fc9faa55d5ed5b4ddaa18a98b4cb8157
MD5 7fcbda85ef225f03a4d9bc6c3e3c07fe
BLAKE2b-256 8f6d15c2952def36ad32a7c8fc0e3cb9fa208fca3fefa3c6433b6226f59fcaf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.1.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b7fa2bd006e4b6869a741c17c18e341090a218abfe8d25231de7f9c43927cba5
MD5 6d070c9420c4eeadd290fbc001a2402b
BLAKE2b-256 c5d31860f7946ad234fc392c05a30debe82277b806ccfcbeb43c8d47b8883790

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