GiteaのAct RunnerをUbuntu上にインストールとサービス化するメモ
GiteaのAct RunnerをUbuntuにインストールするメモ。
Dockerはインストール済みであることを前提とする。
まずはAct Runnerのバイナリをダウンロードして配置する。
wget https://gitea.com/gitea/act_runner/releases/download/v0.2.13/act_runner-0.2.13-linux-amd64
sudo mv act_runner-0.2.13-linux-amd64 /usr/local/bin/act_runner
sudo chmod +x /usr/local/bin/act_runner
ARM上のサーバーでインストールする場合は末尾のamd64をarm64に変更。
バイナリが正しくインストールされたことを確認する。
$ act_runner --version
act_runner version v0.2.13
Act Runner用の専用ユーザーを作成し、Dockerグループに追加する。これによりRunnerがDockerコンテナを操作できるようになる。
sudo useradd -r -m -d /var/lib/act_runner -s /bin/bash act_runner
sudo usermod -aG docker act_runner
Act Runnerの設定ファイルを配置するディレクトリを作成する。
sudo mkdir -p /etc/act_runner
sudo chown -R act_runner:act_runner /etc/act_runner
設定ファイルを自動生成する。このコマンドによりデフォルトの設定内容が作成される。
act_runner generate-config | sudo -u act_runner tee /etc/act_runner/config.yaml
Tip
ARM上のサーバーにインストールする場合は、/etc/act_runner/config.yamlの以下の部分を編集する。ラベル名はGithub Actionsのドキュメントを参照して合わせる。
runner:
# ...
labels:
- "ubuntu-22.04-arm:docker://docker.gitea.com/runner-images:ubuntu-22.04"
- "ubuntu-20.04-arm:docker://docker.gitea.com/runner-images:ubuntu-20.04"
次にGiteaインスタンスにRunnerを登録する。登録にはGiteaの管理画面から取得したトークンが必要となる。(Globalで登録したい場合は、Admin Settingsからトークンを取得すること)
act_runner -c /etc/act_runner/config.yaml register --no-interactive --instance https://gitea.example.com/ --token xxxxxxxxxxxxxxxx
登録が成功すると、以下のような出力が表示される。
INFO Registering runner, arch=amd64, os=linux, version=v0.2.13.
WARN Runner in user-mode.
INFO Runner name is empty, use hostname 'cherry'.
DEBU Successfully pinged the Gitea instance server
INFO Runner registered successfully.
登録処理により作成された.runnerファイルを適切な場所に移動し、権限を設定する。
sudo mv .runner /var/lib/act_runner/
sudo chown act_runner:act_runner /var/lib/act_runner/.runner
systemdサービスファイルを作成して、Act Runnerをサービスとして実行できるように設定する。
cat <<'EOF' | sudo tee /etc/systemd/system/act_runner.service
[Unit]
Description=Gitea Actions runner
Documentation=https://gitea.com/gitea/act_runner
After=docker.service
[Service]
ExecStart=/usr/local/bin/act_runner daemon --config /etc/act_runner/config.yaml
ExecReload=/bin/kill -s HUP $MAINPID
WorkingDirectory=/var/lib/act_runner
TimeoutSec=0
RestartSec=10
Restart=always
User=act_runner
Environment=HOME=/var/lib/act_runner
[Install]
WantedBy=multi-user.target
EOF
systemdの設定をリロードして、Act Runnerサービスを有効化し起動する。
sudo systemctl daemon-reload
sudo systemctl enable act_runner
sudo systemctl start act_runner
サービスが正常に起動したことを確認する。
$ sudo systemctl status act_runner
● act_runner.service - Gitea Actions runner
Loaded: loaded (/etc/systemd/system/act_runner.service; enabled; preset: enabled)
Active: active (running) since Wed 2025-12-17 10:35:31 UTC; 23s ago
Docs: https://gitea.com/gitea/act_runner
Main PID: 1472777 (act_runner)
Tasks: 12 (limit: 76726)
Memory: 7.5M (peak: 8.7M)
CPU: 50ms
CGroup: /system.slice/act_runner.service
└─1472777 /usr/local/bin/act_runner daemon --config /etc/act_runner/config.yaml
Dec 17 10:35:31 cherry systemd[1]: Started act_runner.service - Gitea Actions runner.
Dec 17 10:35:31 cherry act_runner[1472777]: time="2025-12-17T10:35:31Z" level=info msg="Starting runner daemon"
Dec 17 10:35:31 cherry act_runner[1472777]: time="2025-12-17T10:35:31Z" level=info msg="runner: cherry, with version: v0.2.13, with labels: [ubuntu-latest ubuntu-22.04 ubuntu-20.04], declare successfully"
リアルタイムでログを確認したい場合は、journalctlコマンドを使用する。
sudo journalctl -u act_runner -f
Giteaの管理画面でRunnerが登録されていることを確認する。管理者権限でアクセスし、以下のURLを開く。
https://<gitea url>/-/admin/actions/runners

登録されたRunnerが「Idle」状態で表示されていれば、正常に動作している。
GiteaのAct RunnerをUbuntuにインストールして、systemdサービスとして実行できるように設定した。これによりGitea ActionsのワークフローがこのRunner上で実行されるようになる。
ワークフローの作成方法については、以下のドキュメントを参照。