A self-hosted web panel for Strix, the open-source AI penetration-testing agent. Strix ships as a CLI; Strix Panel wraps it so a team can launch scans remotely, follow their progress, review findings and track LLM token usage and cost — with Google sign-in, multiple users and projects, per-user usage caps and an admin view across everything.
Status: early scaffold. Sign-in, the dashboard shell and the API/worker plumbing work; projects, scans and quotas are next.
Requirements: Docker with Compose.
cp .env.example .env
# Uncomment and set BETTER_AUTH_SECRET (openssl rand -base64 32), GOOGLE_CLIENT_ID/SECRET
# and ALLOWED_EMAIL_DOMAINS. The Docker stack uses Google sign-in by default; for password
# login instead, set AUTH_GOOGLE_ENABLED=false and AUTH_EMAIL_PASSWORD_ENABLED=true.
docker compose up -d --buildOpen http://localhost:8080. The first person to sign in becomes the admin.
Google OAuth redirect URI: <BETTER_AUTH_URL>/api/auth/callback/google.
To serve on a real domain with automatic HTTPS, set SITE_ADDRESS=panel.example.com, publish ports 80/443 on the web service and set BETTER_AUTH_URL=https://panel.example.com.
The
workercontainer mounts the Docker socket so Strix can start its sandbox containers. That is root-equivalent access to the host — run the panel on a machine dedicated to scanning.
Requirements: Bun 1.3+ and Docker.
bun install # no .env needed: dev defaults use password login, Google off
bun run dev:infra # Postgres in Docker
bun run db:migrate
bun run db:seed # admin@example.com / P@ssw0rd
bun run dev # API :3000, web :5173, workerOpen http://localhost:5173. API docs: http://localhost:5173/api/docs.
To change anything (ports, database, Google sign-in), copy .env.example to .env and uncomment what you need. DATABASE_URL follows DB_PORT and BETTER_AUTH_URL follows WEB_PORT, so running several worktrees side by side only needs distinct ports (DB_PORT, API_PORT, WEB_PORT, WORKER_HEALTH_PORT).
| Command | What it does |
|---|---|
bun run check |
Format check, lint, typecheck and tests (what CI runs) |
bun run test |
Tests only (creates and migrates strix_panel_test_*) |
bun run db:generate |
Generate a migration after changing packages/db/src/schema |
bun run db:migrate |
Apply app and queue migrations |
bun run db:seed |
Create the local admin from SEED_ADMIN_* (not in production) |
browser ──► Caddy (web) ──► /api/* ──► api (Elysia) ──► Postgres
└──► SPA (Vue) ▲
worker (BullMQ) ─────┘──► strix CLI ──► Docker sandboxes
See AGENTS.md for the full map and conventions.