Ctrl K
ComunidadGuías…

docker-compose.yml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Local development / smoke-test of the production image
#
# Usage:
#   docker compose up --build
#   docker compose down -v
#
# App: http://localhost:8090
# PocketBase admin: http://localhost:8090/_/
# AI API: http://localhost:3001/api/health

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
      args:
        VITE_AI_API_URL: http://localhost:3001
        VITE_VAPID_PUBLIC_KEY: ${VITE_VAPID_PUBLIC_KEY:-}
    container_name: calistenia-app
    restart: unless-stopped
    ports:
      - "8090:8090"
    environment:
      # PB hooks need these to call the AI API for push notifications
      - AI_API_URL=http://ai-api:3001
      - INTERNAL_API_KEY=${INTERNAL_API_KEY:-}
    volumes:
      - ./pb_data_local:/app/pb_data

  ai-api:
    build:
      context: .
      dockerfile: mcp-server/Dockerfile
    container_name: calistenia-ai-api
    restart: unless-stopped
    ports:
      - "3001:3001"
    environment:
      # At least one provider key is required
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
      - GOOGLE_GENERATIVE_AI_API_KEY=${GOOGLE_GENERATIVE_AI_API_KEY:-}
      - OPENAI_API_KEY=${OPENAI_API_KEY:-}
      # PocketBase URL (internal Docker network)
      - POCKETBASE_URL=http://app:8090
      # Optional: set preferred provider and model overrides
      - DEFAULT_AI_PROVIDER=${DEFAULT_AI_PROVIDER:-}
      - DEFAULT_MODEL_FREE=${DEFAULT_MODEL_FREE:-}
      - DEFAULT_MODEL_PRO=${DEFAULT_MODEL_PRO:-}
      # Optional: rate limit tuning
      - RATE_LIMIT_WINDOW_MS=${RATE_LIMIT_WINDOW_MS:-60000}
      - RATE_LIMIT_MAX=${RATE_LIMIT_MAX:-10}
      # MCP OAuth public origin — must be this server's public URL so OAuth
      # discovery metadata (issuer / authorize / token / protected-resource)
      # resolves for remote clients like Claude Desktop Connectors.
      # Set the real value in Dokploy env vars (prod) or .env (local).
      # Falls back to localhost for a bare `docker compose up`.
      - SERVER_URL=${SERVER_URL:-http://localhost:3001}
      # Push notifications (VAPID + internal auth)
      - VITE_VAPID_PUBLIC_KEY=${VITE_VAPID_PUBLIC_KEY:-}
      - VAPID_PRIVATE_KEY=${VAPID_PRIVATE_KEY:-}
      - INTERNAL_API_KEY=${INTERNAL_API_KEY:-}
    depends_on:
      - app