version: '3.8' services: modelhub: build: context: . dockerfile: Dockerfile container_name: modelhub ports: - "${PORT:-3000}:3000" environment: # Database - DATABASE_URL=${DATABASE_URL} - DIRECT_URL=${DIRECT_URL} # Auth - NEON_AUTH_BASE_URL=${NEON_AUTH_BASE_URL} - NEON_AUTH_COOKIE_SECRET=${NEON_AUTH_COOKIE_SECRET} # Encryption - ENCRYPTION_KEY=${ENCRYPTION_KEY} # Environment - NODE_ENV=production - REQUIRE_AUTH=${REQUIRE_AUTH:-true} - ALLOW_DEBUG_ENDPOINTS=${ALLOW_DEBUG_ENDPOINTS:-false} # Rate Limiting - RATE_LIMIT_WINDOW_MS=${RATE_LIMIT_WINDOW_MS:-60000} - RATE_LIMIT_MAX=${RATE_LIMIT_MAX:-100} - USER_RATE_LIMIT_MAX=${USER_RATE_LIMIT_MAX:-50} # CORS (opcional) - ALLOWED_ORIGINS=${ALLOWED_ORIGINS:-} - ALLOWED_PROXY_DOMAINS=${ALLOWED_PROXY_DOMAINS:-} # Providers (opcional) - ENABLED_PROVIDERS=${ENABLED_PROVIDERS:-} - DISABLED_PROVIDERS=${DISABLED_PROVIDERS:-} # Provider API Keys (opcional) - OPENAI_API_KEY=${OPENAI_API_KEY:-} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-} - GOOGLE_AI_STUDIO_API_KEY=${GOOGLE_AI_STUDIO_API_KEY:-} - GROQ_API_KEY=${GROQ_API_KEY:-} - MISTRAL_API_KEY=${MISTRAL_API_KEY:-} - COHERE_API_KEY=${COHERE_API_KEY:-} - HUGGINGFACE_API_KEY=${HUGGINGFACE_API_KEY:-} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-} - VERCEL_AI_GATEWAY_API_KEY=${VERCEL_AI_GATEWAY_API_KEY:-} restart: unless-stopped healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - modelhub-network # Opcional: Volumes para logs persistentes volumes: - modelhub-logs:/app/logs networks: modelhub-network: driver: bridge volumes: modelhub-logs: driver: local