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.
curl -fsSL https://github.com/solana-foundation/solana-developer-platform/releases/latest/download/install.sh | bashThe 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
.envinto~/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 yourcompose.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
cd ~/sdp
docker compose up -dsdp-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
docker compose ps
docker compose logs -f sdp-apiOnce 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
- First devnet deployment: sign in to the dashboard, create a local wallet, and call the API.
- Upgrade and backup: keep the stack current and protect your data.
- Environment reference: tune ports, RPC, signing, and authentication.