-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
116 lines (108 loc) · 3.21 KB
/
Copy pathdocker-compose.yml
File metadata and controls
116 lines (108 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
services:
# ===== MONGODB =====
mongodb:
image: mongo:7.0
container_name: pipeline_autopsy_db
restart: unless-stopped
ports:
- "27017:27017"
environment:
MONGO_INITDB_DATABASE: rag_database
volumes:
- mongodb_data:/data/db
- mongodb_config:/data/configdb
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
interval: 10s
timeout: 5s
retries: 5
networks:
- pipeline_autopsy_network
# ===== BACKEND =====
backend:
build:
context: ./server
dockerfile: Dockerfile
container_name: pipeline_autopsy_api
restart: unless-stopped
depends_on:
mongodb:
condition: service_healthy
ports:
- "8000:8000"
env_file:
- .env
environment:
MONGO_URI: mongodb://mongodb:27017/rag_database
SECRET_KEY: ${SECRET_KEY:-your-super-secret-key-change-this-in-production-12345678}
ACCESS_TOKEN_EXPIRE_MINUTES: 30
GROQ_API_KEY: ${GROQ_API_KEY}
OPENAI_API_KEY: ${OPENAI_API_KEY:-sk-demo}
CLAUDE_API_KEY: ${CLAUDE_API_KEY:-sk-ant-demo}
DEFAULT_LLM_PROVIDER: ${DEFAULT_LLM_PROVIDER:-groq}
AI_MODEL: llama-3.3-70b-versatile
GITHUB_APP_ID: ${GITHUB_APP_ID:-123456}
GITHUB_WEBHOOK_SECRET: ${GITHUB_WEBHOOK_SECRET:-demo-secret}
GITHUB_TEST_PAT: ${GITHUB_TEST_PAT:-}
GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID}
GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET}
GITHUB_REDIRECT_URI: ${GITHUB_REDIRECT_URI:-http://localhost:8000/github/oauth/callback}
FRONTEND_SUCCESS_URL: ${FRONTEND_SUCCESS_URL:-http://localhost:3000/}
FRONTEND_ERROR_URL: ${FRONTEND_ERROR_URL:-http://localhost:3000/error}
CORS_ORIGINS: '["http://localhost:3000", "http://localhost:5173", "https://subcollegiate-reproachfully-lyle.ngrok-free.dev"]'
APP_HOST: 0.0.0.0
APP_PORT: 8000
DEBUG: ${DEBUG:-true}
# FIX: add Google + Cloudflare DNS so the container can reach api.groq.com
dns:
- 8.8.8.8
- 8.8.4.4
- 1.1.1.1
networks:
- pipeline_autopsy_network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
redis:
image : redis:7-alpine
ports:
- "6379:6379"
restart: unless-stopped
command: redis-server --maxmemory 256mb --maxmemory-policy allkeys-lru
# ===== FRONTEND =====
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: pipeline_autopsy_ui
restart: unless-stopped
depends_on:
backend:
condition: service_healthy
ports:
- "3000:3000"
env_file:
- .env
environment:
NEXT_PUBLIC_API_BASE_URL: ${API_BASE_URL:-http://localhost:8000}
NODE_ENV: production
NEXT_TELEMETRY_DISABLED: 1
networks:
- pipeline_autopsy_network
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
networks:
pipeline_autopsy_network:
driver: bridge
volumes:
mongodb_data:
driver: local
mongodb_config:
driver: local