2
0
Files
snippets/github-runner-deploy.md
2025-12-27 00:44:29 +00:00

1.9 KiB

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