Run the manager and Postgres locally with Docker; the stack reads configuration from .env only.
kind + kubectl if you plan to attach a real cluster laterenv.example to .env and adjust values (Postgres DSN, auth, telemetry, component versions).DATABASE_URL and JWT_SIGNING_KEY (when auth is on) are required; the manager fails fast if they are missing.docker compose -f docker-compose.dev.yml up -d db manager
5432, manager API 8080.docker compose -f docker-compose.dev.yml down and rebuild images with docker compose -f docker-compose.dev.yml build.curl -s http://localhost:8080/api/v1/healthz
curl -s http://localhost:8080/api/v1/readyz
KUBENOVA_REQUIRE_AUTH=false), set X-KN-Roles: admin for admin-only calls.curl -s -X POST http://localhost:8080/api/v1/tokens \
-H 'Content-Type: application/json' \
-d '{"subject":"admin@example.com","roles":["admin"],"ttlMinutes":60}' \
| jq -r '.token' > /tmp/kubenova.token
If you have a kind cluster (see kind E2E setup):
KUBE_B64=$(base64 -w0 kind/config)
CAPSULE_PROXY_ENDPOINT="https://proxy.dev.example.com"
curl -s -X POST http://localhost:8080/api/v1/clusters \
-H 'Content-Type: application/json' \
-H 'X-KN-Roles: admin' \
-d "{\"name\":\"dev-cluster\",\"datacenter\":\"dc1\",\"labels\":{\"env\":\"dev\"},\"kubeconfig\":\"$KUBE_B64\",\"capsuleProxyEndpoint\":\"$CAPSULE_PROXY_ENDPOINT\"}"
The manager uses Helm (bundled in the image) and the local operator chart to install the operator into the cluster.
If you enable the VelaUX addon and want a public endpoint in dev/test:
kubectl -n vela-system patch svc velaux-server -p '{"spec": {"type": "LoadBalancer"}}'
kind.npm install && npm run docs:dev.