Gitea 串接 Act Runner 服務
BUBU 因為最近看了很多人都在用 AI 寫服務跟功能,剛好之前是用另一套 Drone CI/CD 來處理,現在在 Gitea 後期的版本已有內建 CI \ CD 這樣子的服務,只是還是需要另外建一台來執行任務,因此本篇記錄一下該怎麼建置及串接
運行環境
環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式
- 系統環境: Debian 13
安裝過程
安裝 Docker 服務
- 安裝必要套件
sudo apt update && sudo apt install ca-certificates curl
- 新增加
Docker金鑰
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
- 設定來源庫
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
- 安裝
Docker
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
安裝 Runner 服務
- 直接到官方抓取已打包好的檔案 act_runner
wget -O /usr/local/bin/act_runner https://gitea.com/gitea/act_runner/releases/download/v0.3.0/act_runner-0.3.0-linux-amd64
- 設定可執行
chmod +x /usr/local/bin/act_runner
- 版本確認
act_runner --version
- 建立 runner 專用帳號
useradd -m -s /bin/bash gitea-runner
usermod -aG docker gitea-runner
- 建立相關目錄
mkdir -p /etc/act_runner /var/lib/act_runner
- 產生設定檔
act_runner generate-config > /etc/act_runner/config.yaml
- 設定相關權限
chown -R gitea-runner:gitea-runner /etc/act_runner /var/lib/act_runner
chmod 700 /var/lib/act_runner
-
取得 Runner Registration Token(在 Gitea)
- Site Administration → Actions → Runners → Create new Runner(全域 runner)
- Repo Settings → Actions → Runners(repo 專用)
-
回到
Gitea介面去取的Token,請選擇設定(這是全域取的方式),如果是針對repo直接到該專案下的設定上面做取得
- 選擇
Actions
- 展開之後再選擇
Runner
- 在畫面中間右邊有一個
建立 Runner
- 系統會隨機產一組
Token給您之後請複製起來貼到要註冊的 Runner 設定檔
設定 act_runner 服務
- 進到指定目錄會產一份隱藏檔是
.runner
cd /var/lib/act_runner
- 註冊 Runner
cd /var/lib/act_runner
sudo -u gitea-runner act_runner register \
--config /etc/act_runner/config.yaml \
--instance https://你的-gitea-網址 \
--token 你的註冊token \
--name runner-lxc-debian13-01 \
--labels docker,linux,x64
- 執行完之後會出現這樣子的畫面
- 在回到 Gitea 後台就會看到您剛剛所註冊服務
- 註冊成服務
cat >/etc/systemd/system/gitea-act-runner.service <<'EOF'
[Unit]
Description=Gitea Actions Runner
After=network.target docker.service
Requires=docker.service
[Service]
User=gitea-runner
Group=gitea-runner
WorkingDirectory=/var/lib/act_runner
Environment=HOME=/var/lib/act_runner
ExecStart=/usr/local/bin/act_runner daemon --config /etc/act_runner/config.yaml
Restart=always
RestartSec=3
LimitNOFILE=1048576
[Install]
WantedBy=multi-user.target
EOF
- 服務重載
systemctl daemon-reload
- 啟動服務
systemctl enable --now gitea-act-runner
- 服務狀態
systemctl status gitea-act-runner --no-pager
- 服務啟動後在回到
Gitea後台查看狀態會是閒置








