Requirements
Docker Compose v2, or Go 1.26.4 and Node 24 for native development. Reserve at least 4 CPU cores and 8 GiB RAM for a local source build including MinIO.
Start the local stack
From the repository root:
cp .env.example .env
docker compose --profile demo up --build -dThe first run compiles the pinned MinIO source because upstream container pulls may be unavailable. PostgreSQL, Redis, MinIO and Mailpit bind to loopback only. The demo profile creates a workspace explicitly labelled local demo and bypasses company verification for that fixture alone.
Open the app at http://localhost:3400, docs at http://localhost:4321, and captured email at http://localhost:18025. Demo login is owner@demo.nextvision.example with the DEMO_PASSWORD configured in .env.
The demo checks https://example.com using real probe observations. Initial Unknown status becomes Operational after two successful checks; no uptime data is fabricated.
Create a real workspace
Run Compose without the demo profile. Register with a company email, follow the email verification link, and add the displayed DNS TXT record at _nextvision-status.your-domain.
Click Verify DNS. Then create a status page, component and probe, save the one-time probe token, and add a monitor assigned to that probe. Invite teammates using the verified company domain.
Native development
docker compose up -d postgres redis minio mailpit minio-init
set -a
. ./.env
set +a
go run ./cmd/status migrate
go run ./cmd/status api
# In separate terminals with the same environment:
go run ./cmd/status worker
go run ./cmd/status delivery
npm --prefix apps/web ci
npm --prefix apps/web run dev.env.example is trusted shell-compatible local configuration. Production secrets belong in your secret manager.
Stop
docker compose downThis preserves named volumes. Removing volumes deletes the local database and object storage.