LOADING
477 字
2 分钟
博客部署服务器 (2)
2026-08-22
实践
Deploy
Tip

备案后,网站即刻开始搭建

让我意外的是,备案期间耽误的时间,备案之后阿里云会赠送对应时长,很不错了


一、GitHub CI/CD 自动化部署

1. 在项目根目录创建 .github/workflows/deploy.yml

内容是:

.github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 8
- name: Install & Build
run: |
pnpm install
pnpm run build
- name: Deploy via rsync
uses: burnett01/rsync-deployments@6.0.0
with:
switches: -avz --delete
path: dist/
remote_path: /var/www/blog/
remote_host: ${{ secrets.SERVER_HOST }}
remote_user: jiy
remote_port: 2222
remote_key: ${{ secrets.SSH_PRIVATE_KEY }}

当你 push 到 main 分支时,GitHub 会自动:

  1. 拉取你的代码

  2. 安装 Node.js 20 和 pnpm 8

  3. 执行 pnpm install 和 pnpm run build → 生成静态文件在 dist/

  4. 用 rsync 把 dist/ 里的所有内容同步到服务器的 /var/www/blog/ 目录

所以你要确保:

  • 代码仓库用 pnpm 管理(有 pnpm-lock.yaml)

  • 服务器上有一个可以 SSH 免密登陆的用户(如 jiy)

  • 该用户对 /var/www/blog/ 有写权限

2. GitHub 仓库配置 Secrets

  1. 进入本项目的 GitHub 仓库 → Settings → Secrets and variables → Actions
  2. 点击 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. 推送代码触发部署

  1. 确保你的博客代码已经推送到 GitHub 仓库的 main 分支(包括 .github/workflows/deploy.yml)。

  2. 推送后,GitHub 会自动开始运行这个工作流。

  3. 你可以在仓库的 Actions 标签页查看运行状态和日志。

如果一切顺利,构建完成后 rsync 会把 dist/ 内容同步到服务器的 /var/www/blog/ 目录

4. 验证服务器上的文件

ls -la /var/www/blog/

应该能看到 index.html、assets/ 等静态文件 先直接用 Python 临时服务器测试:

Terminal window
cd /var/www/blog
python3 -m http.server 8080

访问 http://服务器IP:8080 就能看到博客

博客部署服务器 (2)
/projects/website/server/website-deploy-2/
作者
J.
发布于
2026-08-22
许可协议
CC BY-NC-SA 4.0
编辑于 2026-08-22

部分信息可能已经过时

Profile Image of the Author
J.
我是Jiy,热爱生活的学生一只~
公告
欢迎来到我的博客!
目录
行
器
律
目录