services: claude-hook: build: . container_name: claude-hook restart: unless-stopped # No ports/domains published: this service is only reachable from other # containers on the shared network below (i.e. Gitea calls it directly # by container name). Nothing on the public internet can reach it. environment: # ${VAR} interpolation (rather than a bare "- VAR" passthrough) is what # makes Coolify treat every one of these as a normal, editable env var # in its UI. A bare "- VAR" line makes Coolify auto-manage it instead, # which is why GITEA_URL etc. showed up locked. - GITEA_URL=${GITEA_URL} # e.g. http://:3000 - GITEA_TOKEN=${GITEA_TOKEN} # access token for the "claude" Gitea user - CLAUDE_CODE_OAUTH_TOKEN=${CLAUDE_CODE_OAUTH_TOKEN} - OWNER_LOGIN=${OWNER_LOGIN} # e.g. selimaj-dev — only this user's comments trigger a run - WEBHOOK_SECRET=${WEBHOOK_SECRET:-} - CLAUDE_MODEL=${CLAUDE_MODEL:-sonnet} - CLAUDE_MAX_TURNS=${CLAUDE_MAX_TURNS:-25} - JOB_TIMEOUT_MS=${JOB_TIMEOUT_MS:-1200000} - LOG_LEVEL=${LOG_LEVEL:-info} - PORT=${PORT:-3000}