Supercheck LogoSupercheck

Self-Hosted

Install Supercheck on one server with a guided commandEdit

Self-host Supercheck on one Linux server. One command installs Docker, the isolated test sandbox, and every Supercheck service, then checks that it is healthy.

Architecture

Scroll horizontally to view the full diagram.

Loading diagram...

Prerequisites

RequirementDetails
OSUbuntu 22.04+ or Debian 12+ (x86_64 or arm64)
Resources2 vCPU and 4 GB RAM minimum; 10 GB free disk minimum, 15 GB to start, 30–50 GB for regular use
Accesssudo and outbound internet access. Docker and Compose are installed for you
Public HTTPS onlyA domain pointing at the server (plus a wildcard record for status pages), inbound ports 80 and 443, and an email address for certificate notices

Linux only. The test sandbox needs the Linux kernel. macOS, Windows, WSL2, and Docker Desktop are not supported.

Install

Download the installer

curl -fsSL https://raw.githubusercontent.com/supercheck-io/supercheck/main/deploy/docker/install.sh -o install.sh

Read it first with less install.sh if you like. Add --dry-run in the next step to see the plan without changing anything.

Run it

sudo bash install.sh --version 1.4.0

The installer asks only what it cannot detect:

PromptDefaultNotes
Choose11 = try it on this server (HTTP on localhost); 2 = public server (HTTPS)
Domain for SuperchecknonePublic only. A hostname such as app.example.com, not an IP address or URL
Email for Let's Encrypt noticesnonePublic only
Continue?YesLast confirmation before anything is installed

Allow about 10 minutes, mostly image downloads. Re-running is safe: it keeps your existing .env and secrets and skips finished steps.

Open Supercheck

The installer prints the URL: https://<your-domain> for a public install, or http://localhost:3000 for a local one.

Port 3000 listens on the server only. From your laptop, forward it with ssh -L 3000:localhost:3000 <user>@<server>. For HTTPS, the certificate is issued on first visit and can take up to a minute.

Create your account, then add a test and run it.

On a public server, sign-up is open to anyone who can reach the URL. Create your account first, then set SIGNUP_ENABLED=false in .env (or restrict it with ALLOWED_EMAIL_DOMAINS) and recreate the app. See Optional configuration.

Verify

Run from /opt/supercheck/deploy/docker (or <your --dir>/deploy/docker):

sudo docker compose ps
curl --fail --silent --show-error http://localhost:3000/api/health

All services should be healthy and the health endpoint should return {"status":"ok".... For HTTPS, also open https://<your-domain>/api/health.

Optional configuration

Edit .env in deploy/docker, then run sudo docker compose up -d --force-recreate app worker.

Maintenance

Next steps

On this page