Deployment Options
| Option | Best For |
|---|---|
| Cloud (SaaS) | Teams that want zero ops — we manage everything |
| k3s (self-hosted) | Teams with Kubernetes experience |
| Docker Compose | Small teams, single-server deployments |
| Air-gapped | Enterprise with strict network isolation |
Prerequisites
- PostgreSQL 15+
- Keycloak 22+ (or your existing IdP via SAML/OIDC)
- Rust binary (single artifact, no runtime deps)
k3s Deployment
# 1. Create namespace
kubectl create namespace rigorix
# 2. Deploy PostgreSQL (or use external)
kubectl apply -f k8s/postgres.yaml
# 3. Deploy Keycloak (or use external)
kubectl apply -f k8s/keycloak.yaml
# 4. Deploy Rigorix
kubectl apply -f k8s/rigorix.yaml
# 5. Deploy marketing site (nginx + Astro static output)
kubectl create configmap landing-html --from-file=site/dist/ -n rigorix
kubectl apply -f k8s/landing.yaml
Docker Compose
docker compose up -d
Access the dashboard at http://localhost:8080 and the marketing site at http://localhost:3000.
Configuration
All configuration is via environment variables:
| Variable | Description | Default |
|---|---|---|
DATABASE_URL | PostgreSQL connection string | — |
KEYCLOAK_URL | Keycloak server URL | — |
KEYCLOAK_REALM | Keycloak realm | rigorix |
JWT_SECRET | JWT signing secret | — |
RUST_LOG | Log level | info |