AWS One-Click Installation for Sourcegraph

To learn more about Sourcegraph, check out Sourcegraph 101 and the tour of features using real-world examples.

This page describes how to launch a verified and pre-configured Sourcegraph instance in just ~10 minutes using our one-click CloudFormation template and standard AMIs.

Prefer manually installing on AWS yourself? See our AMI installation options or our script-install installation options.


Prerequisites

What will be created

Using our wizard, a single EC2 instance will be created with the following:

  • EBS root volume: 50GB
  • EBS data volume: 500GB - your Sourcegraph data (code and search indices.)
  • AWS Network Security Group
  • The latest version of Sourcegraph
  • (optional) DNS and TLS via AWS Load Balancer and AWS Certificate Manager

Determine your instance size

The number of users and repositories you will use with Sourcegraph determines your instance size. If you fall between two sizes, choose the larger of the two.

Example: With 8,000 users with 80,000 repositories, your instance size would be L. If you have 1,000 users with 80,000 repositories, then size M.

XS S M L XL
Users <= 500 <= 1,000 <= 5,000 <= 10,000 <= 20,000
Repositories <= 5,000 <= 10,000 <= 50,000 <= 100,000 <= 250,000
Recommended Type m6a.2xlarge m6a.4xlarge m6a.8xlarge m6a.12xlarge m6a.24xlarge
Minimum Type m6a.2xlarge m6a.2xlarge m6a.4xlarge m6a.8xlarge m6a.12xlarge

Deploy Sourcegraph 🎉

Choose an AWS Region in the launcher below and click Launch Stack. When prompted, choose your SSH Keypair and Sourcegraph Instance Size per the chart above, then Create Stack.

Problem? See our Troubleshooting guide

Confirm you can access Sourcegraph

Find the URL of your Sourcegraph instance in the Outputs section of the AWS Stack. On first launch, Sourcegraph may take ~5 minutes to start and may display a 404 not found page temporarily.

Executors

Executors are supported using native kubernetes executors.

Executors support auto-indexing and server-side batch changes.

To enable executors you must do the following:

  1. Connect to the AMI instance using ssh
  2. Run cd /home/ec2-user/deploy/install/
  3. Replace the placeholder executor.frontendPassword in override.yaml
  4. Run the following command to update the executor
helm upgrade -i -f ./override.yaml --version "$(cat /home/ec2-user/.sourcegraph-version)" executor sourcegraph/sourcegraph-executor-k8s
  1. Adding the following to the site-admin config using the password you chose previously
"executors.accessToken": "<exector.frontendPassword>",
"executors.frontendURL": "http://sourcegraph-frontend:30080",
"codeIntelAutoIndexing.enabled": true
  1. Check Site-Admin > Executors > Instances to verify the executor connected successfully. If it does not appear try reboot the instance

To use server-side batch changes you will need to enable the native-ssbc-execution feature flag.

Secure your instance

By default Sourcegraph will be available over HTTP on the public internet. To secure it you should now perform the following:

  1. Configure DNS and HTTPS/TLS using an AWS Load Balancer and AWS Certificate Manager.
  2. Configure user authentication (SSO, SAML, OpenID Connect, etc.)
  3. Review the new Network Security Group to prevent access from the public internet and follow the principle of least privilege.

Managing Sourcegraph

Backup and restore

We strongly recommend you taking snapshots of the entire Sourcegraph data EBS volume on an automatic, scheduled basis. Only the Sourcegraph data volume (500G) needs to be backed up.

To restore from a backup, simply follow our upgrade instructions and skip directly to Step 2: Launch a new instance - choosing your desired Sourcegraph version and your backed up data volume.

Upgrading your Sourcegraph instance

Updates are released every month, and upgrading is a simple process: backup your instance, detach the Sourcegraph data volume, and start a new instance using the latest AMI with your data volume attached. For step-by-step instructions see here.

Monitoring & alerting

Sourcegraph comes with extensive built-in monitoring dashboards & the ability to configure alerts. Please see our monitoring guide for more information.

Get Support

Feel free to reach out to [email protected] if you have any questions.

Business support, training, Slack support, SLAs, and dedicated Technical Advisors are all available through Business and Enterprise plans.