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.

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 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 fills it in, generates the app secrets, and validates your answers.

  • In your browser: open the 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.

    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 explains each variable.

3. Bring up the stack

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

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: /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.

Next steps