# https://docs.gitea.com/usage/actions/act-runner ## Binary Runner (for host/native workloads) ### Create dedicated user `sudo useradd -r -s /usr/sbin/nologin -m -c "Gitea Actions Runner" act_runner_native` ### Download latest version (0.2.12) ``` VERSION=0.2.12 sudo curl -sSLo /usr/local/bin/act_runner_native \ https://dl.gitea.com/act_runner/${VERSION}/act_runner-${VERSION}-linux-amd64 sudo chmod +x /usr/local/bin/act_runner_native ``` ### Create directories ``` sudo mkdir -p /etc/act_runner_native sudo mkdir -p /var/lib/act_runner_native ``` ### Generate & edit config `/usr/local/bin/act_runner_native generate-config | sudo tee /etc/act_runner_native/config.yaml` ``` runner: file: .runner capacity: 1 labels: - "native:host" - "linux-host:host" - "self-hosted:host" ``` The :host suffix tells the runner to execute jobs directly on the host instead of in Docker containers. ### Register the runner ``` cd /var/lib/act_runner_native sudo -u act_runner_native /usr/local/bin/act_runner_native \ --config /etc/act_runner_native/config.yaml \ register \ --no-interactive \ --instance https://your-gitea.example.com \ --token YOUR_REGISTRATION_TOKEN \ --name native-runner sudo chown -R act_runner_native:act_runner_native /var/lib/act_runner_native sudo chown -R act_runner_native:act_runner_native /etc/act_runner_native ``` ### Create systemd service `/etc/systemd/system/act_runner_native.service` ``` [Unit] Description=Gitea Actions Runner (Native/Host) Documentation=https://gitea.com/gitea/act_runner After=network.target [Service] ExecStart=/usr/local/bin/act_runner_native daemon --config /etc/act_runner_native/config.yaml ExecReload=/bin/kill -s HUP $MAINPID WorkingDirectory=/var/lib/act_runner_native TimeoutSec=0 RestartSec=10 Restart=always User=act_runner_native [Install] WantedBy=multi-user.target ``` ``` sudo systemctl daemon-reload sudo systemctl enable --now act_runner_native ``` ## Docker Runner WIP