This guide provides detailed instructions for installing Lightkite in a Kubernetes environment.
kubectlwith cluster administrator privileges- Helm v4, or Helm v3.8+ for OCI chart installation
- MySQL/PostgreSQL database, or local storage for sqlite
Install Lightkite into a new release and namespace. Do not apply this chart over an existing Kite release.
Install the versioned OCI chart published by Lightkite (replace <version>):
helm install lightkite oci://ghcr.io/realmroot/charts/lightkite \
--version <version> -n lightkite-system --create-namespace -f values.yamlIf the repository enables its optional GitHub Pages Helm index, you may instead install that same version from the index:
helm repo add lightkite https://realmroot.github.io/lightkite/
helm repo update
helm install lightkite lightkite/lightkite --version <version> \
-n lightkite-system --create-namespace -f values.yamlYou can adjust installation parameters by customizing the values file:
For complete configuration, refer to Chart Values.
Install with custom values:
helm install lightkite oci://ghcr.io/realmroot/charts/lightkite \
--version <version> -n lightkite-system --create-namespace -f values.yaml
# Or use the Helm repository
helm install lightkite lightkite/lightkite --version <version> \
-n lightkite-system --create-namespace -f values.yamlEach release includes a versioned install.yaml with persistent SQLite storage
and a non-root security context. Download it, replace the OIDC/secret/host
placeholders, review it, and then apply it:
curl -fLO https://github.com/realmroot/lightkite/releases/download/vX.Y.Z/install.yaml
$EDITOR install.yaml
kubectl apply -f install.yamlFor external databases, private issuer CAs, ingress, or other advanced configuration, use the Helm Chart.
During testing, you can quickly access Lightkite through port forwarding:
kubectl port-forward -n lightkite-system svc/lightkite 8080:8080If the cluster supports LoadBalancer, you can directly expose the Lightkite service:
kubectl patch svc lightkite -n lightkite-system -p '{"spec": {"type": "LoadBalancer"}}'Get the assigned IP:
kubectl get svc lightkite -n lightkite-systemFor production environments, it's recommended to expose Lightkite through an Ingress controller with TLS enabled:
::: warning Lightkite's log and web terminal features require websocket support. Some Ingress controllers may require additional configuration to handle websockets correctly. :::
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: lightkite
namespace: lightkite-system
spec:
ingressClassName: nginx
rules:
- host: lightkite.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: lightkite
port:
number: 8080
tls:
- hosts:
- lightkite.example.com
secretName: lightkite-tlsIf you want to serve Lightkite under a subpath (for example https://example.com/lightkite), use the Helm chart basePath value.
How to set it:
- In
values.yaml:
basePath: "/lightkite"- Or with Helm CLI:
helm install lightkite oci://ghcr.io/realmroot/charts/lightkite \
--version <version> -n lightkite-system --create-namespace \
-f values.yaml --set basePath="/lightkite"Important notes:
- Ingress configuration: make sure your Ingress
pathsmatch the subpath and use a matching pathType (e.g.,Prefix). Example:
ingress:
enabled: true
hosts:
- host: lightkite.example.com
paths:
- path: /lightkite
pathType: Prefix- OIDC callback: register the base path when used, for example
https://lightkite.example.com/lightkite/api/auth/callback. - Environment overrides: if you provide environment variables via
extraEnvsor an existing secret, ensureKITE_BASEis set consistently with thebasePathvalue (otherwise behavior may differ).
After installation, open Lightkite and sign in through the configured OIDC provider. The Overview page should load after the provider redirects back to Lightkite.
::: tip If you need to configure Lightkite through environment variables, please refer to Environment Variables. :::
An operator in PLATFORM_ADMIN_GROUPS can open Settings > Clusters and add
a direct cluster using only its API server URL, CA bundle, and optional TLS
server name. Private APIs require operator-managed network connectivity.
Lightkite does not use its Pod ServiceAccount as a cluster credential. The
cluster API server must trust the same OIDC issuer, and Kubernetes RBAC must
bind the signed-in users or groups.
helm uninstall lightkite -n lightkite-systemkubectl delete -f install.yamlAfter Lightkite installation is complete, you can continue with: