This page requires self-hosted edition.
Deployment
This guide walks you through installing Formance on your Kubernetes cluster using the unified Formance Helm chart.
Enterprise Edition requires a valid license. Contact sales@formance.com to obtain one.
Prerequisites#
Before you begin, ensure you have:
- Kubernetes 1.30+ cluster
- Helm 3.x installed
kubectlconfigured to access your cluster- An Ingress Controller (nginx, traefik, etc.)
- SSL certificates for your domain
- Enterprise Edition license (Cluster ID and License Token)
For detailed requirements, see the Requirements page.
Quick Start#
Set Environment Variables#
Bash
export CLUSTER_ID=$(kubectl get ns kube-system -o jsonpath='\{.metadata.uid\}')
export LICENCE_TOKEN="your-licence-token"
export BASE_DOMAIN="formance.example.com"Install#
Bash
helm upgrade --install formance oci://ghcr.io/formancehq/helm/formance \
--version 1.10.0 \
--namespace formance-system \
--create-namespace \
--set tags.EntrepriseEdition=true \
--set global.licence.clusterID=$CLUSTER_ID \
--set global.licence.token=$LICENCE_TOKEN \
--set global.serviceHost=$BASE_DOMAINConfigure Service Hosts#
Enterprise Edition requires service hosts for the control plane components:
| Component | Value Key |
|---|---|
| Global | global.serviceHost |
| Membership | membership.serviceHost |
| Dex (OIDC) | dex.serviceHost |
| Portal | portal.serviceHost |
| Console V3 | console.serviceHost |
Using Minimal Profile#
For a minimal Enterprise installation:
Bash
helm upgrade --install formance oci://ghcr.io/formancehq/helm/formance \
--version 1.10.0 \
--namespace formance-system \
--create-namespace \
--set tags.EntrepriseEdition=true \
--set global.licence.clusterID=$CLUSTER_ID \
--set global.licence.token=$LICENCE_TOKEN \
-f https://raw.githubusercontent.com/formancehq/helm/main/charts/formance/profiles/ee-minimal.yamlCustom Configuration#
Using a Values File#
For a production deployment with a custom domain and TLS:
Bash
export CLUSTER_ID=$(kubectl get ns kube-system -o jsonpath='\{.metadata.uid\}')
export LICENCE_TOKEN="your-licence-token"
export BASE_DOMAIN="formance.example.com"
helm upgrade --install formance oci://ghcr.io/formancehq/helm/formance \
--version 1.10.0 \
--namespace formance-system \
--create-namespace \
--set tags.EntrepriseEdition=true \
--set global.licence.clusterID=$CLUSTER_ID \
--set global.licence.token=$LICENCE_TOKEN \
--set global.serviceHost=$BASE_DOMAINView All Configuration Options#
Bash
helm show values oci://ghcr.io/formancehq/helm/formance --version 1.10.0Verify Installation#
Check that all components are running:
Bash
kubectl get pods -n formance-systemYou should see:
NAME READY STATUS RESTARTS AGE
formance-operator-xxxxx-xxxxx 1/1 Running 0 2m
membership-xxxxx-xxxxx 1/1 Running 0 2m
console-v3-xxxxx-xxxxx 1/1 Running 0 2m
membership-dex-xxxxx-xxxxx 1/1 Running 0 2m
postgresql-0 1/1 Running 0 2mLicense Validation#
The chart enforces license validation when tags.EntrepriseEdition is true:
- Installation will fail if
global.licence.clusterIDis missing - Installation will fail if
global.licence.tokenis missing
Get your Cluster ID with: kubectl get ns kube-system -o jsonpath='\{.metadata.uid\}'
Next Steps#
After installing the operator:
- Configure your Infrastructure Services (PostgreSQL, Message Broker)
- Deploy your first Stack
- Enable the modules you need
- Configure the Control Plane — Set up Dex, create organizations, and configure SSO