Linux

Where Does the Gitea ACT Runner Store Config?

The ACT runner keeps config.yaml plus a .runner registration file in its working dir. Docker persists both through a /data mount.

Last updated

The Gitea ACT runner configures through config.yaml (capacity, labels, container options), generated with generate-config. Registration writes a .runner file beside it holding the instance URL and credentials. Both live in the working directory: /var/lib/act_runner for systemd installs (/etc/act_runner/config.yaml is the common config path), or a /data volume in Docker.

Newer runners also accept full configuration through environment-free YAML only; the old GITEA_* variable overrides are gone, so the file is authoritative. Back up both files together. Labels set in YAML win over CLI flags at register time, which surprises people who change flags without updating the file.

Where Gitea ACT Runner stores this, by platform

Linux
/data + config.yaml (runner dir)

config.yaml plus the .runner registration file. Systemd uses /etc/act_runner/config.yaml with WorkingDirectory /var/lib/act_runner. Docker maps both through /data plus a config mount. CONFIG_FILE env points Docker at the YAML.

Frequently asked questions

how do i migrate a gitea runner to a new machine

Copy config.yaml and the .runner file to the new host (or mount the same /data volume). Never hand edit .runner; it stores registration credentials. If it corrupts, delete it and register again with a fresh token.

why does my docker runner re-register on every restart

The /data mount is missing or the .runner file never persisted. Registration tokens are single-use: without the saved .runner file the runner re-registers with a dead token on every restart. Mount /data persistently and register once.

Notice an outdated path? Let us know.