Skip to main content

Deployment

Deployment via Helm Charts

Minimum System Requirements

  • Stellar Accounts: You will need a Distribution Account (funded) and a SEP-10 Signing Account.
  • Certificates: When running the SDP in a multi-tenant configuration, you will need to acquire wildcard TLS certificates to facilitate tenant provisioning as the SDP relies on subdomains to differentiate between tenants. This will allow you to provision tenants without having to manually configure TLS certificates for each tenant. You can use a service like Let's Encrypt or Namecheap to acquire these certificates.
ComponentRequirementNotes
Kubernetesv1.19+For Helm deployment
Helmv3.14.0+For Helm deployment
PostgreSQLv14.0+Required for both deployment methods
RAM4GB+Minimum memory recommended for running the full stack in single tenant mode

Installing the Chart

1. Add the Stellar Helm Repository

Add the official Stellar Helm chart repository to your local Helm client:

helm repo add stellar https://helm.stellar.org/charts

2. Prepare Configuration

Download the minimal configuration file to serve as a baseline:

curl -LJO https://raw.githubusercontent.com/stellar/stellar-disbursement-platform-backend/main/helmchart/sdp/minimal-values.yaml

The following parameters can be set in the minimal-values.yaml file or overridden directly via the CLI during installation:

  • global.distributionPublicKey: Public key of the distribution account.
  • global.distributionPrivateKey: Private key of the distribution account.
  • global.sep10PublicKey: Public key for SEP-10 authentication.
  • global.sep10PrivateKey: Private key for SEP-10 authentication.
  • global.isPubnet: Set to true for Mainnet.

Refer to the Helm Chart README for a complete list of parameters.

tip

There is a more detailed explanation of how to configure the SDP in the Configuration Guide.

3. Install the Chart

Install the chart using your customized values file. You can override values directly via the CLI or modify the minimal-values.yaml file.

helm install sdp -f minimal-values.yaml stellar/stellar-disbursement-platform \
--set "global.distributionPublicKey=<YOUR_KEY>" \
--set "global.distributionPrivateKey=<YOUR_SECRET>" \
--set "global.sep10PublicKey=<YOUR_KEY>" \
--set "global.sep10PrivateKey=<YOUR_SECRET>"

Deployment via Docker Compose

This section outlines how to deploy the SDP using Docker Compose for a production-like environment. Unlike the development setup, this configuration uses pre-built production images and requires explicit configuration of environment variables and secrets.

Minimum System Requirements

  • Stellar Accounts: You will need a Distribution Account (funded) and a SEP-10 Signing Account.
  • Network Access: Outbound access to the Stellar network (Horizon/Soroban) and any third-party integrations (Twilio, AWS SES, etc.).
ComponentRequirementNotes
Dockerv20.10+Required for container orchestration
RAM4GB+Minimum memory recommended for running the full stack

Deployment Steps

1. Clone the Repository

git clone https://github.com/stellar/stellar-disbursement-platform-backend.git
cd stellar-disbursement-platform-backend

2. Create Environment File

Copy the example environment file.

cp dev/.env.example dev/.env

3. Configure Environment Variables

Edit dev/.env and populate the following variables with your Stellar account keys:

  • DISTRIBUTION_PUBLIC_KEY
  • DISTRIBUTION_SEED
  • SEP10_SIGNING_PUBLIC_KEY
  • SEP10_SIGNING_PRIVATE_KEY

For mainnet deployment, set: _ NETWORK_TYPE=pubnet _ NETWORK_PASSPHRASE=Public Global Stellar Network ; September 2015 _ HORIZON_URL=https://horizon.stellar.org _ DISABLE_MFA=false (Enforced for security)

4. Start the Services

docker compose -f dev/docker-compose.yml up -d