codenuk_backend_mine/docker-compose.yml
2025-10-16 10:52:33 +05:30

892 lines
27 KiB
YAML

services:
# =====================================
# Core Infrastructure Services
# =====================================
postgres:
image: pgvector/pgvector:pg15
container_name: pipeline_postgres
environment:
POSTGRES_USER: pipeline_admin
POSTGRES_PASSWORD: secure_pipeline_2024
POSTGRES_DB: dev_pipeline
volumes:
- postgres_data:/var/lib/postgresql/data
- ./databases/scripts/init.sql:/docker-entrypoint-initdb.d/init.sql
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_secure_2024
volumes:
- redis_data:/data
ports:
- "6380: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_admin
MONGO_INITDB_ROOT_PASSWORD: mongo_secure_2024
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: rabbit_secure_2024
volumes:
- rabbitmq_data:/var/lib/rabbitmq
- rabbitmq_logs:/var/log/rabbitmq
ports:
- "5673:5672"
- "15672:15672"
- "15692:15692"
networks:
- pipeline_network
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "ping"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
# =====================================
# One-shot migrations runner (init job)
# =====================================
migrations:
image: node:18
container_name: pipeline_migrations
working_dir: /app
volumes:
- ./:/app
- migration_state:/tmp # Persistent volume for migration state
environment:
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=dev_pipeline
- POSTGRES_USER=pipeline_admin
- POSTGRES_PASSWORD=secure_pipeline_2024
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- NODE_ENV=development
- DATABASE_URL=postgresql://pipeline_admin:secure_pipeline_2024@postgres:5432/dev_pipeline
- ALLOW_DESTRUCTIVE_MIGRATIONS=false # Safety flag for destructive operations
entrypoint: ["/bin/sh", "-c", "chmod +x ./scripts/migrate-all.sh && ./scripts/migrate-all.sh"]
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
networks:
- pipeline_network
restart: "no"
# =====================================
# 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
- HOST=0.0.0.0
- CORS_ORIGINS=http://localhost:3001
- CORS_METHODS=GET,POST,PUT,DELETE,PATCH,OPTIONS # Add this line
- CORS_CREDENTIALS=true # Add this line
# Database connections
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=dev_pipeline
- POSTGRES_USER=pipeline_admin
- POSTGRES_PASSWORD=secure_pipeline_2024
# Cache and message queue
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- RABBITMQ_HOST=rabbitmq
- RABBITMQ_PORT=5672
- RABBITMQ_USER=pipeline_admin
- RABBITMQ_PASSWORD=rabbit_secure_2024
# JWT configuration
- JWT_ACCESS_SECRET=access-secret-key-2024-tech4biz-secure_pipeline_2024
- JWT_SECRET=ultra_secure_jwt_secret_2024
# - JWT_ACCESS_SECRET=access-secret-key-2024-tech4biz-secure_pipeline_2024
# - JWT_REFRESH_SECRET=refresh-secret-key-2024-tech4biz-secure_pipeline_2024
# Service URLs
- USER_AUTH_URL=http://pipeline_user_auth:8011
- TEMPLATE_MANAGER_URL=http://template-manager:8009
- GIT_INTEGRATION_URL=http://git-integration:8012
- REQUIREMENT_PROCESSOR_URL=http://requirement-processor:8001
- TECH_STACK_SELECTOR_URL=http://tech-stack-selector:8002
- ARCHITECTURE_DESIGNER_URL=http://architecture-designer:8003
- CODE_GENERATOR_URL=http://code-generator:8004
- TEST_GENERATOR_URL=http://test-generator:8005
- DEPLOYMENT_MANAGER_URL=http://deployment-manager:8006
- DASHBOARD_URL=http://dashboard:8008
- SELF_IMPROVING_GENERATOR_URL=http://self-improving-generator:8007
- AI_MOCKUP_URL=http://ai-mockup-service:8021
- UNISON_URL=http://unison:8010
- TEMPLATE_MANAGER_AI_URL=http://template-manager:8013
volumes:
- api_gateway_logs:/app/logs # Add persistent volume for logs
user: "node" # Run as node user instead of root
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
rabbitmq:
condition: service_healthy
migrations:
condition: service_completed_successfully
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
restart: unless-stopped
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=secure_pipeline_2024
- DATABASE_URL=postgresql://pipeline_admin:secure_pipeline_2024@postgres:5432/dev_pipeline
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- 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_secure_2024@redis:6379
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
mongodb:
condition: service_started
migrations:
condition: service_completed_successfully
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=secure_pipeline_2024
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- CLAUDE_API_KEY=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
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
migrations:
condition: service_completed_successfully
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=secure_pipeline_2024
- MONGODB_HOST=mongodb
- MONGODB_PORT=27017
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
mongodb:
condition: service_started
migrations:
condition: service_completed_successfully
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=secure_pipeline_2024
- MONGODB_HOST=mongodb
- MONGODB_PORT=27017
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- 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
migrations:
condition: service_completed_successfully
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=secure_pipeline_2024
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
migrations:
condition: service_completed_successfully
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=secure_pipeline_2024
- MONGODB_HOST=mongodb
- MONGODB_PORT=27017
- RABBITMQ_HOST=rabbitmq
- RABBITMQ_PORT=5672
- RABBITMQ_USER=pipeline_admin
- RABBITMQ_PASSWORD=rabbit_secure_2024
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
rabbitmq:
condition: service_healthy
mongodb:
condition: service_started
migrations:
condition: service_completed_successfully
user-auth:
build: ./services/user-auth
container_name: pipeline_user_auth
ports:
- "8011:8011"
environment:
- FRONTEND_URL=http://localhost:3001
- 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=secure_pipeline_2024
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- JWT_ACCESS_SECRET=access-secret-key-2024-tech4biz-secure_pipeline_2024
- JWT_REFRESH_SECRET=refresh-secret-key-2024-tech4biz-secure_pipeline_2024
- JWT_ACCESS_EXPIRY=24h
- JWT_ADMIN_ACCESS_EXPIRY=7d
- JWT_REFRESH_EXPIRY=7d
# Email Configuration
- SMTP_HOST=smtp.gmail.com
- SMTP_PORT=587
- SMTP_SECURE=false
- SMTP_USER=frontendtechbiz@gmail.com
- SMTP_PASS=oidhhjeasgzbqptq
- SMTP_FROM=frontendtechbiz@gmail.com
- GMAIL_USER=frontendtechbiz@gmail.com
- GMAIL_APP_PASSWORD=oidhhjeasgzbqptq
- AUTH_PUBLIC_URL=*
- TEMPLATE_MANAGER_URL=http://template-manager:8009
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
migrations:
condition: service_completed_successfully
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1: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=secure_pipeline_2024
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- NODE_ENV=development
- JWT_ACCESS_SECRET=access-secret-key-2024-tech4biz-secure_pipeline_2024
- CLAUDE_API_KEY=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
- TEMPLATE_MANAGER_AI_URL=http://127.0.0.1:8013
- NEO4J_URI=bolt://neo4j:7687
- NEO4J_USERNAME=neo4j
- NEO4J_PASSWORD=password
- PYTHONUNBUFFERED=1
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
migrations:
condition: service_completed_successfully
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8009/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
restart: unless-stopped
# AI Mockup / Wireframe Generation Service
ai-mockup-service:
build: ./services/ai-mockup-service
container_name: pipeline_ai_mockup_service
ports:
- "8021:8021"
environment:
- PORT=8021
- HOST=0.0.0.0
- CLAUDE_API_KEY=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
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=dev_pipeline
- POSTGRES_USER=pipeline_admin
- POSTGRES_PASSWORD=secure_pipeline_2024
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- JWT_ACCESS_SECRET=access-secret-key-2024-tech4biz-secure_pipeline_2024
- USER_AUTH_SERVICE_URL=http://user-auth:8011
- FLASK_ENV=development
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
user-auth:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8021/health"]
interval: 30s
timeout: 10s
retries: 3
git-integration:
build: ./services/git-integration
container_name: pipeline_git_integration
ports:
- "8012:8012"
environment:
- PORT=8012
- HOST=0.0.0.0
- FRONTEND_URL=http://localhost:3001/project-builder
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=dev_pipeline
- POSTGRES_USER=pipeline_admin
- POSTGRES_PASSWORD=secure_pipeline_2024
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- NODE_ENV=development
- GITHUB_CLIENT_ID=Ov23liQgF14aogXVZNCR
- GITHUB_CLIENT_SECRET=8bf82a29154fdccb837bc150539a2226d00b5da5
- GITHUB_REDIRECT_URI=http://localhost:8000/api/github/auth/github/callback
- GITHUB_WEBHOOK_SECRET=mywebhooksecret2025
# GitLab OAuth Configuration
- GITLAB_CLIENT_ID=f05b0ab3ff6d5d26e1350ccf42d6394e085e343251faa07176991355112d4348
- GITLAB_CLIENT_SECRET=gloas-a2c11ed9bd84201d7773f264cad6e86a116355d80c24a68000cebfc92ebe2411
- GITLAB_BASE_URL=https://gitlab.com
- GITLAB_REDIRECT_URI=http://localhost:8000/api/vcs/gitlab/auth/callback
- GITLAB_WEBHOOK_SECRET=mywebhooksecret2025
# Bitbucket OAuth Configuration
- BITBUCKET_CLIENT_ID=ZhdD8bbfugEUS4aL7v
- BITBUCKET_CLIENT_SECRET=K3dY3PFQRJUGYwBtERpHMswrRHbmK8qw
- BITBUCKET_REDIRECT_URI=http://localhost:8000/api/vcs/bitbucket/auth/callback
- BITBUCKET_OAUTH_SCOPES=repository account
- BITBUCKET_WEBHOOK_SECRET=mywebhooksecret2025
# Gitea OAuth Configuration
- GITEA_CLIENT_ID=67c9cdb9-c15a-4c02-9c85-31cfd1c62ef2
- GITEA_CLIENT_SECRET=gto_vmom6izq6ysaa7wmiq24whz5oe3zki2cmhljszgbg5yourlxfrua
- GITEA_BASE_URL=https://gitea.com
- GITEA_REDIRECT_URI=http://localhost:8000/api/vcs/gitea/auth/callback
- GITEA_WEBHOOK_SECRET=mywebhooksecret2025
- PUBLIC_BASE_URL=https://7922be5648be.ngrok-free.app
- ATTACHED_REPOS_DIR=/app/git-repos
- DIFF_STORAGE_DIR=/app/git-diff
- SESSION_SECRET=git-integration-secret-key-2024
volumes:
- /home/tech4biz/Desktop/today work/git-repo:/app/git-repos
- /home/tech4biz/Desktop/today work/git-diff:/app/git-diff
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
migrations:
condition: service_completed_successfully
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://127.0.0.1:8012/health', (res) => process.exit(res.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
restart: unless-stopped
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:secure_pipeline_2024@postgres:5432/dev_pipeline
- CLAUDE_API_KEY=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
- REDIS_URL=redis://:redis_secure_2024@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
migrations:
condition: service_completed_successfully
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
# =====================================
# AI Analysis Service
# =====================================
ai-analysis-service:
build: ./services/ai-analysis-service
container_name: pipeline_ai_analysis_service
ports:
- "8022:8022"
environment:
- PORT=8022
- HOST=0.0.0.0
- ANTHROPIC_API_KEY=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
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=dev_pipeline
- POSTGRES_USER=pipeline_admin
- POSTGRES_PASSWORD=secure_pipeline_2024
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=redis_secure_2024
- MONGODB_URL=mongodb://pipeline_admin:mongo_secure_2024@mongodb:27017/
- MONGODB_DB=repo_analyzer
- JWT_ACCESS_SECRET=access-secret-key-2024-tech4biz-secure_pipeline_2024
- USER_AUTH_SERVICE_URL=http://user-auth:8011
- PYTHONUNBUFFERED=1
volumes:
- ai_analysis_logs:/app/logs
- ai_analysis_reports:/app/reports
- ai_analysis_temp:/app/temp
networks:
- pipeline_network
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
mongodb:
condition: service_started
migrations:
condition: service_completed_successfully
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8022/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
restart: unless-stopped
# =====================================
# Workflow Orchestration
# =====================================
dashboard:
build: ./dashboard-service
container_name: pipeline_dashboard
ports:
- "8008:8008"
environment:
- NODE_ENV=production
- PORT=8008
- DATABASE_URL=postgresql://pipeline_admin:secure_pipeline_2024@postgres:5432/dev_pipeline
- REDIS_URL=redis://:redis_secure_2024@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
migrations:
condition: service_completed_successfully
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=admin
- N8N_BASIC_AUTH_PASSWORD=admin_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=dev_pipeline
- DB_POSTGRESDB_USER=pipeline_admin
- DB_POSTGRESDB_PASSWORD=secure_pipeline_2024
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
git_repos_data:
driver: local
n8n_data:
driver: local
neo4j_data:
driver: local
neo4j_logs:
driver: local
chromadb_data:
driver: local
api_gateway_logs:
driver: local
migration_state:
driver: local
ai_analysis_logs:
driver: local
ai_analysis_reports:
driver: local
ai_analysis_temp:
driver: local
# =====================================
# Networks
# =====================================
networks:
pipeline_network:
driver: bridge