61 lines
1.6 KiB
YAML
61 lines
1.6 KiB
YAML
|
|
version: "3.8"
|
||
|
|
|
||
|
|
services:
|
||
|
|
agent:
|
||
|
|
image: gitea.letsbe.solutions/letsbe/letsbe-sysadmin:latest
|
||
|
|
container_name: letsbe-agent
|
||
|
|
|
||
|
|
environment:
|
||
|
|
# Required: Orchestrator connection
|
||
|
|
- ORCHESTRATOR_URL=${ORCHESTRATOR_URL}
|
||
|
|
|
||
|
|
# Registration token for first-time registration (multi-use tokens recommended)
|
||
|
|
- REGISTRATION_TOKEN=${REGISTRATION_TOKEN:-}
|
||
|
|
|
||
|
|
# Credentials path - must match the volume mount for persistence
|
||
|
|
- CREDENTIALS_PATH=/home/agent/.letsbe-agent/credentials.json
|
||
|
|
|
||
|
|
# Timing (seconds)
|
||
|
|
- HEARTBEAT_INTERVAL=${HEARTBEAT_INTERVAL:-30}
|
||
|
|
- POLL_INTERVAL=${POLL_INTERVAL:-5}
|
||
|
|
|
||
|
|
# Logging
|
||
|
|
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
||
|
|
- LOG_JSON=${LOG_JSON:-true}
|
||
|
|
|
||
|
|
# Resilience
|
||
|
|
- MAX_CONCURRENT_TASKS=${MAX_CONCURRENT_TASKS:-3}
|
||
|
|
- CIRCUIT_BREAKER_COOLDOWN=${CIRCUIT_BREAKER_COOLDOWN:-30}
|
||
|
|
|
||
|
|
# Security
|
||
|
|
- ALLOWED_FILE_ROOT=/opt/letsbe
|
||
|
|
|
||
|
|
# Playwright
|
||
|
|
- PLAYWRIGHT_ARTIFACTS_DIR=/opt/letsbe/playwright-artifacts
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
||
|
|
- /opt/letsbe/env:/opt/letsbe/env
|
||
|
|
- /opt/letsbe/stacks:/opt/letsbe/stacks
|
||
|
|
- /opt/letsbe/nginx:/opt/letsbe/nginx
|
||
|
|
- agent_home:/home/agent/.letsbe-agent
|
||
|
|
- playwright_artifacts:/opt/letsbe/playwright-artifacts
|
||
|
|
|
||
|
|
security_opt:
|
||
|
|
- seccomp=unconfined
|
||
|
|
|
||
|
|
user: root
|
||
|
|
restart: unless-stopped
|
||
|
|
|
||
|
|
deploy:
|
||
|
|
resources:
|
||
|
|
limits:
|
||
|
|
cpus: '1.5'
|
||
|
|
memory: 1G
|
||
|
|
|
||
|
|
volumes:
|
||
|
|
agent_home:
|
||
|
|
name: letsbe-agent-home
|
||
|
|
playwright_artifacts:
|
||
|
|
name: letsbe-playwright-artifacts
|