1004 lines
27 KiB
YAML
1004 lines
27 KiB
YAML
# services:
|
|
# # =====================================
|
|
# # Core Infrastructure Services
|
|
# # =====================================
|
|
|
|
# postgres:
|
|
# image: postgres:15
|
|
# container_name: pipeline_postgres
|
|
# environment:
|
|
# POSTGRES_USER: pipeline_admin
|
|
# POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
# POSTGRES_DB: dev_pipeline
|
|
# volumes:
|
|
# - postgres_data:/var/lib/postgresql/data
|
|
# ports:
|
|
# - "5432:5432"
|
|
# networks:
|
|
# - pipeline_network
|
|
# healthcheck:
|
|
# test: ["CMD-SHELL", "pg_isready -U pipeline_admin -d dev_pipeline"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
# start_period: 60s
|
|
|
|
# redis:
|
|
# image: redis:7-alpine
|
|
# container_name: pipeline_redis
|
|
# command: redis-server --appendonly yes --requirepass ${REDIS_PASSWORD}
|
|
# volumes:
|
|
# - redis_data:/data
|
|
# ports:
|
|
# - "6379:6379"
|
|
# networks:
|
|
# - pipeline_network
|
|
# healthcheck:
|
|
# test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
# start_period: 30s
|
|
|
|
# mongodb:
|
|
# image: mongo:7
|
|
# container_name: pipeline_mongodb
|
|
# environment:
|
|
# MONGO_INITDB_ROOT_USERNAME: pipeline_user
|
|
# MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_PASSWORD}
|
|
# volumes:
|
|
# - mongodb_data:/data/db
|
|
# ports:
|
|
# - "27017:27017"
|
|
# networks:
|
|
# - pipeline_network
|
|
|
|
# rabbitmq:
|
|
# build:
|
|
# context: ./infrastructure/rabbitmq
|
|
# dockerfile: Dockerfile
|
|
# image: automated-dev-pipeline-rabbitmq
|
|
# container_name: pipeline_rabbitmq
|
|
# environment:
|
|
# RABBITMQ_DEFAULT_USER: pipeline_admin
|
|
# RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
|
|
# volumes:
|
|
# - rabbitmq_data:/var/lib/rabbitmq
|
|
# - rabbitmq_logs:/var/log/rabbitmq
|
|
# ports:
|
|
# - "5672:5672"
|
|
# - "15672:15672"
|
|
# - "15692:15692"
|
|
# networks:
|
|
# - pipeline_network
|
|
# healthcheck:
|
|
# test: ["CMD", "rabbitmq-diagnostics", "ping"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
# start_period: 60s
|
|
|
|
# # =====================================
|
|
# # Application Services
|
|
# # =====================================
|
|
|
|
# api-gateway:
|
|
# build: ./services/api-gateway
|
|
# container_name: pipeline_api_gateway
|
|
# ports:
|
|
# - "8000:8000"
|
|
# environment:
|
|
# - NODE_ENV=development
|
|
# - PORT=8000
|
|
# - REDIS_HOST=redis
|
|
# - REDIS_PORT=6379
|
|
# - REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
# - POSTGRES_HOST=postgres
|
|
# - POSTGRES_PORT=5432
|
|
# - POSTGRES_DB=dev_pipeline
|
|
# - POSTGRES_USER=pipeline_admin
|
|
# - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
# - RABBITMQ_HOST=rabbitmq
|
|
# - RABBITMQ_PORT=5672
|
|
# - RABBITMQ_USER=pipeline_admin
|
|
# - RABBITMQ_PASSWORD=${RABBITMQ_PASSWORD}
|
|
# networks:
|
|
# - pipeline_network
|
|
# depends_on:
|
|
# postgres:
|
|
# condition: service_healthy
|
|
# redis:
|
|
# condition: service_healthy
|
|
# rabbitmq:
|
|
# condition: service_healthy
|
|
|
|
# requirement-processor:
|
|
# build: ./services/requirement-processor
|
|
# container_name: pipeline_requirement_processor
|
|
# ports:
|
|
# - "8001:8001"
|
|
# environment:
|
|
# - POSTGRES_HOST=postgres
|
|
# - POSTGRES_PORT=5432
|
|
# - POSTGRES_DB=dev_pipeline
|
|
# - POSTGRES_USER=pipeline_admin
|
|
# - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
# - REDIS_HOST=redis
|
|
# - REDIS_PORT=6379
|
|
# - REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
# - MONGODB_HOST=mongodb
|
|
# - MONGODB_PORT=27017
|
|
# networks:
|
|
# - pipeline_network
|
|
# depends_on:
|
|
# postgres:
|
|
# condition: service_healthy
|
|
# redis:
|
|
# condition: service_healthy
|
|
# mongodb:
|
|
# condition: service_started
|
|
|
|
# tech-stack-selector:
|
|
# build: ./services/tech-stack-selector
|
|
# container_name: pipeline_tech_stack_selector
|
|
# ports:
|
|
# - "8002:8002"
|
|
# environment:
|
|
# - POSTGRES_HOST=postgres
|
|
# - POSTGRES_PORT=5432
|
|
# - POSTGRES_DB=dev_pipeline
|
|
# - POSTGRES_USER=pipeline_admin
|
|
# - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
# - REDIS_HOST=redis
|
|
# - REDIS_PORT=6379
|
|
# - REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
# networks:
|
|
# - pipeline_network
|
|
# depends_on:
|
|
# postgres:
|
|
# condition: service_healthy
|
|
# redis:
|
|
# condition: service_healthy
|
|
|
|
# architecture-designer:
|
|
# build: ./services/architecture-designer
|
|
# container_name: pipeline_architecture_designer
|
|
# ports:
|
|
# - "8003:8003"
|
|
# environment:
|
|
# - POSTGRES_HOST=postgres
|
|
# - HOST=0.0.0.0
|
|
# - CLAUDE_API_KEY=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
|
|
# - POSTGRES_PORT=5432
|
|
# - POSTGRES_DB=dev_pipeline
|
|
# - POSTGRES_USER=pipeline_admin
|
|
# - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
# - MONGODB_HOST=mongodb
|
|
# - MONGODB_PORT=27017
|
|
# networks:
|
|
# - pipeline_network
|
|
# depends_on:
|
|
# postgres:
|
|
# condition: service_healthy
|
|
# mongodb:
|
|
# condition: service_started
|
|
|
|
# healthcheck:
|
|
# test: ["CMD", "curl", "-f", "http://localhost:8003/health"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 3
|
|
|
|
# code-generator:
|
|
# build: ./services/code-generator
|
|
# container_name: pipeline_code_generator
|
|
# ports:
|
|
# - "8004:8004"
|
|
# environment:
|
|
# - POSTGRES_HOST=postgres
|
|
# - POSTGRES_PORT=5432
|
|
# - POSTGRES_DB=dev_pipeline
|
|
# - POSTGRES_USER=pipeline_admin
|
|
# - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
# - MONGODB_HOST=mongodb
|
|
# - MONGODB_PORT=27017
|
|
# - REDIS_HOST=redis
|
|
# - REDIS_PORT=6379
|
|
# - REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
# - CLAUDE_API_KEY=${CLAUDE_API_KEY}
|
|
# - OPENAI_API_KEY=${OPENAI_API_KEY}
|
|
# - NEO4J_URI=bolt://neo4j:7687
|
|
# - NEO4J_USER=neo4j
|
|
# - NEO4J_PASSWORD=password
|
|
# - CHROMA_HOST=chromadb
|
|
# - CHROMA_PORT=8000
|
|
# networks:
|
|
# - pipeline_network
|
|
# depends_on:
|
|
# postgres:
|
|
# condition: service_healthy
|
|
# redis:
|
|
# condition: service_healthy
|
|
# mongodb:
|
|
# condition: service_started
|
|
# neo4j:
|
|
# chromadb:
|
|
|
|
# test-generator:
|
|
# build: ./services/test-generator
|
|
# container_name: pipeline_test_generator
|
|
# ports:
|
|
# - "8005:8005"
|
|
# environment:
|
|
# - POSTGRES_HOST=postgres
|
|
# - POSTGRES_PORT=5432
|
|
# - POSTGRES_DB=dev_pipeline
|
|
# - POSTGRES_USER=pipeline_admin
|
|
# - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
# - REDIS_HOST=redis
|
|
# - REDIS_PORT=6379
|
|
# - REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
# networks:
|
|
# - pipeline_network
|
|
# depends_on:
|
|
# postgres:
|
|
# condition: service_healthy
|
|
# redis:
|
|
# condition: service_healthy
|
|
|
|
# deployment-manager:
|
|
# build: ./services/deployment-manager
|
|
# container_name: pipeline_deployment_manager
|
|
# ports:
|
|
# - "8006:8006"
|
|
# environment:
|
|
# - POSTGRES_HOST=postgres
|
|
# - POSTGRES_PORT=5432
|
|
# - POSTGRES_DB=dev_pipeline
|
|
# - POSTGRES_USER=pipeline_admin
|
|
# - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
# - MONGODB_HOST=mongodb
|
|
# - MONGODB_PORT=27017
|
|
# - RABBITMQ_HOST=rabbitmq
|
|
# - RABBITMQ_PORT=5672
|
|
# - RABBITMQ_USER=pipeline_admin
|
|
# - RABBITMQ_PASSWORD=${RABBITMQ_PASSWORD}
|
|
# networks:
|
|
# - pipeline_network
|
|
# depends_on:
|
|
# postgres:
|
|
# condition: service_healthy
|
|
# rabbitmq:
|
|
# condition: service_healthy
|
|
# mongodb:
|
|
# condition: service_started
|
|
|
|
# # =====================================
|
|
|
|
# # =====================================
|
|
# # Workflow Orchestration
|
|
# # =====================================
|
|
|
|
# n8n:
|
|
# image: n8nio/n8n:latest
|
|
# container_name: pipeline_n8n
|
|
# ports:
|
|
# - "5678:5678"
|
|
# environment:
|
|
# - N8N_BASIC_AUTH_ACTIVE=true
|
|
# - N8N_BASIC_AUTH_USER=pipeline_admin
|
|
# - N8N_BASIC_AUTH_PASSWORD=pipeline_n8n_2024
|
|
# - N8N_HOST=localhost
|
|
# - N8N_PORT=5678
|
|
# - N8N_PROTOCOL=http
|
|
# - WEBHOOK_URL=http://localhost:5678
|
|
# - GENERIC_TIMEZONE=UTC
|
|
# - DB_TYPE=postgresdb
|
|
# - DB_POSTGRESDB_HOST=postgres
|
|
# - DB_POSTGRESDB_PORT=5432
|
|
# - DB_POSTGRESDB_DATABASE=n8n
|
|
# - DB_POSTGRESDB_USER=pipeline_admin
|
|
# - DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
|
|
# volumes:
|
|
# - n8n_data:/home/node/.n8n
|
|
# - ./orchestration/n8n/workflows:/home/node/.n8n/workflows
|
|
# networks:
|
|
# - pipeline_network
|
|
# depends_on:
|
|
# postgres:
|
|
# condition: service_healthy
|
|
# redis:
|
|
# condition: service_healthy
|
|
# rabbitmq:
|
|
# condition: service_healthy
|
|
# healthcheck:
|
|
# test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:5678/healthz"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
# start_period: 60s
|
|
# # Volumes
|
|
# # =====================================
|
|
# volumes:
|
|
# postgres_data:
|
|
# driver: local
|
|
# redis_data:
|
|
# driver: local
|
|
# mongodb_data:
|
|
# driver: local
|
|
# rabbitmq_data:
|
|
# driver: local
|
|
# rabbitmq_logs:
|
|
# driver: local
|
|
# n8n_data:
|
|
# driver: local
|
|
# neo4j_data:
|
|
# driver: local
|
|
# chromadb_data:
|
|
# driver: local
|
|
|
|
# # =====================================
|
|
# # Networks
|
|
# # =====================================
|
|
# networks:
|
|
# pipeline_network:
|
|
# driver: bridge
|
|
|
|
# neo4j:
|
|
# image: neo4j:5.15
|
|
# environment:
|
|
# - NEO4J_AUTH=neo4j/password
|
|
# ports:
|
|
# - "7474:7474"
|
|
# - "7687:7687"
|
|
# volumes:
|
|
# - neo4j_data:/data
|
|
# networks:
|
|
# - pipeline_network
|
|
|
|
|
|
# chromadb:
|
|
# image: chromadb/chroma:latest
|
|
# ports:
|
|
# - "8000:8000"
|
|
# volumes:
|
|
# - chromadb_data:/chroma/chroma
|
|
# networks:
|
|
# - pipeline_network
|
|
|
|
|
|
services:
|
|
# =====================================
|
|
# Core Infrastructure Services
|
|
# =====================================
|
|
|
|
postgres:
|
|
image: postgres:15
|
|
container_name: pipeline_postgres
|
|
environment:
|
|
POSTGRES_USER: pipeline_admin
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
POSTGRES_DB: dev_pipeline
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
ports:
|
|
- "5433:5432"
|
|
networks:
|
|
- pipeline_network
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U pipeline_admin -d dev_pipeline"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: pipeline_redis
|
|
environment:
|
|
REDIS_PASSWORD: redis123
|
|
REDIS_USER: redisuser
|
|
ports:
|
|
- "6380:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
command: redis-server --requirepass redis123
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
|
|
mongodb:
|
|
image: mongo:7
|
|
container_name: pipeline_mongodb
|
|
environment:
|
|
MONGO_INITDB_ROOT_USERNAME: pipeline_user
|
|
MONGO_INITDB_ROOT_PASSWORD: ${MONGODB_PASSWORD}
|
|
volumes:
|
|
- mongodb_data:/data/db
|
|
ports:
|
|
- "27017:27017"
|
|
networks:
|
|
- pipeline_network
|
|
|
|
rabbitmq:
|
|
build:
|
|
context: ./infrastructure/rabbitmq
|
|
dockerfile: Dockerfile
|
|
image: automated-dev-pipeline-rabbitmq
|
|
container_name: pipeline_rabbitmq
|
|
environment:
|
|
RABBITMQ_DEFAULT_USER: pipeline_admin
|
|
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD}
|
|
volumes:
|
|
- rabbitmq_data:/var/lib/rabbitmq
|
|
- rabbitmq_logs:/var/log/rabbitmq
|
|
ports:
|
|
- "5672:5672"
|
|
- "15672:15672"
|
|
- "15692:15692"
|
|
networks:
|
|
- pipeline_network
|
|
healthcheck:
|
|
test: ["CMD", "rabbitmq-diagnostics", "ping"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
|
|
# =====================================
|
|
# Enhanced Infrastructure for Code Generation
|
|
# =====================================
|
|
|
|
neo4j:
|
|
image: neo4j:5.15
|
|
container_name: pipeline_neo4j
|
|
environment:
|
|
- NEO4J_AUTH=neo4j/password
|
|
- NEO4J_PLUGINS=["graph-data-science"]
|
|
- NEO4J_dbms_security_procedures_unrestricted=gds.*,apoc.*
|
|
ports:
|
|
- "7474:7474" # Neo4j Browser
|
|
- "7687:7687" # Bolt protocol
|
|
volumes:
|
|
- neo4j_data:/data
|
|
- neo4j_logs:/logs
|
|
networks:
|
|
- pipeline_network
|
|
healthcheck:
|
|
test: ["CMD", "cypher-shell", "--username", "neo4j", "--password", "password", "MATCH () RETURN count(*) as count"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
|
|
# chromadb:
|
|
# image: chromadb/chroma:latest
|
|
# container_name: pipeline_chromadb
|
|
# ports:
|
|
# - "8010:8000"
|
|
# environment:
|
|
# - CHROMA_SERVER_HOST=0.0.0.0
|
|
# - CHROMA_SERVER_HTTP_PORT=8000
|
|
# volumes:
|
|
# - chromadb_data:/chroma/chroma
|
|
# networks:
|
|
# - pipeline_network
|
|
# healthcheck:
|
|
# test: ["CMD-SHELL", "curl -f http://localhost:8000/ || exit 1"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
# start_period: 60s
|
|
|
|
# chromadb:
|
|
# image: chromadb/chroma:latest
|
|
# container_name: pipeline_chromadb
|
|
# ports:
|
|
# - "8010:8000" # Changed port to avoid conflict with API Gateway
|
|
# environment:
|
|
# - CHROMA_SERVER_HOST=0.0.0.0
|
|
# - CHROMA_SERVER_HTTP_PORT=8000
|
|
# volumes:
|
|
# - chromadb_data:/chroma/chroma
|
|
# networks:
|
|
# - pipeline_network
|
|
# healthcheck:
|
|
# test: ["CMD", "curl", "-f", "http://localhost:8000/api/v2/heartbeat"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
|
|
# chromadb:
|
|
# image: chromadb/chroma:latest
|
|
# container_name: pipeline_chromadb
|
|
# ports:
|
|
# - "8010:8000"
|
|
# environment:
|
|
# - CHROMA_SERVER_HOST=0.0.0.0
|
|
# - CHROMA_SERVER_HTTP_PORT=8000
|
|
# - IS_PERSISTENT=TRUE
|
|
# - PERSIST_DIRECTORY=/chroma/chroma
|
|
# - ANONYMIZED_TELEMETRY=TRUE
|
|
# volumes:
|
|
# - chromadb_data:/chroma/chroma
|
|
# networks:
|
|
# - pipeline_network
|
|
# healthcheck:
|
|
# test: ["CMD", "curl", "-f", "http://localhost:8000/api/v2/heartbeat"]
|
|
# interval: 30s
|
|
# timeout: 10s
|
|
# retries: 5
|
|
# start_period: 60s
|
|
|
|
chromadb:
|
|
image: chromadb/chroma:latest
|
|
container_name: pipeline_chromadb
|
|
ports:
|
|
- "8010:8000"
|
|
environment:
|
|
- CHROMA_SERVER_HOST=0.0.0.0
|
|
- CHROMA_SERVER_HTTP_PORT=8000
|
|
- IS_PERSISTENT=TRUE
|
|
- PERSIST_DIRECTORY=/chroma/chroma
|
|
- ANONYMIZED_TELEMETRY=TRUE
|
|
volumes:
|
|
- chromadb_data:/chroma/chroma
|
|
networks:
|
|
- pipeline_network
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "timeout 5 bash -c '</dev/tcp/127.0.0.1/8000' || exit 1"]
|
|
interval: 15s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 30s
|
|
|
|
|
|
|
|
# =====================================
|
|
# Application Services
|
|
# =====================================
|
|
|
|
api-gateway:
|
|
build: ./services/api-gateway
|
|
container_name: pipeline_api_gateway
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- NODE_ENV=development
|
|
- PORT=8000
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- RABBITMQ_HOST=rabbitmq
|
|
- RABBITMQ_PORT=5672
|
|
- RABBITMQ_USER=pipeline_admin
|
|
- RABBITMQ_PASSWORD=${RABBITMQ_PASSWORD}
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
|
|
requirement-processor:
|
|
build: ./services/requirement-processor
|
|
container_name: pipeline_requirement_processor
|
|
ports:
|
|
- "8001:8001"
|
|
environment:
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
- MONGODB_HOST=mongodb
|
|
- MONGODB_PORT=27017
|
|
- NEO4J_URI=bolt://neo4j:7687
|
|
- NEO4J_USER=neo4j
|
|
- NEO4J_PASSWORD=password
|
|
- CHROMA_HOST=chromadb
|
|
- CHROMA_PORT=8000
|
|
- REDIS_URL=redis://redis:6379
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
mongodb:
|
|
condition: service_started
|
|
|
|
tech-stack-selector:
|
|
build: ./services/tech-stack-selector
|
|
container_name: pipeline_tech_stack_selector
|
|
ports:
|
|
- "8002:8002"
|
|
environment:
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
architecture-designer:
|
|
build: ./services/architecture-designer
|
|
container_name: pipeline_architecture_designer
|
|
ports:
|
|
- "8003:8003"
|
|
environment:
|
|
- PORT=8003
|
|
- HOST=0.0.0.0
|
|
- CLAUDE_API_KEY=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
|
|
- ANTHROPIC_API_KEY=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
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- MONGODB_HOST=mongodb
|
|
- MONGODB_PORT=27017
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
mongodb:
|
|
condition: service_started
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8003/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
code-generator:
|
|
build: ./services/code-generator
|
|
container_name: pipeline_code_generator
|
|
ports:
|
|
- "8004:8004"
|
|
environment:
|
|
- PORT=8004
|
|
- HOST=0.0.0.0
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- MONGODB_HOST=mongodb
|
|
- MONGODB_PORT=27017
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
- CLAUDE_API_KEY=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
|
|
- OPENAI_API_KEY=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
|
|
# - NEO4J_URI=bolt://neo4j:7687
|
|
# - NEO4J_USER=neo4j
|
|
# - NEO4J_PASSWORD=password
|
|
# - CHROMA_HOST=chromadb
|
|
# - CHROMA_PORT=8000
|
|
volumes:
|
|
# NEW: Persistent volume for generated projects
|
|
- ./generated-projects:/tmp/generated-projects
|
|
# Optional: Also persist the generation logs/dashboards
|
|
- ./generation-logs:/tmp/generation-logs
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
mongodb:
|
|
condition: service_started
|
|
# neo4j:
|
|
# condition: service_healthy
|
|
chromadb:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8004/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
test-generator:
|
|
build: ./services/test-generator
|
|
container_name: pipeline_test_generator
|
|
ports:
|
|
- "8005:8005"
|
|
environment:
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
|
|
deployment-manager:
|
|
build: ./services/deployment-manager
|
|
container_name: pipeline_deployment_manager
|
|
ports:
|
|
- "8006:8006"
|
|
environment:
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- MONGODB_HOST=mongodb
|
|
- MONGODB_PORT=27017
|
|
- RABBITMQ_HOST=rabbitmq
|
|
- RABBITMQ_PORT=5672
|
|
- RABBITMQ_USER=pipeline_admin
|
|
- RABBITMQ_PASSWORD=${RABBITMQ_PASSWORD}
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
mongodb:
|
|
condition: service_started
|
|
|
|
user-auth:
|
|
build: ./services/user-auth
|
|
container_name: pipeline_user_auth
|
|
ports:
|
|
- "8011:8011"
|
|
environment:
|
|
- PORT=8011
|
|
- HOST=0.0.0.0
|
|
- NODE_ENV=development
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
- JWT_ACCESS_SECRET=access-secret-key-2024-tech4biz-${POSTGRES_PASSWORD}
|
|
- JWT_REFRESH_SECRET=refresh-secret-key-2024-tech4biz-${POSTGRES_PASSWORD}
|
|
- JWT_ACCESS_EXPIRY=15m
|
|
- JWT_REFRESH_EXPIRY=7d
|
|
- FRONTEND_URL=http://localhost:61004
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8011/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
restart: unless-stopped
|
|
|
|
|
|
|
|
|
|
|
|
|
|
template-manager:
|
|
build: ./services/template-manager
|
|
container_name: pipeline_template_manager
|
|
ports:
|
|
- "8009:8009"
|
|
environment:
|
|
- PORT=8009
|
|
- HOST=0.0.0.0
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_DB=dev_pipeline
|
|
- POSTGRES_USER=pipeline_admin
|
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
|
- REDIS_HOST=redis
|
|
- REDIS_PORT=6379
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
- NODE_ENV=development
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8009/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
self-improving-generator:
|
|
build: ./self-improving-generator
|
|
container_name: pipeline_self_improving_generator
|
|
ports:
|
|
- "8007:8007"
|
|
environment:
|
|
- PORT=8007
|
|
- HOST=0.0.0.0
|
|
- DATABASE_URL=postgresql://pipeline_admin:${POSTGRES_PASSWORD}@postgres:5432/dev_pipeline
|
|
- CLAUDE_API_KEY=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
|
|
- REDIS_URL=redis://pipeline_redis:6379
|
|
- SERVICE_PORT=8007
|
|
- LOG_LEVEL=INFO
|
|
- DEFAULT_TARGET_QUALITY=0.85
|
|
- MAX_ITERATIONS=5
|
|
- ENABLE_LEARNING_SYSTEM=true
|
|
- ENABLE_BACKGROUND_PROCESSING=true
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
volumes:
|
|
- ./self-improving-generator:/app
|
|
- /tmp/generated-projects:/tmp/generated-projects
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8007/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
# =====================================
|
|
# Workflow Orchestration
|
|
# =====================================
|
|
|
|
dashboard:
|
|
build: ./dashboard-service
|
|
container_name: pipeline_dashboard
|
|
ports:
|
|
- "8008:8008"
|
|
environment:
|
|
- NODE_ENV=production
|
|
- PORT=8008
|
|
- DATABASE_URL=postgresql://pipeline_admin:${POSTGRES_PASSWORD}@postgres:5432/dev_pipeline
|
|
- REDIS_URL=redis://pipeline_redis:6379
|
|
- API_GATEWAY_URL=http://pipeline_api_gateway:8000
|
|
- CODE_GENERATOR_URL=http://pipeline_code_generator:8004
|
|
- SELF_IMPROVING_URL=http://pipeline_self_improving_generator:8007
|
|
- REQUIREMENT_PROCESSOR_URL=http://pipeline_requirement_processor:8001
|
|
- TECH_STACK_SELECTOR_URL=http://pipeline_tech_stack_selector:8002
|
|
- ARCHITECTURE_DESIGNER_URL=http://pipeline_architecture_designer:8003
|
|
- TEST_GENERATOR_URL=http://pipeline_test_generator:8005
|
|
- DEPLOYMENT_MANAGER_URL=http://pipeline_deployment_manager:8006
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
code-generator:
|
|
condition: service_healthy
|
|
self-improving-generator:
|
|
condition: service_healthy
|
|
volumes:
|
|
|
|
- /tmp/generated-projects:/tmp/generated-projects:ro
|
|
- ./dashboard-exports:/tmp/dashboard-exports
|
|
restart: unless-stopped
|
|
healthcheck:
|
|
test: ["CMD", "curl", "-f", "http://localhost:8008/api/health"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
start_period: 40s
|
|
n8n:
|
|
image: n8nio/n8n:latest
|
|
container_name: pipeline_n8n
|
|
ports:
|
|
- "5678:5678"
|
|
environment:
|
|
- N8N_BASIC_AUTH_ACTIVE=true
|
|
- N8N_BASIC_AUTH_USER=pipeline_admin
|
|
- N8N_BASIC_AUTH_PASSWORD=pipeline_n8n_2024
|
|
- N8N_HOST=localhost
|
|
- N8N_PORT=5678
|
|
- N8N_PROTOCOL=http
|
|
- WEBHOOK_URL=http://localhost:5678
|
|
- GENERIC_TIMEZONE=UTC
|
|
- DB_TYPE=postgresdb
|
|
- DB_POSTGRESDB_HOST=postgres
|
|
- DB_POSTGRESDB_PORT=5432
|
|
- DB_POSTGRESDB_DATABASE=n8n
|
|
- DB_POSTGRESDB_USER=pipeline_admin
|
|
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- n8n_data:/home/node/.n8n
|
|
- ./orchestration/n8n/workflows:/home/node/.n8n/workflows
|
|
networks:
|
|
- pipeline_network
|
|
depends_on:
|
|
postgres:
|
|
condition: service_healthy
|
|
redis:
|
|
condition: service_healthy
|
|
rabbitmq:
|
|
condition: service_healthy
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:5678/healthz"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
start_period: 60s
|
|
|
|
# =====================================
|
|
# Volumes
|
|
# =====================================
|
|
volumes:
|
|
postgres_data:
|
|
driver: local
|
|
redis_data:
|
|
driver: local
|
|
mongodb_data:
|
|
driver: local
|
|
rabbitmq_data:
|
|
driver: local
|
|
rabbitmq_logs:
|
|
driver: local
|
|
n8n_data:
|
|
driver: local
|
|
neo4j_data:
|
|
driver: local
|
|
neo4j_logs:
|
|
driver: local
|
|
chromadb_data:
|
|
driver: local
|
|
|
|
# =====================================
|
|
# Networks
|
|
# =====================================
|
|
networks:
|
|
pipeline_network:
|
|
driver: bridge
|
|
# =====================================
|
|
# Self-Improving Code Generator
|
|
# =====================================
|
|
|
|
|
|
# =====================================
|
|
# Self-Improving Code Generator
|
|
# =====================================
|
|
|
|
|