> Solana Developer Platform docs, served as Markdown. The [docs index](https://platform-beta.solana.com/docs.md) lists every page and [llms.txt](https://platform-beta.solana.com/docs/ai/llms.txt) the key ones; [SKILL.md](https://platform-beta.solana.com/SKILL.md) has the rules for building on SDP.

# Quickstart

Install the self-hosted stack, generate a .env, and bring it up with Docker Compose.

Go from an empty host to a running Solana Developer Platform. You need Docker Engine and Docker Compose v2, with the Docker daemon running.

## 1. Install

Run the install script. It downloads the latest release's `compose.yml` and `.env.example` into `~/sdp` and checks them against the release's `SHA256SUMS`. When `cosign` is installed, it also verifies the signature on `SHA256SUMS`.

```bash title="Terminal"
curl -fsSL https://github.com/solana-foundation/solana-developer-platform/releases/latest/download/install.sh | bash
```

The script is open source: read it before you run it. Its header shows how to verify the checksums and signature yourself, and lists the variables you can override, such as `SDP_INSTALL_DIR` and `INSTALL_VERSION` (a release tag to install instead of the latest).

To install by hand, download `compose.yml` and `default.env.example` from the [latest release](https://github.com/solana-foundation/solana-developer-platform/releases/latest) into a working directory, and save the second file as `.env.example`.

## 2. Generate your `.env`

The stack reads its configuration from a `.env` next to `compose.yml`. The [configurator](/docs/self-hosting/configurator) fills it in, generates the app secrets, and validates your answers.

- **In your browser:** open the [configurator](/docs/self-hosting/configurator), answer the prompts, and save the `.env` into `~/sdp`.
- **In your terminal:** run the configurator from the API image. Put the release tag you installed in place of `latest`, so the configurator matches your `compose.yml`. The install script prints this command with your tag filled in.

  ```bash title="Terminal"
  docker run --rm -it -v "$HOME/sdp:/out" \
    ghcr.io/solana-foundation/sdp/sdp-api:latest \
    node configure.js --out /out/.env
  ```

The [environment reference](/docs/self-hosting/env-reference) explains each variable.

## 3. Bring up the stack

```bash title="Terminal"
cd ~/sdp
docker compose up -d
```

`sdp-migrate` applies the database migrations first. The API starts next, and the dashboard and docs follow once it's healthy. The first run pulls the images, so it can take a few minutes.

## 4. Verify

```bash title="Terminal"
docker compose ps
docker compose logs -f sdp-api
```

Once the services report healthy, the dashboard is at `http://localhost:3000`, the API at `http://localhost:8787`, and these docs at `http://localhost:3001`. Point uptime checks at the API's [health endpoints](/docs/reference/api/health): `/health` says the API is up, and `/health/ready` also checks the database and Redis.

If a service fails to start or a required variable is missing, see [Troubleshooting](/docs/self-hosting/troubleshooting).

## Next steps

- [First devnet deployment](/docs/self-hosting/first-devnet-deployment): sign in to the dashboard, create a local wallet, and call the API.
- [Upgrade and backup](/docs/self-hosting/upgrade-and-backup): keep the stack current and protect your data.
- [Environment reference](/docs/self-hosting/env-reference): tune ports, RPC, signing, and authentication.
