# Gitea instance the runner polls. GITEA_INSTANCE_URL=https://gitea.phasefinal.com # Runner identity. NAME shows in the runner list in gitea admin; # LABELS is what `runs-on:` in workflow YAML matches against. # # `pfi-fleet` is the cross-host label used by all PFI runners — keep # it on every runner. The host-specific label (ana-docker, nh3-docker, # esh-docker-vm) lets a workflow pin to a particular site if it has to # (e.g. needs LAN access to a host only reachable from there). # # Each label MUST carry a `:docker://` schema. Without it, # act_runner v0.6+ falls back to "host" mode — jobs would execute # inside the runner container itself (Alpine, no apt/python/node) # instead of in a spawned job container, breaking any workflow that # expects a normal Linux userspace. # # `node:20-bookworm-slim` is a sane default: small (~150 MB), has git # + node (so `actions/checkout@v4` and other JS-based actions work), # debian-based so `apt-get install` works. Workflows can still override # with their own job-level `container: image:` if they need something # different. GITEA_RUNNER_NAME=ana-docker-runner GITEA_RUNNER_LABELS=pfi-fleet:docker://node:20-bookworm-slim,ana-docker:docker://node:20-bookworm-slim # One-time registration token. Generate at: # https://gitea.phasefinal.com/-/admin/actions/runners (org/global) # or: # https://gitea.phasefinal.com///settings/actions/runners (repo) # # Used only on first start; afterwards the runner caches a permanent # token at ${DATA_DIR}/.runner. Safe to clear after the runner shows # up in the gitea admin runner list. GITEA_RUNNER_REGISTRATION_TOKEN= # Persistence (.runner credentials, build cache, working dirs). DATA_DIR=/opt/docker/conf/gitea-runner/data # Pin to a tagged release in production; :latest is fine for # bootstrapping. Check https://gitea.com/gitea/act_runner/releases # for the current stable. RUNNER_IMAGE=gitea/act_runner:latest