Statusnook is a self-hosted, MIT-licensed status page and endpoint monitoring tool written in Go, aimed at small teams and individual operators who want to publish service health on their own infrastructure rather than pay for a hosted status page.
What it is
Statusnook is a single Go application that both monitors endpoints and serves the status page that reports on them. It lives in the Infrastructure & Operations / Monitoring & Observability category of this registry, and its topic list — go, golang, html, htmx, monitoring, self-hosted, sqlite, status-page — describes the stack precisely: a Go backend, an htmx-driven web interface, and SQLite as the data store. Deployment takes the form of a standalone installer with managed TLS, a container image published as goksan/statusnook, or prebuilt amd64 and arm64 Linux binaries on the Releases page.
The concrete problem it solves it the gap between having endpoints and being able to say anything credible about their health. Teams that need a public or internal status page normally choose between a paid hosted service and writing their own page, checker, and notification path. Statusnook replaces that bespoke work with one deployable service: it runs the checks, keeps the monitor logs, shows the results, and sends notifications, while the data stays in the operator's own SQLite database and named Docker volume. Configuration is available through both a web UI and a text-based YAML file, so the same instance can be driven by clicks or by a checked-in config.
Key capabilities
- Endpoint monitoring with a monitors view and a separate monitor logs view, so check history is inspectable rather than only summarised.
- A public status page served directly by the same process, with managed TLS in the standalone deployment path.
- Notifications tied to monitor state, shown in the project gallery alongside monitors and monitor logs.
- Two configuration modes: web UI based config, or text based config in YAML set through the settings page or pushed in via GitHub.
- Published container image
goksan/statusnook with a documented compose.yaml that maps 127.0.0.1:8000:8000 and persists state in the named volume statusnook-data.
- Standalone installer with managed TLS, plus a reverse proxy mode that takes
-port 8000 for running behind Caddy or NGINX.
- One-click cloud templates for Vultr, Railway, and Zeabur, and amd64/arm64 Linux binaries on the Releases page.
Who uses it and how
- Operators running a reverse proxy such as Caddy or NGINX, who deploy with
curl -fsSL https://get.statusnook.com | sudo bash -s -- -port 8000 and terminate TLS at the proxy.
- Small teams on a host where ports 80 and 443 are free, who use the standalone path and let Statusnook manage its own TLS.
- Users of managed platforms who want a status page without operating a server, deploying through the Railway, Zeabur, or Vultr templates.
- Teams that treat configuration as code, pushing YAML through GitHub rather than editing settings by hand in the UI.
- Homelab and small-infrastructure operators who accept SQLite and a single
statusnook-data volume as the storage model.
Getting started
Run curl -fsSL https://get.statusnook.com | sudo bash for managed TLS on ports 80 and 443, or start the container with docker run -d -p 127.0.0.1:8000:8000 -v statusnook-data:/app/statusnook-data --restart always goksan/statusnook. The README also provides a compose.yaml for the same result via docker compose up.
How it compares
No paid or competing products are named in the facts for this entry, so there is no licence, hosting, or cost comparison to draw. Statusnook stands alone in this registry on that basis.
When to use it — and when not to
A self-hoster must operate a host, open ports 80 and 443 or front the service with a reverse proxy, and keep the statusnook-data volume persistent, since SQLite on that volume is the whole storage story. Anyone unwilling to run and patch a server should not choose it, and the facts show no clustered or multi-node deployment path. The project's last push is 2024-10-31, with 12 open issues and a short README whose configuration detail lives in docs/configuration.md, so buyers should weigh that maintenance cadence against a hosted alternative.
project readme (upstream, from github) — read inline
Effortlessly deploy a status page and start monitoring endpoints in minutes

Deployment paths
Standalone
Quickly deploy Statusnook with managed TLS.
Requires ports 80 and 443
curl -fsSL https://get.statusnook.com | sudo bash
Reverse proxy
Deploy Statusnook behind Caddy, NGINX, etc.
curl -fsSL https://get.statusnook.com | sudo bash -s -- -port 8000
Docker
CLI
docker run -d -p 127.0.0.1:8000:8000 -v statusnook-data:/app/statusnook-data --restart always goksan/statusnook
compose.yaml
services:
statusnook:
ports:
- 127.0.0.1:8000:8000
volumes:
- statusnook-data:/app/statusnook-data
restart: always
image: goksan/statusnook
volumes:
statusnook-data:
name: statusnook-data
docker compose up
One-click cloud templates




Binaries
amd64 and arm64 Linux binaries can be found on the Releases page.
Configuration
Statusnook has the following configuration options:
- Web UI based config
- Text based config (YAML) via the settings page, or on push via GitHub
Learn more about configuration
Gallery
