|
1 | 1 | services: |
2 | 2 | sourcebot: |
3 | 3 | image: ghcr.io/sourcebot-dev/sourcebot:latest |
4 | | - pull_policy: always |
| 4 | + user: sourcebot |
| 5 | + restart: always |
5 | 6 | container_name: sourcebot |
| 7 | + depends_on: |
| 8 | + postgres: |
| 9 | + condition: service_healthy |
| 10 | + redis: |
| 11 | + condition: service_healthy |
6 | 12 | ports: |
7 | 13 | - "3000:3000" |
8 | 14 | volumes: |
9 | 15 | - ./config.json:/data/config.json |
10 | 16 | - sourcebot_data:/data |
11 | 17 | environment: |
12 | 18 | - CONFIG_PATH=/data/config.json |
13 | | - - DATABASE_URL=${DATABASE_URL:-postgresql://postgres@localhost:5432/sourcebot} |
14 | | - - REDIS_URL=${REDIS_URL:-redis://localhost:6379} |
15 | 19 | - AUTH_URL=${AUTH_URL:-http://localhost:3000} |
16 | | - - AUTH_SECRET=${AUTH_SECRET:-} |
17 | | - - AUTH_CREDENTIALS_LOGIN_ENABLED=${AUTH_CREDENTIALS_LOGIN_ENABLED:-true} |
18 | | - - AUTH_EMAIL_CODE_LOGIN_ENABLED=${AUTH_EMAIL_CODE_LOGIN_ENABLED:-false} |
19 | | - - SMTP_CONNECTION_URL=${SMTP_CONNECTION_URL:-} |
20 | | - - EMAIL_FROM_ADDRESS=${EMAIL_FROM_ADDRESS:-} |
| 20 | + - AUTH_SECRET=${AUTH_SECRET:-000000000000000000000000000000000} # CHANGEME: generate via `openssl rand -base64 33` |
| 21 | + - SOURCEBOT_ENCRYPTION_KEY=${SOURCEBOT_ENCRYPTION_KEY:-000000000000000000000000000000000} # CHANGEME: generate via `openssl rand -base64 24` |
| 22 | + - DATABASE_URL=${DATABASE_URL:-postgresql://postgres:postgres@postgres:5432/postgres} # CHANGEME |
| 23 | + - REDIS_URL=${REDIS_URL:-redis://redis:6379} # CHANGEME |
21 | 24 | - SOURCEBOT_EE_LICENSE_KEY=${SOURCEBOT_EE_LICENSE_KEY:-} |
22 | | - - SOURCEBOT_ENCRYPTION_KEY=${SOURCEBOT_ENCRYPTION_KEY:-} |
23 | 25 | - SOURCEBOT_TELEMETRY_DISABLED=${SOURCEBOT_TELEMETRY_DISABLED:-false} |
24 | | - - ZOEKT_WEBSERVER_URL=${ZOEKT_WEBSERVER_URL:-http://localhost:6070} |
25 | | - - SHARD_MAX_MATCH_COUNT=${SHARD_MAX_MATCH_COUNT:-} |
26 | | - - TOTAL_MAX_MATCH_COUNT=${TOTAL_MAX_MATCH_COUNT:-} |
27 | | - - ZOEKT_MAX_WALL_TIME_MS=${ZOEKT_MAX_WALL_TIME_MS:-} |
28 | 26 |
|
29 | | - # AWS |
30 | | - - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-} |
31 | | - - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-} |
32 | | - - AWS_SESSION_TOKEN=${AWS_SESSION_TOKEN:-} |
33 | | - - AWS_REGION=${AWS_REGION:-} |
34 | | - # OpenAI |
35 | | - - OPENAI_API_KEY=${OPENAI_API_KEY:-} |
36 | | - # Anthropic |
37 | | - - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-} |
38 | | - # Azure |
39 | | - - AZURE_API_KEY=${AZURE_API_KEY:-} |
40 | | - - AZURE_RESOURCE_NAME=${AZURE_RESOURCE_NAME:-} |
41 | | - # DeepSeek |
42 | | - - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-} |
43 | | - # Google gen ai |
44 | | - - GOOGLE_GENERATIVE_AI_API_KEY=${GOOGLE_GENERATIVE_AI_API_KEY:-} |
45 | | - # Google vertex |
46 | | - - GOOGLE_VERTEX_PROJECT=${GOOGLE_VERTEX_PROJECT:-} |
47 | | - - GOOGLE_VERTEX_REGION=${GOOGLE_VERTEX_REGION:-} |
48 | | - - GOOGLE_APPLICATION_CREDENTIALS=${GOOGLE_APPLICATION_CREDENTIALS:-} |
49 | | - - GOOGLE_VERTEX_THINKING_BUDGET_TOKENS=${GOOGLE_VERTEX_THINKING_BUDGET_TOKENS:-} |
50 | | - - GOOGLE_VERTEX_INCLUDE_THOUGHTS=${GOOGLE_VERTEX_INCLUDE_THOUGHTS:-} |
51 | | - # XAI |
52 | | - - XAI_API_KEY=${XAI_API_KEY:-} |
53 | | - # Mistral |
54 | | - - MISTRAL_API_KEY=${MISTRAL_API_KEY:-} |
55 | | - # Openrouter |
56 | | - - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-} |
| 27 | + # For the full list of environment variables see: |
| 28 | + # https://docs.sourcebot.dev/docs/configuration/environment-variables |
57 | 29 |
|
58 | | - restart: unless-stopped |
| 30 | + postgres: |
| 31 | + image: docker.io/postgres:${POSTGRES_VERSION:-latest} |
| 32 | + restart: always |
| 33 | + healthcheck: |
| 34 | + test: ["CMD-SHELL", "pg_isready -U postgres"] |
| 35 | + interval: 3s |
| 36 | + timeout: 3s |
| 37 | + retries: 10 |
| 38 | + environment: |
| 39 | + POSTGRES_USER: postgres |
| 40 | + POSTGRES_PASSWORD: postgres # CHANGEME |
| 41 | + POSTGRES_DB: postgres |
| 42 | + ports: |
| 43 | + - 127.0.0.1:5432:5432 |
| 44 | + volumes: |
| 45 | + - sourcebot_postgres_data:/var/lib/postgresql/data |
| 46 | + |
| 47 | + redis: |
| 48 | + image: docker.io/redis:${REDIS_VERSION:-latest} |
| 49 | + restart: always |
| 50 | + ports: |
| 51 | + - 127.0.0.1:6379:6379 |
| 52 | + healthcheck: |
| 53 | + test: ["CMD", "redis-cli", "ping"] |
| 54 | + interval: 3s |
| 55 | + timeout: 10s |
| 56 | + retries: 10 |
| 57 | + volumes: |
| 58 | + - sourcebot_redis_data:/data |
59 | 59 |
|
60 | 60 | volumes: |
61 | 61 | sourcebot_data: |
62 | 62 | driver: local |
| 63 | + sourcebot_postgres_data: |
| 64 | + driver: local |
| 65 | + sourcebot_redis_data: |
| 66 | + driver: local |
0 commit comments