Install Sourcegraph with Docker Compose

Deployment Type Suggested for Setup time Multi-machine? Auto healing? Monitoring?
Single-container server Local testing 60 seconds Impossible No No
Docker Compose Small & medium production deployments 5 minutes Possible No Yes
Kubernetes Medium & large highly-available cluster deployments 30 minutes Easily Yes Yes

It takes less than 5 minutes to run and install Sourcegraph using Docker Compose:

git clone [email protected]:sourcegraph/deploy-sourcegraph-docker.git
cd deploy-sourcegraph-docker/docker-compose
git checkout v3.17.2
docker-compose up -d

Once the server is ready (the sourcegraph-frontend-0 service is healthy when running docker ps), navigate to the hostname or IP address on port 80. Create the admin account, then you'll be guided through setting up Sourcegraph for code searching and navigation.

For next steps and further configuration options, visit the site administration documentation.

We strongly recommend that you create your own fork of sourcegraph/deploy-sourcegraph-docker to track customizations to the Sourcegraph Docker Compose yaml. This will make upgrades far easier.

  • Fork sourcegraph/deploy-sourcegraph-docker

    • The fork can be public unless you plan to store secrets (SSL certificates, external Postgres credentials, etc.) in the repository itself.
  • Create a release branch (to track all of your customizations to Sourcegraph. When you upgrade Sourcegraph's Docker Compose definition, you will merge upstream into this branch.

SOURCEGRAPH_VERSION="v3.17.2"
git checkout $SOURCEGRAPH_VERSION -b release

Storage

The Sourcegraph Docker Compose definition uses Docker volumes to store its data. These volumes are stored at /var/lib/docker/volumes by default on Linux.

Resource estimator

Use the resource estimator to find a good starting point for your deployment.

Cloud installation guides

Cloud specific Sourcegraph installation guides for AWS, Google Cloud and Digital Ocean.

Insiders build

To test new development builds of Sourcegraph (triggered by commits to master), change all index.docker.io/sourcegraph/* Docker image semver tags in docker-compose.yaml to insiders (e.g., index.docker.io/sourcegraph/frontend:1.2.3 to index.docker.io/sourcegraph/frontend:insiders).

To keep this up to date, run docker-compose pull to pull in the latest images, and run docker-compose restart to restart all container to access new changes.

Next steps