Docker Deployment
Deploy CognitiveX using Docker Compose for quick, reliable, and reproducible deployments.
Prerequisites
- Docker Engine 20.10+
- Docker Compose 2.0+
- 4GB+ RAM available
- 20GB+ disk space
Quick Start
1. Download Docker Compose File
bash
curl -fsSL https://get.cognitivex.ai/docker-compose.yml -o docker-compose.yml2. Configure Environment
.envbash
# API Keys
COGNITIVEX_API_KEY=your_api_key_here
OPENAI_API_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key
# Database
POSTGRES_PASSWORD=secure_password_here
POSTGRES_DB=cognitivex
# Redis
REDIS_PASSWORD=secure_redis_password
# Application
NODE_ENV=production
PORT=30003. Start Services
bash
docker-compose up -d4. Verify Deployment
bash
# Check services
docker-compose ps
# View logs
docker-compose logs -f
# Health check
curl http://localhost:3000/healthComplete docker-compose.yml
docker-compose.ymlyaml
version: '3.8'
services:
# PostgreSQL with pgvector
postgres:
image: pgvector/pgvector:pg16
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
# Redis
redis:
image: redis:7-alpine
command: redis-server --requirepass ${REDIS_PASSWORD}
volumes:
- redis_data:/data
ports:
- "6379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# CognitiveX Backend
backend:
image: cognitivex/backend:latest
environment:
NODE_ENV: production
DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
REDIS_URL: redis://:${REDIS_PASSWORD}@redis:6379
OPENAI_API_KEY: ${OPENAI_API_KEY}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
ports:
- "3000:3000"
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
volumes:
postgres_data:
redis_data:Management Commands
Start Services
bash
docker-compose up -dStop Services
bash
docker-compose downView Logs
bash
# All services
docker-compose logs -f
# Specific service
docker-compose logs -f backendUpdate Services
bash
docker-compose pull
docker-compose up -dDatabase Backup
bash
docker-compose exec postgres pg_dump -U postgres cognitivex > backup.sqlProduction Configuration
Additional Considerations
- • Use
restart: unless-stoppedfor auto-restart - • Configure resource limits (CPU, memory)
- • Set up log rotation
- • Use secrets management for sensitive data
- • Enable SSL/TLS with reverse proxy (nginx/Traefik)
- • Set up automated backups
- • Configure monitoring and alerts
Troubleshooting
Service won't start
Check logs: docker-compose logs [service]
Database connection error
Verify PostgreSQL is healthy: docker-compose ps
Out of disk space
Clean up: docker system prune -a