Security Checklist
Verify secrets, access control, proxy, backup, and sandbox item by item before going live
Use this checklist before exposing the deployment to users. Items describe operator responsibilities; the supplied Compose or Kubernetes files complete none of them automatically.
Secrets and configuration
- Replace every default in
SECRET_KEY,POSTGRES_PASSWORD,REDIS_PASSWORD, andQDRANT_API_KEY. - Set a unique non-empty
INTERNAL_API_TOKENshared by the API, worker, and sandbox-worker for the internal upload gateway. - Keep
.env, Kubernetes Secret manifests, and installer output out of version control with tight file permissions. - Store production secrets in a secret manager or externally managed Secrets where possible; rotate during planned maintenance windows.
- Point
API_BASE_URL/API_INTERNAL_BASE_URLat internal service URLs, andPUBLIC_API_URL,FRONTEND_URL,BACKEND_CORS_ORIGINSat the public browser origin.
Authentication and access
- Register the first account only while the deployment is still private; the first registered user becomes the initial superuser.
- Configure session timeout, registration, email/SSO, and other site settings in the admin UI per policy.
- Review team membership and admin permissions regularly; remove unused API keys and integrations.
- Before enabling MFA/SSO, test the provider configuration and recovery path.
Network and proxy
- Terminate HTTPS at the external reverse proxy or Ingress with valid certificates.
- Expose only the frontend/reverse-proxy port; keep PostgreSQL, Redis, Qdrant, and the direct API port on private networks.
- Set exact CORS origins; never use
*in production. - Configure streaming over HTTP/1.1 with
proxy_buffering offand read/write timeouts matching the 1800-second example. - Restrict the
clouislenamespace with RBAC, NetworkPolicies, and Ingress policy.
Data protection and recovery
- Enable encryption at rest for PostgreSQL, Qdrant, uploads, and backup storage where supported.
- Back up PostgreSQL, Qdrant snapshots, and uploads on schedule; Redis holds only cache/queue state so backup is optional.
- Keep encrypted off-site copies with a retention policy.
- Rehearse a full restore including Qdrant and uploads; record RTO/RPO results.
- Never run
docker compose down -vor delete PVCs outside intentional destructive operations.
Runtime and sandbox
- Pin production image tags/digests instead of
latest; scan images before deploying. - Keep sandbox filesystem isolation enabled with the worker's required seccomp/capability settings; review the sandbox hardening guidance before changing them.
- Limit sandbox egress and resource usage at the host/cluster layer per the threat model.
- Keep Docker, Kubernetes, PostgreSQL, Redis, Qdrant, Bubblewrap, and the host kernel patched.
Logging and incident response
- Collect and protect API, worker, beat, frontend, and proxy logs; exclude tokens and passwords.
- Poll
GET /api/v1/healthand use the admin observability endpoints/dashboard (requiresadmin:dashboard:access). There is no built-in Prometheus/metricsendpoint. - Alert on failed health checks, auth anomalies, queue backlog, disk exhaustion, and backup failures.
- Document escalation, credential rotation, isolation, restore, and post-incident review procedures.
How is this guide?