Self-hosted server and website monitoring tool with status checks, HTTP/TCP/Ping probes, push alerts, scheduled tasks and a web terminal.
cppla/ServerStatus
A lightweight self-hosted server probe and cloud monitoring dashboard for tracking multiple nodes' status, resources, latency and services.
Open-source alternative to:UptimeRobot
- Stars
- 4,682
- Forks
- 913
- Open issues
- 5
- Last commit
- 3 days ago
What is it?
ServerStatus is a self-hosted monitoring dashboard for multiple servers. A Go server receives status reports from lightweight Python agents running on each node over TCP, then shows online state, CPU, memory, disk, network traffic, load, and three-carrier latency and packet loss on a web page.
Beyond host metrics, it can check service endpoints and SSL certificate expiry, and send notifications through callback URLs when Watchdog rules match, such as a node going offline. Configuration can be edited in the WebUI or through an authenticated HTTP API with an OpenAPI 3.1 description. Monthly traffic baselines are persisted to a stats file.
The server ships as a Docker image with Compose files, and the client can run in Docker or directly with Python. Agents are configured with a username and password that must match the server's config.json.
Key features
- 01Shows online status, CPU, memory, disk, load and network traffic for each node.
- 02Measures three-carrier TCP latency and packet loss.
- 03Monitors service endpoints and SSL certificate expiry.
- 04Sends Watchdog alerts to callback URLs when rules match.
- 05Provides a WebUI configuration page and a token-protected HTTP API.
Use cases
- Keeping an eye on a small fleet of VPS or cloud servers from one dashboard.
- Publishing a public status page for several nodes.
- Getting alerted when a server goes offline or a certificate is about to expire.
Quick start
- 1
Start the server with Docker Compose
ADMIN_TOKEN='your-strong-token' docker compose -f docker-compose-server.yml up -d - 2
Open the WebUI at http://127.0.0.1:8080/
- 3
Start a client node with Docker Compose
SERVER=127.0.0.1 USER=s01 PASSWORD=USER_DEFAULT_PASSWORD docker compose -f docker-compose-client.yml up -d --force-recreate
Things to know
- The web config page and admin API stay disabled unless you set ADMIN_TOKEN.
- Each monitored node must run a client and match the username and password in the server config.
In collections
Topics
FAQ
- What is ServerStatus?
- A lightweight self-hosted server probe and cloud monitoring dashboard for tracking multiple nodes' status, resources, latency and services. ServerStatus is a self-hosted monitoring dashboard for multiple servers. A Go server receives status reports from lightweight Python agents running on each node over TCP, then shows online state, CPU, memory, disk, network traffic, load, and three-carrier latency and packet loss on a web page.
- Is ServerStatus free to use? What license does it have?
- ServerStatus is open source under the MIT license. Check the license terms before using it in commercial products.
- Is ServerStatus still maintained?
- Actively maintained. The last commit to ServerStatus was on Nov 4, 2026.
- What can I use ServerStatus for?
- Keeping an eye on a small fleet of VPS or cloud servers from one dashboard. Publishing a public status page for several nodes. Getting alerted when a server goes offline or a certificate is about to expire.
- How do I install ServerStatus?
- Start the server with Docker Compose: ADMIN_TOKEN='your-strong-token' docker compose -f docker-compose-server.yml up -d Open the WebUI at http://127.0.0.1:8080/ Start a client node with Docker Compose: SERVER=127.0.0.1 USER=s01 PASSWORD=USER_DEFAULT_PASSWORD docker compose -f docker-compose-client.yml up -d --force-recreate
- Where can I get ServerStatus?
- The source code and installation instructions are on GitHub: https://github.com/cppla/ServerStatus
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Self-hosted health dashboard that monitors services over HTTP, ICMP, TCP, DNS and more, evaluates response conditions, and sends alerts.
A self-hosted app that schedules regular internet speed tests and tracks download, upload, ping and uptime history over time.
Self-hosted status page system built with SvelteKit and Node.js, with uptime monitoring, incidents, and maintenance windows.
Self-hosted uptime and infrastructure monitoring app that checks HTTP, ping, port, DNS, Docker and more, with status pages and incident alerts.
Self-hosted all-in-one tool combining website analytics, uptime monitoring, and server status pages in one app.