477 字
2 分钟
博客部署服务器 (2)
实践
/
Deploy Tip备案后,网站即刻开始搭建
让我意外的是,备案期间耽误的时间,备案之后阿里云会赠送对应时长,很不错了
一、GitHub CI/CD 自动化部署
1. 在项目根目录创建 .github/workflows/deploy.yml
内容是:
1name: Deploy2
3on:4 push:5 branches: [main]6
7jobs:8 build-and-deploy:9 runs-on: ubuntu-latest10 steps:11 - uses: actions/checkout@v412
13 - uses: pnpm/action-setup@v214 with:15 version: 816
17 - name: Install & Build18 run: |19 pnpm install20 pnpm run build21
22 - name: Deploy via rsync23 uses: burnett01/rsync-deployments@6.0.024 with:25 switches: -avz --delete26 path: dist/27 remote_path: /var/www/blog/28 remote_host: ${{ secrets.SERVER_HOST }}29 remote_user: jiy30 remote_port: 222231 remote_key: ${{ secrets.SSH_PRIVATE_KEY }}当你 push 到 main 分支时,GitHub 会自动:
-
拉取你的代码
-
安装 Node.js 20 和 pnpm 8
-
执行
pnpm install和pnpm run build→ 生成静态文件在dist/ -
用
rsync把dist/里的所有内容同步到服务器的/var/www/blog/目录
所以你要确保:
-
代码仓库用 pnpm 管理(有
pnpm-lock.yaml) -
服务器上有一个可以 SSH 免密登陆的用户(如
jiy) -
该用户对
/var/www/blog/有写权限
2. GitHub 仓库配置 Secrets
- 进入本项目的 GitHub 仓库 → Settings → Secrets and variables → Actions
- 点击 New repository secret,添加以下两个:
| Secret 名称 | 值 |
|---|---|
SERVER_HOST | 你的服务器公网 IP 或域名(如 123.45.67.89) |
SSH_PRIVATE_KEY | 你本地私钥的完整内容(~/.ssh/id_ed25519) |
私钥格式注意:打开 id_ed25519 文件,复制所有内容,包括开头的 -----BEGIN OPENSSH PRIVATE KEY----- 和结尾的 -----END OPENSSH PRIVATE KEY-----,原样粘贴
3. 推送代码触发部署
-
确保你的博客代码已经推送到 GitHub 仓库的
main分支(包括.github/workflows/deploy.yml)。 -
推送后,GitHub 会自动开始运行这个工作流。
-
你可以在仓库的 Actions 标签页查看运行状态和日志。
如果一切顺利,构建完成后 rsync 会把 dist/ 内容同步到服务器的 /var/www/blog/ 目录
4. 验证服务器上的文件
1ls -la /var/www/blog/应该能看到 index.html、assets/ 等静态文件
先直接用 Python 临时服务器测试:
1cd /var/www/blog2python3 -m http.server 8080访问 http://服务器IP:8080 就能看到博客
编辑于 2026-08-22
部分信息可能已经过时