Skip to content

Self-host Checkmate

prices checked · Aug 2026

An uptime and incident monitor with HTTP, ping, port, SSL, Docker and game-server checks, PageSpeed reports and status pages, wrapped in an unusually polished dashboard. Hardware metrics come from a separate agent called Capture rather than from the app itself.

UptimeRobot / yr$84
Self-hosted / yr~$55
You keep$29/yr
Pocket the difference — spin it up on a cheap VPS in minutes.Start free on Kamatera →

Key facts

CategoryMonitoring
LicenseAGPL-3.0
StackTypeScript, Node.js, MongoDB
Min RAM2048 MB
Dockeryes
Difficulty
Our recommendation

Choose Checkmate when you want the most polished uptime dashboard here — HTTP, ping, port, SSL, Docker and game-server checks, PageSpeed reports and status pages — and you do not mind running a database next to it. Uptime Kuma covers most of the same checks in one container with nothing else to provision, so pick Checkmate for the PageSpeed auditing and the interface, not for a lighter install. If you would rather keep the monitor list in version control than in a web form, Gatus is the other shape.

What you need

  • Any VPS with at least 2048 MB of RAM
  • A domain you control — most self-hosted setups need HTTPS in front of them
  • Under an hour if you've used Docker before

Install

Run these commands on your server:

# Checkmate — the reference compose: all-in-one app image + a MongoDB service
curl -O https://raw.githubusercontent.com/bluewave-labs/checkmate/master/docker/docker-compose.yaml
sed -i 's|image: mongo:8.0|image: mongo:8|' docker-compose.yaml
# the pinned mongo:8.0 refuses to boot on Linux 6.19+ kernels (SERVER-121912); mongo:8 has the fix
JWT_SECRET="$(openssl rand -hex 32)" docker compose up -d
# reaching it at a domain or LAN IP rather than localhost? set CLIENT_HOST to
# that origin, and put Caddy/Traefik/nginx in front for TLS
# →  http://SERVER_IP:52345

What you take on

Checkmate is a two-service deployment with a couple of settings that are not optional:

non-negotiableMongoDB is a hard dependency, not an embedded store. The reference Compose file starts one for you, but it is a second service to back up, upgrade and watch — and a custom deployment means pointing DB_CONNECTION_STRING at a MongoDB you already run.
non-negotiableIt needs JWT_SECRET set, and it needs CLIENT_HOST set correctly. Generate the secret yourself, and point CLIENT_HOST at the origin you actually browse to — leave it assuming localhost and logins from a domain or a LAN IP break in confusing ways.
non-negotiableIt serves plain HTTP on port 52345 and terminates no TLS itself. Put Caddy, Traefik or nginx in front before any of it faces the internet, and note that hardware metrics are not built in — those come from Capture, a separate agent per machine.

An alternative to

Head-to-head

More in Monitoring

Common questions

Does Checkmate need MongoDB?

Yes, and it is not embedded in the application image. The reference Compose file starts a MongoDB service for you; for a custom deployment you point DB_CONNECTION_STRING at an existing MongoDB instead. Either way there are two moving parts, not one.

What can Checkmate monitor?

Uptime checks over HTTP, ping, port, SSL and Docker, plus game servers, and PageSpeed reports on top. Server hardware metrics are not built in — those come from Capture, a separate agent you install on each machine you want to watch.

How do I install Checkmate with Docker?

Download the reference compose file from the repo, then bring it up with a JWT_SECRET set in the environment — openssl rand -hex 32 is enough. It serves on port 52345 and terminates no TLS itself, so a reverse proxy goes in front for anything public.

How does Checkmate differ from Uptime Kuma?

Checkmate is two services — the app plus a MongoDB you have to run — and adds PageSpeed auditing and agent-based hardware metrics via Capture. Uptime Kuma is one container with its own embedded storage and nothing else to provision. Uptime Kuma is the faster start; Checkmate covers more ground once it is up.

Search SelfHost Atlas

Search apps, comparisons, guides, and categories.

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.