Skip to content

Self-host Checkmate

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

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.

Key facts

CategoryMonitoring
LicenseAGPL-3.0
StackTypeScript, Node.js, MongoDB
Min RAM2048 MB
Official imageyes
Measured idle RAM260 MB
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.

Follow the Checkmate deploy guide →

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
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

Paid link — we earn a commission if you shop through it.

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:7|' docker-compose.yaml
# mongo:8.0 refuses to boot on Linux 6.19-7.0.13 (SERVER-121912); 7.0 is unaffected — mongo:8/latest still refuse, and forcing 8.x past the check runs a crash-prone allocator
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.

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