version: '3.8'
services:
# PostgreSQL database for n8n
postgres:
image: postgres:15-alpine
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-n8n_secure_password}
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- deenmate_network
restart: unless-stopped
# n8n automation platform
n8n:
image: n8nio/n8n:latest
ports:
- "5678:5678"
environment:
- N8N_HOST=0.0.0.0
- N8N_PORT=5678
- N8N_PROTOCOL=http
- WEBHOOK_URL=${WEBHOOK_URL:-http://localhost:5678}
- N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY:-deenmate_encryption_key_2024}
- N8N_SECURE_COOKIE=false
- N8N_DISABLE_UI=false
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD:-n8n_secure_password}
- N8N_LOG_LEVEL=info
- N8N_METRICS=true
volumes:
- n8n_data:/home/node/.n8n
- ./workflows:/home/node/.n8n/workflows:ro
depends_on:
- postgres
networks:
- deenmate_network
restart: unless-stopped
# MCP HTTP Bridge (without building, just run Python)
mcp-bridge:
image: python:3.11-slim
ports:
- "8080:8080"
working_dir: /app
volumes:
- .:/app/n8n-integration
- ../deenmate-integration:/app/deenmate-integration
- ../mcp_server.py:/app/mcp_server.py
- ../mcp:/app/mcp
environment:
- PYTHONPATH=/app:/app/deenmate-integration
- HOST=0.0.0.0
- PORT=8080
command: >
bash -c "
pip install fastapi uvicorn pydantic python-multipart aiofiles requests &&
pip install torch transformers accelerate bitsandbytes scipy python-dotenv --index-url https://download.pytorch.org/whl/cpu &&
cd /app/n8n-integration &&
python mcp_http_bridge.py --host 0.0.0.0 --port 8080
"
networks:
- deenmate_network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
volumes:
postgres_data:
driver: local
n8n_data:
driver: local
networks:
deenmate_network:
driver: bridge