@@ -18,7 +18,7 @@ services:
1818 args :
1919 BUILD_ENV : ${CLIENT_BUILD_ENV:-development}
2020 ports :
21- - " 3000 :80"
21+ - " 4200 :80"
2222 depends_on :
2323 - gateway
2424 networks :
@@ -43,14 +43,13 @@ services:
4343 networks :
4444 - frontend-network
4545 - service-network
46- - monitoring-network
4746
4847 # User Service (Spring Boot)
4948 user-svc :
5049 build :
5150 context : ./user-svc
5251 ports :
53- - " 8081 :8080"
52+ - " :8080"
5453 environment :
5554 - SPRING_PROFILES_ACTIVE=docker
5655 - SPRING_DATASOURCE_URL=jdbc:postgresql://user-svc-db:5432/eventdb
@@ -62,14 +61,13 @@ services:
6261 networks :
6362 - service-network
6463 - user-db-network
65- - monitoring-network
6664 depends_on :
6765 - user-svc-db
6866
6967 user-svc-db :
7068 image : postgres:15
7169 ports :
72- - " 5432 :5432"
70+ - " :5432"
7371 environment :
7472 - POSTGRES_PASSWORD=postgres
7573 - POSTGRES_USER=postgres
@@ -89,7 +87,7 @@ services:
8987 build :
9088 context : ./concept-svc
9189 ports :
92- - " 8082 :8080"
90+ - " :8080"
9391 environment :
9492 - SPRING_PROFILES_ACTIVE=docker
9593 - SPRING_DATASOURCE_URL=jdbc:postgresql://concept-svc-db:5432/conceptdb
@@ -101,14 +99,13 @@ services:
10199 networks :
102100 - service-network
103101 - concept-db-network
104- - monitoring-network
105102 depends_on :
106103 - concept-svc-db
107104
108105 concept-svc-db :
109106 image : postgres:15
110107 ports :
111- - " 5433 :5432"
108+ - " :5432"
112109 environment :
113110 - POSTGRES_PASSWORD=postgres
114111 - POSTGRES_USER=postgres
@@ -123,35 +120,33 @@ services:
123120 build :
124121 context : ./genai-svc
125122 ports :
126- - " 8083 :8083"
123+ - " :8083"
127124 environment :
128125 - FLASK_ENV=production
129- - WEAVIATE_URL=http://genai-svc-weaviate:8080 # Updated for new service name
130- - WEAVIATE_GRPC_PORT=50051 # Explicitly set gRPC port
126+ - WEAVIATE_URL=http://genai-svc-weaviate:8080
127+ - WEAVIATE_GRPC_PORT=50051
131128 - WEAVIATE_API_KEY=${WEAVIATE_API_KEY:-}
132- - MINIO_URL=http://genai-svc-minio:9000 # Updated for new service name
129+ - MINIO_URL=http://genai-svc-minio:9000
133130 - MINIO_ACCESS_KEY=minioadmin
134131 - MINIO_SECRET_KEY=minioadmin
135132 - MINIO_BUCKET=concepts
136133 - CONCEPT_SERVICE_URL=http://concept-svc:8080
137134 - OPENWEBUI_MODEL=llama3.3:latest
135+ - OPENWEBUI_API_TOKEN=your_api_token # REPLACE WITH YOUR TOKEN!!
138136 depends_on :
139137 - genai-svc-weaviate
140138 - genai-svc-minio
141139 - concept-svc
142140 networks :
143141 - service-network
144142 - genai-network
145- - monitoring-network
146- env_file :
147- - genai-svc/prod/.env
148143
149144 # Weaviate Vector Database for GenAI Service
150145 genai-svc-weaviate :
151146 image : semitechnologies/weaviate:1.30.5
152147 ports :
153- - " 8087 :8080" # HTTP port
154- - " 50051 :50051" # gRPC port
148+ - " :8080" # HTTP port
149+ - " :50051" # gRPC port
155150 environment :
156151 - QUERY_DEFAULTS_LIMIT=20
157152 - AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true
@@ -179,8 +174,8 @@ services:
179174 genai-svc-minio :
180175 image : minio/minio:latest
181176 ports :
182- - " 9000 :9000"
183- - " 9001 :9001"
177+ - " :9000"
178+ - " :9001"
184179 environment :
185180 - MINIO_ROOT_USER=minioadmin
186181 - MINIO_ROOT_PASSWORD=minioadmin
@@ -190,151 +185,7 @@ services:
190185 networks :
191186 - genai-network
192187
193- # Prometheus - Metrics Collection
194- prometheus :
195- image : prom/prometheus:latest
196- container_name : prometheus
197- restart : unless-stopped
198- ports :
199- - " 9090:9090"
200- volumes :
201- - ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml:ro
202- - ./monitoring/rules:/etc/prometheus/rules:ro
203- - prometheus_data:/prometheus
204- command :
205- - ' --config.file=/etc/prometheus/prometheus.yml'
206- - ' --storage.tsdb.path=/prometheus'
207- - ' --web.console.libraries=/etc/prometheus/console_libraries'
208- - ' --web.console.templates=/etc/prometheus/consoles'
209- - ' --storage.tsdb.retention.time=30d'
210- - ' --storage.tsdb.retention.size=10GB'
211- - ' --web.enable-lifecycle'
212- - ' --web.enable-admin-api'
213- networks :
214- - monitoring-network
215- healthcheck :
216- test : ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:9090/-/healthy"]
217- interval : 30s
218- timeout : 10s
219- retries : 3
220- labels :
221- - " monitoring=true"
222- - " app=prometheus"
223-
224- # Alertmanager for alert routing
225- alertmanager :
226- image : prom/alertmanager:latest
227- container_name : alertmanager
228- restart : unless-stopped
229- ports :
230- - " 9093:9093"
231- volumes :
232- - ./monitoring/alertmanager.yml:/etc/alertmanager/alertmanager.yml:ro
233- - alertmanager_data:/alertmanager
234- command :
235- - ' --config.file=/etc/alertmanager/alertmanager.yml'
236- - ' --storage.path=/alertmanager'
237- networks :
238- - monitoring-network
239- labels :
240- - " monitoring=true"
241- - " app=alertmanager"
242-
243- # Node Exporter for system metrics
244- node-exporter :
245- image : prom/node-exporter:latest
246- container_name : node-exporter
247- restart : unless-stopped
248- ports :
249- - " 9100:9100"
250- volumes :
251- - /proc:/host/proc:ro
252- - /sys:/host/sys:ro
253- - /:/rootfs:ro
254- command :
255- - ' --path.procfs=/host/proc'
256- - ' --path.sysfs=/host/sys'
257- - ' --collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
258- networks :
259- - monitoring-network
260- labels :
261- - " monitoring=true"
262- - " app=node-exporter"
263-
264- # cAdvisor for container metrics
265- cadvisor :
266- image : gcr.io/cadvisor/cadvisor:latest
267- container_name : cadvisor
268- restart : unless-stopped
269- ports :
270- - " 8084:8080"
271- volumes :
272- - /:/rootfs:ro
273- - /var/run:/var/run:ro
274- - /sys:/sys:ro
275- - /var/lib/docker/:/var/lib/docker:ro
276- - /dev/disk/:/dev/disk:ro
277- privileged : true
278- networks :
279- - monitoring-network
280- labels :
281- - " monitoring=true"
282- - " app=cadvisor"
283-
284- # PostgreSQL Exporter for database metrics
285- postgres-exporter :
286- image : prometheuscommunity/postgres-exporter:latest
287- container_name : postgres-exporter
288- restart : unless-stopped
289- ports :
290- - " 9187:9187"
291- environment :
292- DATA_SOURCE_NAME : " postgresql://postgres:postgres@user-svc-db:5432/eventdb?sslmode=disable"
293- networks :
294- - user-db-network
295- - monitoring-network
296- depends_on :
297- user-svc-db :
298- condition : service_healthy
299- labels :
300- - " monitoring=true"
301- - " app=postgres-exporter"
302-
303- # Grafana - Visualization and Dashboards
304- grafana :
305- image : grafana/grafana:latest
306- container_name : grafana
307- restart : unless-stopped
308- ports :
309- - " 3030:3000"
310- environment :
311- - GF_SECURITY_ADMIN_USER=admin
312- - GF_SECURITY_ADMIN_PASSWORD=admin123
313- - GF_USERS_ALLOW_SIGN_UP=false
314- - GF_INSTALL_PLUGINS=grafana-clock-panel,grafana-simple-json-datasource
315- - GF_SECURITY_DISABLE_GRAVATAR=true
316- - GF_ANALYTICS_REPORTING_ENABLED=false
317- - GF_ANALYTICS_CHECK_FOR_UPDATES=false
318- volumes :
319- - grafana_data:/var/lib/grafana
320- - ./monitoring/grafana/provisioning:/etc/grafana/provisioning:ro
321- - ./monitoring/grafana/dashboards:/var/lib/grafana/dashboards:ro
322- networks :
323- - monitoring-network
324- depends_on :
325- - prometheus
326- healthcheck :
327- test : ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3000/api/health || exit 1"]
328- interval : 30s
329- timeout : 10s
330- retries : 3
331- labels :
332- - " monitoring=true"
333- - " app=grafana"
334-
335188networks :
336- monitoring-network :
337- driver : bridge
338189 frontend-network :
339190 driver : bridge
340191 service-network :
@@ -351,9 +202,3 @@ volumes:
351202 driver : local
352203 minio_data :
353204 driver : local
354- prometheus_data :
355- driver : local
356- grafana_data :
357- driver : local
358- alertmanager_data :
359- driver : local
0 commit comments