_Docs/
Get StartedModulesPlatformDeployCookbookChangelogReference
_Deploy
  • Deployment Overview
    • Overview
    • Requirements
    • Demo
      • All-in-one Demo Chart
    • Installation
      • Operator Setup
      • Control Plane SetupEE
    • Infrastructure Services
      • PostgreSQL
      • Message Broker
      • Temporal
    • Module Configuration
      • Stack Configuration
      • Gateway Module
      • Ledger Module
      • Payments Module
      • Auth ModuleEE
      • Orchestration ModuleEE
      • Reconciliation ModuleEE
      • Wallets ModuleEE
      • Webhooks ModuleEE
    • Configuration Reference
      • Operator settings reference
      • API Reference
    • Backups management
    • Troubleshooting
    • Configure OpenTelemetry
    • Traces
    • Metrics
    • Upgrade from the operator
    • Database update
  1. Deploy
  2. Self-Hosted
  3. Demo
  4. All-in-one Demo Chart
Deploy

All-in-one Demo Chart

This page requires self-hosted edition.
Deployment

This guide shows you how to deploy a fully working Formance stack for testing using the unified formance Helm chart with the CE demo profile.

What Gets Deployed#

The CE demo profile layers on top of ce-minimal.yaml and adds:

  • Bundled PostgreSQL — single-node Bitnami database for all modules
  • A demo-dev stack — pre-configured via regions.stacks with Gateway and Ledger modules (version v3.1)
  • Settings — PostgreSQL URI, resource requests, and replica count configured automatically via regions.settings
  • Each module runs with 2 replicas and minimal resources (50m CPU, 500Mi memory)

Default host: formance.localhost

Install the Demo#

The ce-demo.yaml profile currently injects an unknown field into the Stack resource that fails CRD validation. Until the fix lands, install with only ce-minimal.yaml and apply the demo stack manually — that's what the steps below do.

Install the chart with the minimal profile:

Bash
helm upgrade --install formance oci://ghcr.io/formancehq/helm/formance \
  --version 1.10.0 \
  --namespace formance-system \
  --create-namespace \
  -f https://raw.githubusercontent.com/formancehq/helm/formance-1.10.0/charts/formance/profiles/ce-minimal.yaml

Apply the demo Stack and modules:

YAML
# demo.yaml
apiVersion: formance.com/v1beta1
kind: Stack
metadata:
  name: demo-dev
spec:
  debug: true
  versionsFromFile: v3.1
---
apiVersion: formance.com/v1beta1
kind: Gateway
metadata:
  name: demo-dev
spec:
  stack: demo-dev
---
apiVersion: formance.com/v1beta1
kind: Ledger
metadata:
  name: demo-dev
spec:
  stack: demo-dev
Bash
kubectl apply -f demo.yaml

The demo uses a bundled PostgreSQL without persistent storage — not for production.

Verify the Installation#

Check that the operator and PostgreSQL pods are running:

Bash
kubectl get pods -n formance-system

Check that the stack has been created:

Bash
kubectl get stacks

You should see a demo-dev stack. Wait for all stack modules to become ready:

Bash
kubectl get pods --all-namespaces -l formance.com/stack

Access the Demo#

Port-forward the Gateway to access the stack API locally:

Bash
kubectl port-forward -n demo-dev svc/gateway 8080:8080

Verify the stack is responding:

Bash
curl http://localhost:8080/versions

What's Inside the CE Demo Profile#

The ce-demo.yaml profile configures the following Helm values:

YAML
global:
  serviceHost: "formance.localhost"

regions:
  settings:
    postgres-uri:
      key: "postgres.*.uri"
      value: "postgresql://formance:formance@postgresql.formance-system.svc:5432?disableSSLMode=true"
    resource-requests:
      key: "deployments.*.containers.*.resource-requirements.requests"
      value: "cpu=50m,memory=500Mi"
    replicas:
      key: "deployments.*.replicas"
      value: "2"
  stacks:
    demo-dev:
      debug: true
      versionsFromFile: "v3.1"
      modules:
        gateway: {}
        ledger: {}

This creates:

  • A Stack CRD named demo-dev with the v3.1 module versions
  • Settings CRDs for PostgreSQL URI, resource requests, and replica count

Create Your Own Demo Stack#

Instead of using the profile, define a custom demo stack directly in your values:

YAML
# custom-demo.yaml
regions:
  settings:
    postgres-uri:
      key: "postgres.*.uri"
      value: "postgresql://formance:formance@postgresql.formance-system.svc:5432?disableSSLMode=true"
  stacks:
    my-test-stack:
      versionsFromFile: "v3.1"
      modules:
        gateway: {}
        ledger: {}
        payments: {}
Bash
helm upgrade --install formance oci://ghcr.io/formancehq/helm/formance \
  --version 1.10.0 \
  --namespace formance-system \
  --create-namespace \
  -f custom-demo.yaml

Clean Up#

To remove the demo deployment:

Bash
helm uninstall formance -n formance-system
RequirementsOperator Setup
On This Page
  • What Gets Deployed
  • Install the Demo
  • Verify the Installation
  • Access the Demo
  • What's Inside the CE Demo Profile
  • Create Your Own Demo Stack
  • Clean Up