Ctrl K
ComunidadGuías…

docker-compose.yaml

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

Archivo original ↗Preguntar a KiBot
services:
  deltallm:
    stop_grace_period: 90s
    build:
      context: .
      dockerfile: Dockerfile
      args:
        INSTALL_PRESIDIO: ${INSTALL_PRESIDIO:-false}
    profiles: ["single"]
    ports:
      - "4002:4000"
    environment:
      DELTALLM_CONFIG_PATH: /app/config/config.yaml
      OPENAI_API_KEY: ${OPENAI_API_KEY:-}
      DELTALLM_OPENAI_API_KEY: ${DELTALLM_OPENAI_API_KEY:-}
      DELTALLM_MASTER_KEY: ${DELTALLM_MASTER_KEY:-}
      PLATFORM_BOOTSTRAP_ADMIN_EMAIL: ${PLATFORM_BOOTSTRAP_ADMIN_EMAIL:-}
      PLATFORM_BOOTSTRAP_ADMIN_PASSWORD: ${PLATFORM_BOOTSTRAP_ADMIN_PASSWORD:-}
      LAKERA_API_KEY: ${LAKERA_API_KEY:-}
      DELTALLM_S3_BUCKET: ${DELTALLM_S3_BUCKET:-}
      REDIS_PASSWORD: ${REDIS_PASSWORD:-}
      DELTALLM_DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
      DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
      DELTALLM_REDIS_URL: redis://redis:6379/0
      REDIS_URL: redis://redis:6379/0
      DELTALLM_SALT_KEY: ${DELTALLM_SALT_KEY:-}
    volumes:
      - ./config.yaml:/app/config/config.yaml:ro
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "curl", "-fsS", "http://localhost:4000/health/liveliness"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

  deltallm-ha-1:
    stop_grace_period: 90s
    build:
      context: .
      dockerfile: Dockerfile
      args:
        INSTALL_PRESIDIO: ${INSTALL_PRESIDIO:-false}
    profiles: ["ha"]
    environment:
      DELTALLM_CONFIG_PATH: /app/config/config.yaml
      OPENAI_API_KEY: ${OPENAI_API_KEY:-}
      DELTALLM_OPENAI_API_KEY: ${DELTALLM_OPENAI_API_KEY:-}
      DELTALLM_MASTER_KEY: ${DELTALLM_MASTER_KEY:-}
      PLATFORM_BOOTSTRAP_ADMIN_EMAIL: ${PLATFORM_BOOTSTRAP_ADMIN_EMAIL:-}
      PLATFORM_BOOTSTRAP_ADMIN_PASSWORD: ${PLATFORM_BOOTSTRAP_ADMIN_PASSWORD:-}
      LAKERA_API_KEY: ${LAKERA_API_KEY:-}
      DELTALLM_S3_BUCKET: ${DELTALLM_S3_BUCKET:-}
      REDIS_PASSWORD: ${REDIS_PASSWORD:-}
      DELTALLM_DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
      DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
      DELTALLM_REDIS_URL: redis://redis:6379/0
      REDIS_URL: redis://redis:6379/0
      DELTALLM_SALT_KEY: ${DELTALLM_SALT_KEY:-}
      INSTANCE_ID: instance-1
    volumes:
      - ./config.yaml:/app/config/config.yaml:ro
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_healthy

  deltallm-ha-2:
    stop_grace_period: 90s
    build:
      context: .
      dockerfile: Dockerfile
      args:
        INSTALL_PRESIDIO: ${INSTALL_PRESIDIO:-false}
    profiles: ["ha"]
    environment:
      DELTALLM_CONFIG_PATH: /app/config/config.yaml
      OPENAI_API_KEY: ${OPENAI_API_KEY:-}
      DELTALLM_OPENAI_API_KEY: ${DELTALLM_OPENAI_API_KEY:-}
      DELTALLM_MASTER_KEY: ${DELTALLM_MASTER_KEY:-}
      PLATFORM_BOOTSTRAP_ADMIN_EMAIL: ${PLATFORM_BOOTSTRAP_ADMIN_EMAIL:-}
      PLATFORM_BOOTSTRAP_ADMIN_PASSWORD: ${PLATFORM_BOOTSTRAP_ADMIN_PASSWORD:-}
      LAKERA_API_KEY: ${LAKERA_API_KEY:-}
      DELTALLM_S3_BUCKET: ${DELTALLM_S3_BUCKET:-}
      REDIS_PASSWORD: ${REDIS_PASSWORD:-}
      DELTALLM_DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
      DATABASE_URL: postgresql://postgres:postgres@db:5432/deltallm
      DELTALLM_REDIS_URL: redis://redis:6379/0
      REDIS_URL: redis://redis:6379/0
      DELTALLM_SALT_KEY: ${DELTALLM_SALT_KEY:-}
      INSTANCE_ID: instance-2
    volumes:
      - ./config.yaml:/app/config/config.yaml:ro
    depends_on:
      db:
        condition: service_healthy
      redis:
        condition: service_healthy

  nginx:
    image: nginx:1.27-alpine
    profiles: ["ha"]
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - deltallm-ha-1
      - deltallm-ha-2

  db:
    image: postgres:15-alpine
    ports:
      # Local only: reachable from this machine, not from the network.
      - "127.0.0.1:5432:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: deltallm
    volumes:
      - postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postgres"]
      interval: 5s
      timeout: 5s
      retries: 10

  redis:
    image: redis:7-alpine
    ports:
      - "127.0.0.1:6379:6379"
    volumes:
      - redis_data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 5s
      timeout: 5s
      retries: 10

volumes:
  postgres_data:
  redis_data: