version: '3.8' services: ai-software-factory: build: context: . dockerfile: Containerfile ports: - "8000:8000" environment: - HOST=0.0.0.0 - PORT=8000 - OLLAMA_URL=http://ollama:11434 - OLLAMA_MODEL=llama3 - GITEA_URL=${GITEA_URL:-https://gitea.yourserver.com} - GITEA_TOKEN=${GITEA_TOKEN:-} - GITEA_OWNER=${GITEA_OWNER:-ai-test} - GITEA_REPO=${GITEA_REPO:-ai-test} - N8N_WEBHOOK_URL=${N8N_WEBHOOK_URL:-} - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-} - TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-} - POSTGRES_HOST=postgres - POSTGRES_PORT=5432 - POSTGRES_USER=${POSTGRES_USER:-ai_software_factory} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-} - POSTGRES_DB=${POSTGRES_DB:-ai_software_factory} - LOG_LEVEL=${LOG_LEVEL:-INFO} - DB_POOL_SIZE=${DB_POOL_SIZE:-10} - DB_MAX_OVERFLOW=${DB_MAX_OVERFLOW:-20} - DB_POOL_RECYCLE=${DB_POOL_RECYCLE:-3600} - DB_POOL_TIMEOUT=${DB_POOL_TIMEOUT:-30} depends_on: - postgres networks: - ai-test-network postgres: image: postgres:15-alpine environment: - POSTGRES_USER=${POSTGRES_USER:-ai_software_factory} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-} - POSTGRES_DB=${POSTGRES_DB:-ai_software_factory} volumes: - postgres_data:/var/lib/postgresql/data ports: - "5432:5432" networks: - ai-test-network # Health check for PostgreSQL healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-ai_software_factory} -d ${POSTGRES_DB:-ai_software_factory}"] interval: 10s timeout: 5s retries: 5 n8n: image: n8nio/n8n:latest ports: - "5678:5678" environment: - N8N_HOST=n8n - N8N_PORT=5678 - N8N_PROTOCOL=http volumes: - n8n_data:/home/node/.n8n networks: - ai-test-network ollama: image: ollama/ollama:latest ports: - "11434:11434" volumes: - ollama_data:/root/.ollama networks: - ai-test-network volumes: postgres_data: n8n_data: ollama_data: networks: ai-test-network: driver: bridge