compose.yaml
Rama main · réplica de lectura del repositorio original.
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