> ## Documentation Index
> Fetch the complete documentation index at: https://developers.stellar.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Deployment

> Add the official Stellar Helm chart repository to your local Helm client.

## 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](https://letsencrypt.org) or [Namecheap](https://www.namecheap.com/security/ssl-certificates) 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:

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
helm repo add stellar https://helm.stellar.org/charts
```

#### 2. Prepare Configuration

Download the minimal configuration file to serve as a baseline:

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
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](https://github.com/stellar/stellar-disbursement-platform-backend/blob/develop/helmchart/sdp/README.md#parameters) for a complete list of parameters.

> [!TIP]
>
> There is a more detailed explanation of how to configure the SDP in the [Configuration Guide](https://developers.stellar.org/docs/platforms/stellar-disbursement-platform/admin-guide/configuring-sdp.md).

#### 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.

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
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

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
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.

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
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

```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
docker compose -f dev/docker-compose.yml up -d
```
