---
title: GiteaのAct RunnerをUbuntu上にインストールとサービス化するメモ
summary: この記事では、UbuntuにGitea Act Runnerをインストールし、systemdサービスとして設定する手順を紹介します。
tags: ["Gitea", "Gitea Actions", "Act Runner", "Ubuntu", "Systemd"]
categories: ["Dev", "CI", "Gitea", "ActRunner"]
date: 2025-12-17T12:40:44Z
updated: 2026-02-25T02:12:14.312Z
---

[Gitea](https://about.gitea.com/)の[Act Runner](https://docs.gitea.com/usage/actions/act-runner)をUbuntuにインストールするメモ。

Dockerはインストール済みであることを前提とする。

まずはAct Runnerのバイナリをダウンロードして配置する。

```bash
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`に変更。

バイナリが正しくインストールされたことを確認する。

```bash
$ act_runner --version
act_runner version v0.2.13
```

Act Runner用の専用ユーザーを作成し、Dockerグループに追加する。これによりRunnerがDockerコンテナを操作できるようになる。

```bash
sudo useradd -r -m -d /var/lib/act_runner -s /bin/bash act_runner
sudo usermod -aG docker act_runner
```

Act Runnerの設定ファイルを配置するディレクトリを作成する。

```bash
sudo mkdir -p /etc/act_runner
sudo chown -R act_runner:act_runner /etc/act_runner
```

設定ファイルを自動生成する。このコマンドによりデフォルトの設定内容が作成される。

```bash
act_runner generate-config | sudo -u act_runner tee /etc/act_runner/config.yaml
```

> [!TIP]
> ARM上のサーバーにインストールする場合は、`/etc/act_runner/config.yaml`の以下の部分を編集する。ラベル名は[Github Actionsのドキュメント](https://docs.github.com/ja/actions/reference/runners/github-hosted-runners#standard-github-hosted-runners-for-public-repositories)を参照して合わせる。
> ```yaml
> 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からトークンを取得すること）

```bash
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`ファイルを適切な場所に移動し、権限を設定する。

```bash
sudo mv .runner /var/lib/act_runner/
sudo chown act_runner:act_runner /var/lib/act_runner/.runner
```

systemdサービスファイルを作成して、Act Runnerをサービスとして実行できるように設定する。

```bash
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サービスを有効化し起動する。

```bash
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コマンドを使用する。

```bash
sudo journalctl -u act_runner -f
```

Giteaの管理画面でRunnerが登録されていることを確認する。管理者権限でアクセスし、以下のURLを開く。

`https://<gitea url>/-/admin/actions/runners`

![image](https://s3.ik.am/ikam/_/1769080393190_pasted-image.png)

登録されたRunnerが「Idle」状態で表示されていれば、正常に動作している。

---

GiteaのAct RunnerをUbuntuにインストールして、systemdサービスとして実行できるように設定した。これによりGitea ActionsのワークフローがこのRunner上で実行されるようになる。

ワークフローの作成方法については、以下のドキュメントを参照。

https://docs.gitea.com/usage/actions/quickstart/
