unraid-mcp/docker-compose.yaml
Jacob Magar c9b1dc5026 fix(hooks): align sync-env/ensure-ignore-files with plugin spec (cw1.1, ova)
- sync-env.sh: replace sed with awk for safe value replacement, add flock
  on /tmp/unraid-sync-env.lock, remove auto-token-generation (fail with
  clear error if UNRAID_MCP_BEARER_TOKEN not set)
- ensure-ignore-files.sh: rename from ensure-gitignore.sh, add --check mode
  that exits non-zero without modifying file (for CI/pre-commit use)
- hooks.json: update both references to new ensure-ignore-files.sh name
- docker-compose.yaml: add user PUID/PGID, external network, deploy.resources
  limits (1024M/1cpu), wget healthcheck, start_period=30s
- Dockerfile: install wget, use wget healthcheck, start_period=30s,
  add entrypoint.sh, ENTRYPOINT points to /entrypoint.sh
- entrypoint.sh: env validation (UNRAID_API_URL, UNRAID_API_KEY,
  UNRAID_MCP_BEARER_TOKEN) with exec for signal forwarding
- .env.example: add PUID, PGID, DOCKER_NETWORK, UNRAID_MCP_ALLOW_DESTRUCTIVE,
  UNRAID_MCP_ALLOW_YOLO; fix UNRAID_MCP_BEARER_TOKEN key name
2026-03-31 17:58:48 -04:00

38 lines
901 B
YAML

services:
unraid-mcp:
build: .
container_name: unraid-mcp
restart: unless-stopped
user: "${PUID:-1000}:${PGID:-1000}"
ports:
- "${UNRAID_MCP_PORT:-6970}:${UNRAID_MCP_PORT:-6970}"
env_file:
- .env
volumes:
- ./logs:/app/logs
- ./backups:/app/backups
- unraid-mcp-credentials:/home/mcp/.unraid-mcp
networks:
- default
- ${DOCKER_NETWORK:-unraid-mcp-external}
deploy:
resources:
limits:
memory: 1024M
cpus: "1.0"
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider",
"http://localhost:${UNRAID_MCP_PORT:-6970}/health"]
interval: 30s
timeout: 5s
start_period: 30s
retries: 3
volumes:
unraid-mcp-credentials:
networks:
default: {}
unraid-mcp-external:
external: true
name: ${DOCKER_NETWORK:-unraid-mcp-external}