自用 VPS 配置 github action self-hosted runner
这份配置记录聚焦在自用 VPS 上部署 GitHub Actions self-hosted runner,并按“中心安装包 + 项目独立运行目录”的方式管理多个仓库。目录设计把 runner 压缩包统一放在 `/root/github-runners/package/actions-runner.tar.gz`,只需从 GitHub releases 下载一次,后续项目如 `go-react-prod`、`new-api` 都从该位置解压,避免重复下载和混用运行文件。首个项目配置时,需要创建专属目录、解压安装包,并在以 root 用户运行的 VPS 上先设置 `RUNNER_ALLOW_RUNASROOT=1`,再执行 `config.sh` 绑定仓库;如果 GitHub 页面生成的 token 过期,则要重新复制新的 token。运行方式上不建议直接执行 `./run.sh`,而是通过 `./svc.sh install root`、`./svc.sh start` 和 `./svc.sh status` 将 runner 安装为 root 用户下的系统服务,保证后台持续运行。新增仓库时重复建目录、复用压缩包、使用对应仓库 URL 和新 token 配置,再安装并启动服务即可。最后在 GitHub Actions workflow 中指定 `runs-on: self-hosted`,任务就能调度到这台 VPS,适合希望用个人服务器承接构建或部署流程的开发者。
结构说明#
设计如下的结构:
/root/github-runners/ <-- 总目录
├── package/ <-- 仓库:只存放下载的压缩包
│ └── actions-runner.tar.gz
│
├── go-react-prod/ <-- 车间1:你的第一个项目
│ ├── config.sh
│ └── ... (运行服务)
│
└── new-api/ <-- 车间2:你未来的第二个项目
├── config.sh
└── ... (运行服务)
中心包管理#
建立中心
# 1. 创建目录结构
mkdir -p /root/github-runners/package
# 2. 进入仓库目录
cd /root/github-runners/package
# 3. 下载安装包 (这是唯一一次下载)
curl -o actions-runner.tar.gz -L https://github.com/actions/runner/releases/download/v2.330.0/actions-runner-linux-x64-2.330.0.tar.gz
# 4. 确认一下文件在不在
ls -lh actions-runner.tar.gz
项目配置#
建设“一号车间” (go-react-prod)
# 1. 创建项目专属文件夹
mkdir -p /root/github-runners/go-react-prod
# 2. 进入这个文件夹
cd /root/github-runners/go-react-prod
# 3. 解压安装包 (直接从隔壁 package 目录解压,不需要重新下载)
tar xzf /root/github-runners/package/actions-runner.tar.gz
Root,必须加环境变量才能配置。
# 1. 开启 Root 允许模式 (必须!)
export RUNNER_ALLOW_RUNASROOT=1
# 2. 运行配置脚本
# ⚠️ 注意:如果刚才那个 Token 过期了,请去 GitHub 网页重新复制一个新的
./config.sh --url
安装系统服务 (让它永久后台运行)
不要跑 ./run.sh,直接装服务。
# 1. 安装服务 (它是 root 用户,所以是 user=root)
./svc.sh install root
# 2. 启动服务
./svc.sh start
# 3. 检查状态
./svc.sh status
当你下次想加 new-api 项目时,只需要重复第二步和第三步即可
# 1. 建目录
mkdir -p /root/github-runners/new-api && cd /root/github-runners/new-api
# 2. 解压 (复用包)
tar xzf /root/github-runners/package/actions-runner.tar.gz
# 3. 配置 (用新 Token)
export RUNNER_ALLOW_RUNASROOT=1
./config.sh --url https://github.com/jacinli/new-api --token <新TOKEN>
# 4. 启动
./svc.sh install root
./svc.sh start
这样就可以了
runs-on: self-hosted
评论
还没有评论,来发第一个吧