Getting started
Run PingBoard in one container and have your first monitor live in under a minute.
PingBoard ships as a single Docker image with an embedded SQLite database. One container, one volume, one port — no Redis, no queue, no external database.
Run it
With docker run:
docker run -d --restart=always \
-p 3000:3000 \
-v pingboard:/data \
--name pingboard \
ghcr.io/steiner-co/pingboard:latestOr with Docker Compose (clone the repo, then):
docker compose up -dAll configuration is optional — no environment variables are required to boot. See Self-hosting when you're ready to set a public URL, change the port, or put PingBoard behind a reverse proxy.
First run
- Open
http://localhost:3000. - You're prompted to create the admin account — email and a password of at least 8 characters. Setup is one-shot: once the first account exists, the setup screen is gone.
- Click Add monitor, pick a type (HTTP(S) is the common one), paste a target URL, and save. The first check runs immediately.
That's it — you're monitoring. From here the dashboard updates live over Server-Sent Events, with no polling and no page refreshes.
Where next
- Monitors — intervals, timeouts, retries, tags, pausing, and per-monitor alert routing.
- Monitor types — what each of the 7 check types actually verifies and how to configure it.
- Notifications — wire up email, webhooks, Discord, Slack, or ntfy so downs reach you.
- Status pages — publish a public page at
/your-slug. - API tokens and the CLI — script PingBoard instead of clicking it.
- MCP server — query and control your monitors from Claude, Cursor, or any MCP client.
