Install & setup

Step-by-step setup of the orchestrator app and worker SDK.

Prerequisites

  • bun 1.1+ (pnpm/npm also work)
  • Docker for building the worker image (Nmap / Nuclei / ZAP / Trivy)
  • A Lovable Cloud project (provisions backend + auth)
  • A Cloudflare Turnstile site & secret key

1. Clone and install

git clone <repo>
cd nso
bun install

2. Environment variables

Client (committed to .env, prefixed with VITE_):

VITE_SUPABASE_URL=...
VITE_SUPABASE_PUBLISHABLE_KEY=sb_publishable_...
VITE_TURNSTILE_SITE_KEY=0x4AAAAAA...

Server-only (Lovable Cloud secrets โ€” never VITE_):

SUPABASE_SERVICE_ROLE_KEY=...
TURNSTILE_SECRET_KEY=...

See Configure for the full checklist, and /guides/supabase โ†’ Where to paste API keys and env vars for a step-by-step walkthrough of where each Supabase key comes from and where it is pasted.

3. First run

bun run dev

Open http://localhost:8080. Sign up, create your first tenant via/onboarding, then proceed to /assets.

4. Build and register a worker

From sdk/nso-worker:

docker build -t nso-worker .
docker run --rm \
  -e NSO_API_URL=https://<your-app> \
  -e NSO_WORKER_ID=<id from /settings/workers> \
  -e NSO_WORKER_TOKEN=<token from /settings/workers> \
  nso-worker

The worker appears online on /settings/workers after the first heartbeat (~30s).