_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. Requirements
Deploy

Requirements

This page requires self-hosted edition.
Deployment

Before deploying the Formance Platform, make sure your cluster meets the following requirements.

Kubernetes Cluster#

  • Kubernetes 1.30+
  • Helm 3.x
  • kubectl configured to access your cluster

Ingress Controller (optional)#

If you want to expose your stacks outside of your Kubernetes cluster, you'll need an Ingress Controller. At Formance, we use Traefik, but any controller that supports standard Ingress objects works.

SSL certificate management can be done either at the level of your LoadBalancer upstream of the Ingress Controller or directly by your Ingress Controller.

The Formance Operator creates standard Ingress objects. Alternative ingress controllers work but might require additional configuration not covered in this guide.

Stateful Dependencies#

The Formance modules require certain stateful dependencies. The unified formance Helm chart can bundle some of these for you, or you can bring your own.

PostgreSQL#

Version 14 or higher is required.

The Formance chart includes a bundled Bitnami PostgreSQL instance, enabled by default (postgresql.enabled: true). This is convenient for development and testing but not recommended for production.

For production, use a managed PostgreSQL service (e.g., AWS RDS, Google Cloud SQL, Azure Database) and disable the bundled instance. See the PostgreSQL setup guide for configuration details.

NATS (optional)#

NATS provides event streaming capabilities. It's disabled by default and can be enabled with global.nats.enabled: true. When enabled, configure the NATS URL and authentication:

YAML
global:
  nats:
    enabled: true
    url: "nats://nats.example.com:4222"

Dependencies by Edition#

DependencyCommunity EditionEnterprise EditionBundled in Chart
PostgreSQL 14+RequiredRequiredYes (postgresql.enabled: true)
NATSOptionalOptionalNo (external only)
Ingress ControllerOptionalRecommendedNo
TLS CertificatesOptionalRecommendedNo
License Key—Required—

The Enterprise Edition deploys additional control plane components (Membership, Console, Dex) that all require PostgreSQL. The bundled PostgreSQL instance serves both the data plane (stacks) and the control plane.

OverviewAll-in-one Demo Chart
On This Page
  • Kubernetes Cluster
  • Ingress Controller (optional)
  • Stateful Dependencies
  • PostgreSQL
  • NATS (optional)
  • Dependencies by Edition