Ctrl K
ComunidadGuías…

docker-compose.yml

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

Archivo original ↗Preguntar a KiBot
services:
  init:
    image: ubuntu:24.04
    command: ["sh", "-c", "mkdir -p /data/workspace /data/backups && chown -R 1000:1000 /data"]
    volumes: ["data:/data"]
  migrate:
    image: amman-v1-server
    command: ["node", "dist/migrate.js"]
    environment:
      DATA_DIR: /data
    volumes: ["data:/data"]
    depends_on:
      init:
        condition: service_completed_successfully
    restart: "no"
  server:
    image: amman-v1-server
    build:
      context: .
      dockerfile: docker/app.Dockerfile
      target: server
    env_file:
      - path: .env
        required: false
    environment:
      DATA_DIR: /data
      SERVER_PORT: 8787
      SECRETS_KEY: ${SECRETS_KEY:-}
      PUBLIC_APP_URL: ${PUBLIC_APP_URL:-}
      XAI_API_KEY: ${XAI_API_KEY:-}
      ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-}
      OPENAI_API_KEY: ${OPENAI_API_KEY:-}
      AI_GATEWAY_API_KEY: ${AI_GATEWAY_API_KEY:-}
      WORKSPACE_STORE: ${WORKSPACE_STORE:-fs}
      S3_PROVIDER: ${S3_PROVIDER:-other}
      S3_ENDPOINT: ${S3_ENDPOINT:-}
      S3_REGION: ${S3_REGION:-us-east-1}
      S3_BUCKET: ${S3_BUCKET:-}
      S3_PREFIX: ${S3_PREFIX:-workspace/}
      S3_ACCESS_KEY_ID: ${S3_ACCESS_KEY_ID:-}
      S3_SECRET_ACCESS_KEY: ${S3_SECRET_ACCESS_KEY:-}
      S3_FORCE_PATH_STYLE: ${S3_FORCE_PATH_STYLE:-}
    volumes: ["data:/data"]
    restart: unless-stopped
    depends_on:
      migrate:
        condition: service_completed_successfully
    healthcheck:
      test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:8787/api/ready').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 20s
  web:
    build:
      context: .
      dockerfile: docker/app.Dockerfile
      target: web
    environment:
      PORT: 3001
      PUBLIC_API_URL: http://server:8787
    restart: unless-stopped
    depends_on:
      server:
        condition: service_healthy
    healthcheck:
      test: ["CMD", "node", "-e", "fetch('http://127.0.0.1:3001').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"]
      interval: 30s
      timeout: 5s
      retries: 3
  gateway:
    image: caddy:2.10.2-alpine
    ports: ["3000:3000"]
    volumes: ["./docker/Caddyfile:/etc/caddy/Caddyfile:ro"]
    restart: unless-stopped
    depends_on:
      server:
        condition: service_healthy
      web:
        condition: service_healthy
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:3000/api/ready"]
      interval: 30s
      timeout: 5s
      retries: 3
volumes:
  data:
    name: superworkers-data