Skip to content

GETTING STARTED

Getting started

Pick the path that matches where you are running Haven. All commands assume you are in the repo root.


Prerequisites

Tool Used for
kubectl Cluster access
make Dev overlay, UI build, CRDs
Docker (remote deploy) Building console image on lab host
Node.js 20+ Local UI development (make ui-dev)

Install cluster operators once per cluster:

./deploy/operators/install.sh
make crds    # optional for compose-only; needed for samples

Pinned versions: versions.env (Keycloak Operator 26.8.0, CloudNativePG 1.30.1).


Local cluster (compose path)

The fastest way to run Keycloak + Postgres without the v1 controller.

make dev
make wait
make doctor
make admin
What Where
Keycloak Admin Console http://auth.127.0.0.1.nip.io/admin
Bootstrap secret platform-initial-admin in namespace identity
Optional first realm make realm-import

IdentityPlane samples (make samples-dev) store intent for the future controller — they do not provision resources today. Do not confuse them with make dev.

Next steps: Runbook → Path B · CLI · Console local dev


Lab host (remote console)

Deploy the Haven console to the shared lab machine and connect it to the existing Keycloak instance.

./scripts/deploy-remote.sh <ephemeral-ip> operator
./scripts/deploy-remote.sh <ephemeral-ip> operator --quick   # skip image rebuild
Service URL
Console login http://:30742/login
Keycloak admin http://:30180/admin
OIDC issuer http://<ephemeral-ip>:30180/realms/master

Sign in with lab credentials (demo / demo) or Keycloak admin — see Console → Authentication.

Full endpoint table, SSH access, and OIDC client wiring: lab-host.md.

Next steps: Tutorials → Verify deploy · Console


Production overlay

See production-overlay.md for the full guide. Short version:

  1. ./hack/gen-prod-secrets.sh — replace placeholder passwords
  2. make prod — apply overlay
  3. Wait for CNPG, then ./hack/sync-cnpg-ca.sh (Keycloak verifies DB TLS)
  4. Issue platform-tls from your ClusterIssuer
  5. Configure backups separately — a ScheduledBackup fails without an object store

Details: production-overlay.md · Runbook → Path C


Web UI (local development)

Product landing + live identity console in ui/web/:

make ui-install   # once
make ui-dev       # Vite → http://localhost:5173
go run ./cmd/haven-console
Route Purpose
/ Landing
/login Sign-in
/deck Command Deck — plane + Keycloak health
/realms Realm Studio
/settings Keycloak connect, passwords

Route reference and auth modes: console.md.


Where to go next

Role Recommended reading
Platform operator Runbook → Tutorials
Architect / integrator Architecture → Private cloud
UI / product UX → Roadmap