Deploying Sourcegraph on DigitalOcean
This Terraform plan creates an SSH key and Droplet and deploys the latest stable version of Sourcegraph with TLS using a self-signed certificate.
Prerequisites
NOTE: A basic level of knowledge and experience using Terraform is required.
Terraform DigitalOcean authentication
Authentication requires a a DigitalOcean API token set to the DIGITALOCEAN_TOKEN environment variable.
Terraform plan configuration
The existence of a terraform.tfvars file is required. To create it, copy the contents of terraform.tfvars.sample to a new terraform.tfvars file and review to see which variables (if any) you'd like to set.
The only required variable is
ssh_key_file.
Commands
The Makefile has commands to cover the most common use-cases. The easiest way to create your Droplet is to run:
make deployThis will create the Droplet and poll the server to let you know when Sourcegraph is ready.
Other commands include:
make init: Downloads the required Terraform provider packages.make plan: Review what resources Terraform will create, change or remove.make apply: Creates the Droplet and SSH key.make sourcegraph: Waits for Sourcegraph to accept connections.make output: Displays the same output as whenmake applycompletes.make destroy: Removes the Droplet and SSH key.
WARNING:
make destroywill destroy the Droplet so back-up the/etc/sourcegraphand/var/opt/sourcegraphdirectories first.
Upgrading Sourcegraph
- SSH into the Droplet
- Run
./sourcegraph-upgrade
The newer Docker image will be pulled and Sourcegraph will be restarted.
Troubleshooting
./bin/wait-for-it.sh: line 58: timeout: command not foundThe bin/wait-for-it.sh script uses the timeout binary which is not included in macOS. Install using homebrew:
brew install coreutils