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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

serverpeek-1.2.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.2.0-py3-none-win_arm64.whl.

File metadata

  • Download URL: serverpeek-1.2.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.3

File hashes

Hashes for serverpeek-1.2.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 be48b462ebc3815ec87cd6c7b2fedeb858ae9f334841a15604b143fd2703a79f
MD5 ff64e60c343b3c37c3379da37b825852
BLAKE2b-256 1dc21fd9d1264904d163d22be7f0d0c9e4abf8bb031c26f2e4eae21335f7c5db

See more details on using hashes here.

File details

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

File metadata

  • Download URL: serverpeek-1.2.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.3

File hashes

Hashes for serverpeek-1.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 cf2c8b2c21b198c580a62bfd5dc93904ad77a369314e67f936df182707177e13
MD5 ce5454c16c9ec7d305701b4b5478d700
BLAKE2b-256 c6155fc50645b7ebee1a18c26556562c51337a481dcea1c4702530b3dfea53a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.2.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 22b84dd1f4694689127b2e2f93eec128e1f7ee994de46c4a05105fde54462020
MD5 ba9b4810de751e41d8c5e9ea62acb6fd
BLAKE2b-256 7969362e08388a8d8f9ed7438f294d1d6b894fa917afef4d231ea590462c9468

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.2.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 31cb94784342acea5c87865ea2312a39c4d3e781dcec962b5aae7a66c2e7c548
MD5 db7cbd57d2fae97eaf84fbb809f4946e
BLAKE2b-256 7dc07edf8ef600d3125cacb3042e3e47c307329a445e314d280824f25fd6f6d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.2.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea680842ece8fb72121ea7f432bbb29f7a000e061a699157d833b176e848b840
MD5 872f57a1707ed5082cc1f9a6b95b405f
BLAKE2b-256 02a50473862b21d8ce9ccdb75a62876bb3d94c3515d5e6478e92755021feddb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for serverpeek-1.2.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dccf62c166a4c8160bbfd2d23236fff9fb167566d8a9640de7d0664ddf356c7e
MD5 dc482f0396f8ed743019a026627a1a71
BLAKE2b-256 0f1e8f40df6a97ab89fab1bae103201457879089a891815234d93e05f7ef6acd

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