Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
services:
sourcebot:
image: ghcr.io/sourcebot-dev/sourcebot:latest
pull_policy: always
container_name: sourcebot
ports:
- "3000:3000"
volumes:
- ./config.json:/data/config.json
- sourcebot_data:/data
environment:
- CONFIG_PATH=/data/config.json
- DATABASE_URL=${DATABASE_URL:-postgresql://postgres@localhost:5432/sourcebot}
- REDIS_URL=${REDIS_URL:-redis://localhost:6379}
- AUTH_URL=${AUTH_URL:-http://localhost:3000}
- AUTH_SECRET=${AUTH_SECRET:-}
- AUTH_CREDENTIALS_LOGIN_ENABLED=${AUTH_CREDENTIALS_LOGIN_ENABLED:-true}
- AUTH_EMAIL_CODE_LOGIN_ENABLED=${AUTH_EMAIL_CODE_LOGIN_ENABLED:-false}
- SMTP_CONNECTION_URL=${SMTP_CONNECTION_URL:-}
- EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS:-}
- SOURCEBOT_EE_LICENSE_KEY=${SOURCEBOT_EE_LICENSE_KEY:-}
- SOURCEBOT_ENCRYPTION_KEY=${SOURCEBOT_ENCRYPTION_KEY:-}
- SOURCEBOT_TELEMETRY_DISABLED=${SOURCEBOT_TELEMETRY_DISABLED:-false}
- ZOEKT_WEBSERVER_URL=${ZOEKT_WEBSERVER_URL:-http://localhost:6070}
- SHARD_MAX_MATCH_COUNT=${SHARD_MAX_MATCH_COUNT:-}
- TOTAL_MAX_MATCH_COUNT=${TOTAL_MAX_MATCH_COUNT:-}
- ZOEKT_MAX_WALL_TIME_MS=${ZOEKT_MAX_WALL_TIME_MS:-}

# AWS
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-}
- AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN:-}
- AWS_REGION=${AWS_REGION:-}
# OpenAI
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
# Anthropic
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
# Azure
- AZURE_API_KEY=${AZURE_API_KEY:-}
- AZURE_RESOURCE_NAME=${AZURE_RESOURCE_NAME:-}
# DeepSeek
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-}
# Google gen ai
- GOOGLE_GENERATIVE_AI_API_KEY=${GOOGLE_GENERATIVE_AI_API_KEY:-}
# Google vertex
- GOOGLE_VERTEX_PROJECT=${GOOGLE_VERTEX_PROJECT:-}
- GOOGLE_VERTEX_REGION=${GOOGLE_VERTEX_REGION:-}
- GOOGLE_APPLICATION_CREDENTIALS=${GOOGLE_APPLICATION_CREDENTIALS:-}
- GOOGLE_VERTEX_THINKING_BUDGET_TOKENS=${GOOGLE_VERTEX_THINKING_BUDGET_TOKENS:-}
- GOOGLE_VERTEX_INCLUDE_THOUGHTS=${GOOGLE_VERTEX_INCLUDE_THOUGHTS:-}
# XAI
- XAI_API_KEY=${XAI_API_KEY:-}
# Mistral
- MISTRAL_API_KEY=${MISTRAL_API_KEY:-}
# Openrouter
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-}

restart: unless-stopped

volumes:
sourcebot_data:
driver: local
44 changes: 19 additions & 25 deletions docs/docs/deployment-guide.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,24 @@ title: "Deployment guide"

import SupportedPlatforms from '/snippets/platform-support.mdx'

The following guide will walk you through the steps to deploy Sourcebot on your own infrastructure. Sourcebot is distributed as a [single docker container](/docs/overview#architecture) that can be deployed to a k8s cluster, a VM, or any platform that supports docker.
Sourcebot is distributed as a [single docker container](/docs/overview#architecture) that can be deployed to a k8s cluster, a VM, or any platform that supports docker. The following guide will walk you through the steps to deploy Sourcebot locally using [Docker compose](https://docs.docker.com/compose).


<Note>Hit an issue? Please let us know on [GitHub](https://github.com/sourcebot-dev/sourcebot/issues/new/choose) or by [emailing us](mailto:team@sourcebot.dev).</Note>
<Note>Hit an issue? Please let us know on [GitHub](https://github.com/sourcebot-dev/sourcebot/issues/new) or by [emailing us](mailto:team@sourcebot.dev).</Note>

## Walkthrough
---

<Steps>
<Step title="Requirements">
- Docker -> use [Docker Desktop](https://www.docker.com/products/docker-desktop/) on Mac or Windows.
- docker & docker compose -> use [Docker Desktop](https://www.docker.com/products/docker-desktop/) on Mac or Windows.
</Step>
<Step title="Obtain the Docker Compose file">
Download the [docker-compose.yml](https://github.com/sourcebot-dev/sourcebot/blob/main/docker-compose.yml) file from the Sourcebot repository.

```bash wrap icon="terminal"
curl -o docker-compose.yml https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/docker-compose.yml
```
</Step>
<Step title="Create a config.json">
Create a `config.json` file that tells Sourcebot which repositories to sync and index:
Expand All @@ -38,40 +48,24 @@ The following guide will walk you through the steps to deploy Sourcebot on your
<Step title="Launch your instance">
<Warning>If you're deploying Sourcebot behind a domain, you must set the [AUTH_URL](/docs/configuration/environment-variables) environment variable.</Warning>

Launch your Sourcebot instance:

In the same directory as `config.json`, run the following command to start your instance:

``` bash icon="terminal" Start the Sourcebot container
docker run \
-p 3000:3000 \
--pull=always \
--rm \
-v $(pwd):/data \
-e CONFIG_PATH=/data/config.json \
--name sourcebot \
ghcr.io/sourcebot-dev/sourcebot:latest
```bash wrap icon="terminal"
docker compose up -d
```

<Accordion title="Details">
**This command**:
- pulls the latest version of the `sourcebot` docker image.
- mounts the working directory to `/data` in the container to allow Sourcebot to persist data across restarts, and to access the `config.json`. In your local directory, you should see a `.sourcebot` folder created that contains all persistent data.
- runs any pending database migrations.
- starts up all services, including the webserver exposed on port 3000.
- reads `config.json` and starts syncing.
</Accordion>

</Step>

<Step title="Complete onboarding">
Navigate to `http://localhost:3000` and complete the onboarding flow.
Navigate to [http://localhost:3000](http://localhost:3000) and complete the onboarding flow.
</Step>

<Step title="Done">
You're all set! If you'd like to setup [Ask Sourcebot](/docs/features/ask/overview), configure a language model [provider](/docs/configuration/language-model-providers).
</Step>
</Steps>

Checkout the [configuration docs](/docs/configuration/environment-variables) to learn more about how to configure your deployment.

## Next steps
---

Expand Down
Loading