Supercheck LogoSupercheck

Single Location

Docker Compose deployment on a single serverEdit

Deploy Supercheck on your own infrastructure with Docker Compose. All data stays on your servers.

For true multi-location monitoring, see Multi-Location Workers.

Quick Start

Deploy on Coolify

One-click deployment on Coolify — the easiest way to self-host.


Docker Compose

Choose your deployment type:

Best for local development, testing, or internal networks without a domain.

Install Docker

Download and install Docker Desktop for Mac.

Download and install Docker Desktop for Windows.

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker

Clone and Configure

git clone https://github.com/supercheck-io/supercheck.git
cd supercheck/deploy/docker

# Generate secure secrets
bash init-secrets.sh

Edit .env and add your OAuth credentials:

GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret

Deploy

docker compose up -d

Access

Open http://localhost:3000 and sign in with OAuth.

Create Super Admin (Optional):

docker compose exec app npm run setup:admin your-email@example.com

For production with HTTPS, custom domain, and status pages.

Install Docker

Download and install Docker Desktop for Mac.

Download and install Docker Desktop for Windows.

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker

Configure DNS

Add these records at your domain provider:

TypeNameValue
AappYour Server IP
A*Your Server IP

The wildcard (*) record enables status page subdomains like status.yourdomain.com.

Cloudflare Users: If using Cloudflare proxy (orange cloud), set SSL/TLS mode to "Full" or "Full (Strict)" in your Cloudflare Dashboard. The default "Flexible" mode causes redirect loops. Other DNS providers may have similar TLS/SSL settings.

Verify DNS propagation:

dig +short app.yourdomain.com

Clone and Configure

git clone https://github.com/supercheck-io/supercheck.git
cd supercheck/deploy/docker

# Generate secure secrets
bash init-secrets.sh

Edit .env:

# Domain (required)
APP_DOMAIN=app.yourdomain.com
ACME_EMAIL=admin@yourdomain.com
STATUS_PAGE_DOMAIN=yourdomain.com

# OAuth (required)
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret

Deploy

docker compose -f docker-compose-secure.yml up -d

Access

Open https://app.yourdomain.com and sign in with OAuth.

Create Super Admin (Optional):

docker compose -f docker-compose-secure.yml exec app npm run setup:admin your-email@example.com

OAuth Setup

At least one OAuth provider (GitHub or Google) is required.


Optional Configuration

AI Configuration

Enable AI-powered test creation, fixes, and performance analysis. Choose your provider:

Recommended for most users.

AI_PROVIDER=openai
AI_MODEL=gpt-4o-mini
OPENAI_API_KEY=sk-your-api-key

Enterprise-grade OpenAI hosting.

AI_PROVIDER=azure
AZURE_RESOURCE_NAME=your-resource-name
AZURE_API_KEY=your-api-key
AZURE_OPENAI_DEPLOYMENT=your-deployment-name

Claude models (Haiku, Sonnet, Opus).

AI_PROVIDER=anthropic
AI_MODEL=claude-3-5-haiku-20241022
ANTHROPIC_API_KEY=sk-ant-your-key

Google AI Studio (API Key).

AI_PROVIDER=gemini
AI_MODEL=gemini-2.5-flash
GOOGLE_GENERATIVE_AI_API_KEY=your-api-key

Google Cloud Vertex AI. Requires GCP project.

AI_PROVIDER=google-vertex
AI_MODEL=gemini-2.5-flash
GOOGLE_VERTEX_PROJECT=your-project-id
# Ensure ADC or GOOGLE_APPLICATION_CREDENTIALS are set in the container

AWS Bedrock.

AI_PROVIDER=bedrock
AI_MODEL=anthropic.claude-3-5-haiku-20241022-v1:0
BEDROCK_AWS_REGION=us-east-1
BEDROCK_AWS_ACCESS_KEY_ID=your-access-key
BEDROCK_AWS_SECRET_ACCESS_KEY=your-secret-key

Access to 400+ models via single API.

AI_PROVIDER=openrouter
AI_MODEL=anthropic/claude-3.5-haiku
OPENROUTER_API_KEY=your-api-key

Operations

Scaling Workers

Workers run Playwright and k6 tests in isolated Docker containers.

# Scale to 2 workers
WORKER_REPLICAS=2 RUNNING_CAPACITY=2 docker compose up -d
ConfigurationWorkersConcurrent TestsMinimum Server
Small112 vCPU / 4GB
Medium224 vCPU / 8GB
Large448 vCPU / 16GB

Backups

Critical: Your data is in Docker volumes. Back up regularly!

# Create backup
docker compose exec postgres pg_dump -U postgres supercheck > backup.sql

# Restore backup
docker compose exec -T postgres psql -U postgres supercheck < backup.sql

Updates

docker compose pull && docker compose up -d

Troubleshooting

docker compose logs app      # View app logs
docker compose ps            # Check service status

Architecture

Loading diagram...

Next Steps

On this page