feat(infra): add docker-compose.ecosystem.yml for full ByteLyst stack
This commit is contained in:
parent
d466b8a7c4
commit
c93cc491ff
652
docker-compose.ecosystem.yml
Normal file
652
docker-compose.ecosystem.yml
Normal file
@ -0,0 +1,652 @@
|
||||
# docker-compose.ecosystem.yml — Full ByteLyst Ecosystem
|
||||
#
|
||||
# Brings up all infrastructure, platform services, dashboards, and product
|
||||
# backends + web apps in a single Docker Compose stack.
|
||||
#
|
||||
# Prerequisites:
|
||||
# 1. Copy .env.ecosystem.example → .env.ecosystem and fill in values
|
||||
# 2. All product repos must be sibling directories of this repo
|
||||
#
|
||||
# Usage:
|
||||
# docker compose -f docker-compose.ecosystem.yml --env-file .env.ecosystem up --build
|
||||
#
|
||||
# Port Map:
|
||||
# Infrastructure: cosmos-emulator 8081, azurite 10000, mailpit 1025/8025,
|
||||
# loki 3100, grafana 3000, traefik 80/8080
|
||||
# Platform: platform-service 4003, extraction-service 4005, mcp-server 4007
|
||||
# Dashboards: admin-web 3001, tracker-web 3003
|
||||
# Products: peakpulse 4010, chronomind 4011, jarvisjr 4012,
|
||||
# nomgap 4013, mindlyst 4014, lysnrai 4015,
|
||||
# notelett 4016, flowmonk 4017, actiontrail 4018,
|
||||
# localmemgpt 4019
|
||||
# Product webs: chronomind 3030, jarvisjr 3035, flowmonk 3040,
|
||||
# notelett 3045, mindlyst 3050, nomgap 3055,
|
||||
# actiontrail 3060, localmemgpt 3070, lysnrai 3002
|
||||
|
||||
services:
|
||||
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
# INFRASTRUCTURE
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
|
||||
cosmos-emulator:
|
||||
image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:vnext-preview
|
||||
ports:
|
||||
- '8081:8081'
|
||||
- '1234:1234'
|
||||
environment:
|
||||
- PROTOCOL=http
|
||||
- ENABLE_EXPLORER=true
|
||||
- GATEWAY_PUBLIC_ENDPOINT=cosmos-emulator
|
||||
healthcheck:
|
||||
test: ['CMD-SHELL', 'curl -sf http://127.0.0.1:8080/ready || exit 1']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 20s
|
||||
restart: unless-stopped
|
||||
|
||||
azurite:
|
||||
image: mcr.microsoft.com/azure-storage/azurite:3.35.0
|
||||
command: azurite-blob --blobHost 0.0.0.0 --blobPort 10000 --location /data --skipApiVersionCheck
|
||||
ports:
|
||||
- '10000:10000'
|
||||
volumes:
|
||||
- azurite-data:/data
|
||||
healthcheck:
|
||||
test: ['CMD', 'nc', '-z', '127.0.0.1', '10000']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 6
|
||||
restart: unless-stopped
|
||||
|
||||
mailpit:
|
||||
image: axllent/mailpit:v1.27.5
|
||||
ports:
|
||||
- '1025:1025'
|
||||
- '8025:8025'
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:8025']
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 6
|
||||
restart: unless-stopped
|
||||
|
||||
loki:
|
||||
image: grafana/loki:3.3.2
|
||||
ports:
|
||||
- '3100:3100'
|
||||
volumes:
|
||||
- ./services/monitoring/loki/loki-config.yml:/etc/loki/local-config.yaml
|
||||
- loki-data:/loki
|
||||
command: -config.file=/etc/loki/local-config.yaml
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3100/ready']
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
grafana:
|
||||
image: grafana/grafana:11.4.0
|
||||
ports:
|
||||
- '3000:3000'
|
||||
environment:
|
||||
- GF_SECURITY_ADMIN_USER=admin
|
||||
- GF_SECURITY_ADMIN_PASSWORD=bytelyst
|
||||
- GF_USERS_ALLOW_SIGN_UP=false
|
||||
volumes:
|
||||
- ./services/monitoring/grafana/provisioning:/etc/grafana/provisioning
|
||||
- ./services/monitoring/grafana/dashboards:/var/lib/grafana/dashboards
|
||||
- grafana-data:/var/lib/grafana
|
||||
depends_on:
|
||||
loki:
|
||||
condition: service_started
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3000/api/health']
|
||||
interval: 15s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
gateway:
|
||||
image: traefik:v3.3
|
||||
command:
|
||||
- '--api.insecure=true'
|
||||
- '--providers.docker=true'
|
||||
- '--providers.docker.exposedbydefault=false'
|
||||
- '--entrypoints.web.address=:80'
|
||||
- '--accesslog=true'
|
||||
- '--accesslog.format=json'
|
||||
ports:
|
||||
- '80:80'
|
||||
- '8080:8080'
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
depends_on:
|
||||
loki:
|
||||
condition: service_started
|
||||
restart: unless-stopped
|
||||
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
# PLATFORM SERVICES (from this repo)
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
|
||||
platform-service:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: services/platform-service/Dockerfile
|
||||
ports:
|
||||
- '4003:4003'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4003
|
||||
- COSMOS_AUTO_INIT=true
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
- EXTRACTION_SERVICE_URL=http://extraction-service:4005
|
||||
- MCP_SERVER_URL=http://mcp-server:4007
|
||||
- MAILPIT_UI_URL=http://mailpit:8025
|
||||
depends_on:
|
||||
mailpit:
|
||||
condition: service_healthy
|
||||
azurite:
|
||||
condition: service_healthy
|
||||
cosmos-emulator:
|
||||
condition: service_healthy
|
||||
labels:
|
||||
- 'traefik.enable=true'
|
||||
- 'traefik.http.routers.platform.rule=PathPrefix(`/platform`)'
|
||||
- 'traefik.http.services.platform.loadbalancer.server.port=4003'
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4003/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
extraction-service:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: services/extraction-service/Dockerfile
|
||||
ports:
|
||||
- '4005:4005'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4005
|
||||
- PYTHON_SIDECAR_URL=http://localhost:4006
|
||||
depends_on:
|
||||
cosmos-emulator:
|
||||
condition: service_healthy
|
||||
labels:
|
||||
- 'traefik.enable=true'
|
||||
- 'traefik.http.routers.extraction.rule=PathPrefix(`/extraction`)'
|
||||
- 'traefik.http.services.extraction.loadbalancer.server.port=4005'
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4005/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
mcp-server:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: services/mcp-server/Dockerfile
|
||||
ports:
|
||||
- '4007:4007'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4007
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
- EXTRACTION_SERVICE_URL=http://extraction-service:4005
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
extraction-service:
|
||||
condition: service_healthy
|
||||
labels:
|
||||
- 'traefik.enable=true'
|
||||
- 'traefik.http.routers.mcp.rule=PathPrefix(`/mcp`)'
|
||||
- 'traefik.http.services.mcp.loadbalancer.server.port=4007'
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4007/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
# PLATFORM DASHBOARDS (from this repo)
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
|
||||
admin-web:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: dashboards/admin-web/Dockerfile
|
||||
ports:
|
||||
- '3001:3001'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=3001
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
- EXTRACTION_SERVICE_URL=http://extraction-service:4005
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3001']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
tracker-web:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: dashboards/tracker-web/Dockerfile
|
||||
ports:
|
||||
- '3003:3003'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=3003
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:3003']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
# PRODUCT BACKENDS (from sibling repos)
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
|
||||
peakpulse-backend:
|
||||
build:
|
||||
context: ../learning_ai_peakpulse
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4010:4010'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4010
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4010/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
chronomind-backend:
|
||||
build:
|
||||
context: ../learning_ai_clock
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4011:4011'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4011
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4011/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
jarvisjr-backend:
|
||||
build:
|
||||
context: ../learning_ai_jarvis_jr
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4012:4012'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4012
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4012/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
nomgap-backend:
|
||||
build:
|
||||
context: ../learning_ai_fastgap
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4013:4013'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4013
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4013/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
mindlyst-backend:
|
||||
build:
|
||||
context: ../learning_multimodal_memory_agents
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4014:4014'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4014
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4014/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
lysnrai-backend:
|
||||
build:
|
||||
context: ../learning_voice_ai_agent
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4015:4015'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4015
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4015/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
notelett-backend:
|
||||
build:
|
||||
context: ../learning_ai_notes
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4016:4016'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4016
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
- EXTRACTION_SERVICE_URL=http://extraction-service:4005
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4016/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
flowmonk-backend:
|
||||
build:
|
||||
context: ../learning_ai_flowmonk
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4017:4017'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4017
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4017/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
actiontrail-backend:
|
||||
build:
|
||||
context: ../learning_ai_trails
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4018:4018'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4018
|
||||
- HOST=0.0.0.0
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4018/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
localmemgpt-backend:
|
||||
build:
|
||||
context: ../learning_ai_local_memory_gpt
|
||||
dockerfile: backend/Dockerfile
|
||||
ports:
|
||||
- '4019:4019'
|
||||
env_file:
|
||||
- .env.ecosystem
|
||||
environment:
|
||||
- PORT=4019
|
||||
- HOST=0.0.0.0
|
||||
- OLLAMA_URL=http://host.docker.internal:11434
|
||||
- PLATFORM_SERVICE_URL=http://platform-service:4003
|
||||
volumes:
|
||||
- localmemgpt-data:/app/db
|
||||
depends_on:
|
||||
platform-service:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ['CMD', 'wget', '-q', '--spider', 'http://127.0.0.1:4019/health']
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
restart: unless-stopped
|
||||
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
# PRODUCT WEB APPS (from sibling repos)
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
|
||||
lysnrai-dashboard:
|
||||
build:
|
||||
context: ../learning_voice_ai_agent
|
||||
dockerfile: user-dashboard-web/Dockerfile
|
||||
ports:
|
||||
- '3002:3002'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3002
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://lysnrai-backend:4015
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
lysnrai-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
chronomind-web:
|
||||
build:
|
||||
context: ../learning_ai_clock
|
||||
dockerfile: web/Dockerfile
|
||||
ports:
|
||||
- '3030:3030'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3030
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://chronomind-backend:4011
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
chronomind-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
jarvisjr-web:
|
||||
build:
|
||||
context: ../learning_ai_jarvis_jr
|
||||
dockerfile: web/Dockerfile
|
||||
ports:
|
||||
- '3035:3035'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3035
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://jarvisjr-backend:4012
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
jarvisjr-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
flowmonk-web:
|
||||
build:
|
||||
context: ../learning_ai_flowmonk
|
||||
dockerfile: web/Dockerfile
|
||||
ports:
|
||||
- '3040:3040'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3040
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://flowmonk-backend:4017
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
flowmonk-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
notelett-web:
|
||||
build:
|
||||
context: ../learning_ai_notes
|
||||
dockerfile: web/Dockerfile
|
||||
ports:
|
||||
- '3045:3045'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3045
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://notelett-backend:4016
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
notelett-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
mindlyst-web:
|
||||
build:
|
||||
context: ../learning_multimodal_memory_agents
|
||||
dockerfile: mindlyst-native/web/Dockerfile
|
||||
ports:
|
||||
- '3050:3050'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3050
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://mindlyst-backend:4014
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
mindlyst-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
nomgap-web:
|
||||
build:
|
||||
context: ../learning_ai_fastgap
|
||||
dockerfile: web/Dockerfile
|
||||
ports:
|
||||
- '3055:3055'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3055
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://nomgap-backend:4013
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
nomgap-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
actiontrail-web:
|
||||
build:
|
||||
context: ../learning_ai_trails
|
||||
dockerfile: web/Dockerfile
|
||||
ports:
|
||||
- '3060:3060'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3060
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://actiontrail-backend:4018
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
actiontrail-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
localmemgpt-web:
|
||||
build:
|
||||
context: ../learning_ai_local_memory_gpt
|
||||
dockerfile: web/Dockerfile
|
||||
ports:
|
||||
- '3070:3070'
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=3070
|
||||
- NEXT_PUBLIC_BACKEND_URL=http://localmemgpt-backend:4019
|
||||
- NEXT_PUBLIC_PLATFORM_URL=http://platform-service:4003
|
||||
depends_on:
|
||||
localmemgpt-backend:
|
||||
condition: service_healthy
|
||||
restart: unless-stopped
|
||||
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
# VOLUMES
|
||||
# ═════════════════════════════════════════════════════════════════
|
||||
|
||||
volumes:
|
||||
azurite-data:
|
||||
loki-data:
|
||||
grafana-data:
|
||||
localmemgpt-data:
|
||||
Loading…
Reference in New Issue
Block a user