EQVPS

如何在 VPS 上搭建自托管 GitHub Actions runner

在 VPS 上注册一个自托管 GitHub Actions runner 并将其安装为服务:以非 root 用户下载 runner,用仓库令牌注册,运行 svc.sh 使其在重启后存活。复制粘贴命令。

自托管 runner 给你固定成本的 CI 和热缓存——没有按分钟计费,用你的工具链、你的机器。这是最简搭建指南;关于为什么自托管胜过 GitHub 托管分钟数以及 Docker 任务细节,请看完整指南面向 GitHub Actions 的 VPS 用例

1. 创建一个非 root 用户(runner 拒绝 root)

adduser --disabled-password --gecos "" runner
su - runner

2. 下载 runner

在 GitHub:Settings → Actions → Runners → New self-hosted runner → Linux,它会给你确切的下载和一次性令牌。然后:

mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64.tar.gz -L \
  https://github.com/actions/runner/releases/latest/download/actions-runner-linux-x64.tar.gz
tar xzf actions-runner-linux-x64.tar.gz

3. 用你的仓库注册它

./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN

4. 安装为服务(在重启后存活)

不要在终端里运行 ./run.sh——把它安装成服务:

sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status

runner 现在在 GitHub 界面显示为 Idle,并会接取以它为目标的任务。

5. 在 workflow 中使用它

jobs:
  build:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - run: make build && make test

Docker 任务(可选)

安装一次 Docker,workflow 就能构建镜像,且层缓存在多次运行之间保留:

sudo apt install -y docker.io
sudo usermod -aG docker runner

在 VPS 上安装 Docker。规格:**Small(每月 $8)**对大多数 CI 都很舒适;重度编译请升级。大约一分钟拿到 root,无 KYC,用加密货币付款。

常见问题

如何注册一个自托管 GitHub Actions runner?

在你的仓库(或组织):Settings → Actions → Runners → New self-hosted runner → Linux。GitHub 会显示一条下载命令和一个一次性注册令牌。以非 root 用户下载 runner,用该 URL 和令牌运行 ./config.sh,然后用 svc.sh 将其安装为服务。步骤在下方。

为什么 runner 不能以 root 运行?

runner 按设计拒绝以 root 运行。创建一个专用的非 root 用户(adduser runner)并在那里配置。这还能限制恶意 workflow 在你机器上能触及的范围。

重启后如何让 runner 保持运行?

使用自带的 svc.sh 助手:sudo ./svc.sh install runner && sudo ./svc.sh start。它会安装一个 systemd 单元,让 runner 开机启动、失败后重启,并在 GitHub 界面显示为 Idle。

runner 需要专用 IP 吗?

不需要。runner 通过 HTTPS 向外拨号连接 GitHub;无需任何入站连接到达它。NAT 套餐(每月 3 美元起)即可。只有当你同时自托管对外提供流量的服务时,才需要专用 IP。

你们要身份证件或银行卡吗?

不要。注册用邮箱,用 USDC 或 USDT 付款——无文件、无卡。大约一分钟拿到 root。

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。