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.
| Component | Requirement | Notes |
|---|---|---|
| Kubernetes | v1.19+ | For Helm deployment |
| Helm | v3.14.0+ | For Helm deployment |
| PostgreSQL | v14.0+ | Required for both deployment methods |
| RAM | 4GB+ | 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 totruefor Mainnet.
Refer to the Helm Chart README for a complete list of parameters.
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.).
| Component | Requirement | Notes |
|---|---|---|
| Docker | v20.10+ | Required for container orchestration |
| RAM | 4GB+ | 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_KEYDISTRIBUTION_SEEDSEP10_SIGNING_PUBLIC_KEYSEP10_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