PARA.AI / docker-compose.yaml
Carlex22's picture
Revert "ParaAIV3.1"
1f24745
# ============================================================================
# Docker Compose para desenvolvimento local - para.AI API v3.0
# ============================================================================
#
# Uso:
# docker-compose up -d # Iniciar todos os serviços
# docker-compose logs -f api # Ver logs da API
# docker-compose down # Parar todos os serviços
# docker-compose down -v # Parar e remover volumes
#
# ============================================================================
version: '3.1'
services:
# ==========================================================================
# PostgreSQL Database
# ==========================================================================
db:
image: postgres:15-alpine
container_name: para_ai_db
restart: unless-stopped
environment:
POSTGRES_USER: para_ai
POSTGRES_PASSWORD: para_ai_dev_2026
POSTGRES_DB: para_ai
POSTGRES_INITDB_ARGS: "--encoding=UTF8 --locale=pt_BR.UTF-8"
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
- ./database/init_db.sql:/docker-entrypoint-initdb.d/01-init.sql
- ./scripts/seed_data.sql:/docker-entrypoint-initdb.d/02-seed.sql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U para_ai -d para_ai"]
interval: 10s
timeout: 5s
retries: 5
networks:
- para_ai_network
# ==========================================================================
# Redis (opcional - para cache)
# ==========================================================================
redis:
image: redis:7-alpine
container_name: para_ai_redis
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis_data:/data
command: redis-server --appendonly yes
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- para_ai_network
# ==========================================================================
# API Application
# ==========================================================================
api:
build:
context: .
dockerfile: Dockerfile
container_name: para_ai_api
restart: unless-stopped
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
environment:
# App
APP_ENV: development
DEBUG: "true"
# Database
DATABASE_URL: postgresql://para_ai:para_ai_dev_2026@db:5432/para_ai
DB_POOL_SIZE: 10
DB_MAX_OVERFLOW: 20
# LLM Providers (use suas keys reais aqui ou via .env)
GROQ_API_KEY: ${GROQ_API_KEY:-}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
# Cache
ENABLE_CACHE: "true"
REDIS_URL: redis://redis:6379/0
# Processing
ENABLE_PARALLEL: "true"
MAX_CONCURRENT_PROCESSES: 3
# Logging
LOG_LEVEL: DEBUG
ports:
- "7860:7860"
volumes:
- ./:/app
- api_data:/app/data
- api_logs:/app/logs
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:7860/api/v1/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
- para_ai_network
# ==========================================================================
# pgAdmin (opcional - interface web para PostgreSQL)
# ==========================================================================
pgadmin:
image: dpage/pgadmin4:latest
container_name: para_ai_pgadmin
restart: unless-stopped
environment:
PGADMIN_DEFAULT_EMAIL: admin@para.ai
PGADMIN_DEFAULT_PASSWORD: admin123
PGADMIN_CONFIG_SERVER_MODE: 'False'
ports:
- "5050:80"
volumes:
- pgadmin_data:/var/lib/pgadmin
depends_on:
- db
networks:
- para_ai_network
# ============================================================================
# VOLUMES
# ============================================================================
volumes:
postgres_data:
driver: local
redis_data:
driver: local
api_data:
driver: local
api_logs:
driver: local
pgadmin_data:
driver: local
# ============================================================================
# NETWORKS
# ============================================================================
networks:
para_ai_network:
driver: bridge