Quickstart
Install the self-hosted stack, generate a .env, and bring it up with Docker Compose.
This guide takes you from an empty host to a running Solana Developer Platform. It assumes Docker Engine and Docker Compose v2 are installed and the Docker daemon is running.
1. Install
The install script downloads compose.yml and .env.example for the latest
release into ~/sdp and verifies them against the release checksums.
curl -fsSL https://github.com/solana-foundation/solana-developer-platform/releases/latest/download/install.sh | bashThe script is open source — you can read it before running it, and verify the
checksums and signature out of band. The commented header of install.sh
documents the full verified-install flow and the environment variables you can
override (SDP_INSTALL_DIR, INSTALL_VERSION, and others).
Prefer to do it by hand? Download compose.yml and .env.example from the
latest release
into a working directory instead.
2. Generate your .env
The stack reads its configuration from a .env file next to compose.yml. The
configurator fills it in for you, generates
the app secrets, and validates your answers.
-
In your browser — open the configurator, answer the prompts, and download the
.envinto~/sdp. -
In your terminal — run the configurator from the API image:
docker run --rm -it -v "$HOME/sdp:/out" \ ghcr.io/solana-foundation/sdp/sdp-api:latest \ node configure.js --out /out/.envUse the same release tag you installed in place of
latestso the configurator matches yourcompose.yml.
See the environment reference for what each variable means and which are required.
3. Bring up the stack
cd ~/sdp
docker compose up -dOn startup, sdp-migrate runs the database migrations once, then the API, web,
and docs services start. The first run pulls the images, so it may take a few
minutes.
4. Verify
docker compose ps
docker compose logs -f sdp-apiWhen the services report healthy, the dashboard is at http://localhost:3000,
the API at http://localhost:8787, and these docs at http://localhost:3001.
The API exposes a health endpoint you can poll from
a load balancer or uptime check.
If a service fails to start or a required variable is missing, see Troubleshooting.
Next steps
- First devnet deployment — log into the dashboard, initialize a local wallet, and verify API access.
- Upgrade & backup — keep the stack current and protect your data.
- Environment reference — tune ports, RPC, signing, and authentication.