Installation Guide
This guide covers the supported install paths and the minimum required configuration for a secure Cordum deployment.
Prerequisites
- Docker + Docker Compose (local quickstart)
- curl + jq (for smoke tests)
- Go (optional, for
cordumctl) - Helm + kubectl (Kubernetes installs)
Required environment variables
Cordum requires an API key and a tenant for all API calls.
export CORDUM_API_KEY="$(openssl rand -hex 32)"
export CORDUM_TENANT_ID=default
Compose and the quickstart scripts fail fast if CORDUM_API_KEY is missing.
Docker Compose loads .env automatically; the helper scripts read environment
variables from your shell, so keep the export lines when running scripts.
Option A: One-command quickstart (recommended)
./tools/scripts/quickstart.sh
This builds the local stack, starts the services, and runs a smoke test.
Option B: Install script (local or remote)
# Remote installer
CORDUM_API_KEY="$(openssl rand -hex 32)" \
CORDUM_TENANT_ID=default \
curl -fsSL https://raw.githubusercontent.com/cordum-io/cordum/main/tools/scripts/install.sh | bash
# Local installer
CORDUM_API_KEY="$(openssl rand -hex 32)" CORDUM_TENANT_ID=default ./tools/scripts/install.sh
Option C: Docker Compose (manual)
export CORDUM_API_KEY="$(openssl rand -hex 32)"
export CORDUM_TENANT_ID=default
docker compose build
docker compose up -d
Option D: Kubernetes (Helm)
helm repo add cordum https://charts.cordum.io
helm repo update
helm install cordum cordum/cordum -n cordum --create-namespace \
--set secrets.apiKey=<your-api-key> \
--set gateway.env.tenantId=default \
--set dashboard.env.tenantId=default
Port-forward for local access:
kubectl -n cordum port-forward svc/cordum-api-gateway 8081:8081
kubectl -n cordum port-forward svc/cordum-dashboard 8082:8080
Verify the install
Smoke test:
CORDUM_API_KEY=${CORDUM_API_KEY:?set CORDUM_API_KEY} \
CORDUM_TENANT_ID=${CORDUM_TENANT_ID:-default} \
bash ./tools/scripts/platform_smoke.sh
Status endpoint:
curl -sS http://localhost:8081/api/v1/status \
-H "X-API-Key: ${CORDUM_API_KEY}" \
-H "X-Tenant-ID: ${CORDUM_TENANT_ID}" | jq
Next steps
- Run the guardrails demo:
./tools/scripts/demo_guardrails_run.sh - Install the hello pack:
examples/hello-pack - Open the dashboard:
http://localhost:8082 - Review production hardening:
docs/production.md