Ctrl K
ComunidadGuías…

compose.yaml

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

Archivo original ↗Preguntar a KiBot
name: leverframe

services:
  reviewer:
    build:
      context: .
      target: reviewer
    image: leverframe-reviewer:local
    init: true
    restart: unless-stopped
    stop_grace_period: 2m
    env_file:
      - .env
    environment:
      APP_DATA_DIRECTORY: ${APP_DATA_DIRECTORY:?Set APP_DATA_DIRECTORY in .env}
      APP_HOST: 0.0.0.0
      APP_PORT: '6571'
      REVIEW_SANDBOX_TEMPLATE: ${REVIEW_SANDBOX_TEMPLATE:?Install the local review sandbox template and set REVIEW_SANDBOX_TEMPLATE in .env}
    ports:
      - '${REVIEWER_BIND_ADDRESS:-127.0.0.1}:${REVIEWER_PORT:-6571}:6571'
    volumes:
      - ${APP_DATA_DIRECTORY:?Set APP_DATA_DIRECTORY in .env}:${APP_DATA_DIRECTORY:?Set APP_DATA_DIRECTORY in .env}
      - ${SANDBOX_CLI_PATH:-/usr/bin/sbx}:/usr/local/bin/sbx:ro
      - ${HOME}/.config/com.docker.sandboxes:/home/node/.config/com.docker.sandboxes
      - ${HOME}/.config/sandboxes:/home/node/.config/sandboxes
      - ${HOME}/.local/state/sandboxes/sandboxes/sandboxd:/home/node/.local/state/sandboxes/sandboxes/sandboxd:ro
      - ${HOME}/.agents/skills:/agent-skills:ro
    healthcheck:
      test:
        [
          'CMD',
          'node',
          '--input-type=module',
          '-e',
          "fetch('http://127.0.0.1:6571/healthz').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))",
        ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s

  web:
    build:
      context: .
      target: web
    image: leverframe-web:local
    init: true
    restart: unless-stopped
    environment:
      HOSTNAME: 0.0.0.0
      NODE_ENV: production
      PORT: '6572'
      REVIEWER_INTERNAL_URL: http://reviewer:6571
    ports:
      - '${WEB_BIND_ADDRESS:-127.0.0.1}:${WEB_PORT:-6572}:6572'
    healthcheck:
      test:
        [
          'CMD',
          'node',
          '--input-type=module',
          '-e',
          "fetch('http://127.0.0.1:6572/en/reviews').then((response) => process.exit(response.ok ? 0 : 1)).catch(() => process.exit(1))",
        ]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 15s