mirror of
https://github.com/sourcebot-dev/sourcebot.git
synced 2025-12-12 04:15:30 +00:00
88 lines
No EOL
3.8 KiB
Text
88 lines
No EOL
3.8 KiB
Text
---
|
|
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.
|
|
|
|
|
|
<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>
|
|
|
|
<Steps>
|
|
<Step title="Requirements">
|
|
- Docker -> use [Docker Desktop](https://www.docker.com/products/docker-desktop/) on Mac or Windows.
|
|
</Step>
|
|
<Step title="Create a config.json">
|
|
Create a `config.json` file that tells Sourcebot which repositories to sync and index:
|
|
|
|
```bash wrap icon="terminal" Create example config
|
|
touch config.json
|
|
echo '{
|
|
"$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json",
|
|
"connections": {
|
|
// comments are supported
|
|
"starter-connection": {
|
|
"type": "github",
|
|
"repos": [
|
|
"sourcebot-dev/sourcebot"
|
|
]
|
|
}
|
|
}
|
|
}' > config.json
|
|
```
|
|
|
|
This config creates a single GitHub connection named `starter-connection` that specifies [Sourcebot](https://github.com/sourcebot-dev/sourcebot) as a repo to sync. [Learn more about the config file](/docs/configuration/config-file).
|
|
</Step>
|
|
|
|
<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>
|
|
|
|
|
|
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
|
|
```
|
|
|
|
<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.
|
|
</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>
|
|
|
|
## Next steps
|
|
---
|
|
|
|
<CardGroup cols={3}>
|
|
<Card title="Index your code" icon="code" href="/docs/connections/overview">
|
|
Learn how to index your code using Sourcebot
|
|
</Card>
|
|
<Card title="Language models" icon="brain" href="/docs/configuration/language-model-providers">
|
|
Learn how to configure language model providers to start using [Ask Sourcebot](/docs/features/ask/overview)
|
|
</Card>
|
|
<Card title="Authentication" icon="lock" href="/docs/configuration/auth/overview">
|
|
Learn more about how to setup SSO, email codes, and other authentication providers.
|
|
</Card>
|
|
</CardGroup> |