Files
ethan.chen 9bcfbe0113
All checks were successful
Deploy to Server / deploy (push) Successful in 19s
添加 Gitea Actions 部署工作流
- 创建 deploy.yml 工作流文件,支持自动部署到宿主机
- 使用 runs-on: host 在宿主机上运行
- 自动同步文件、安装依赖并重启 PM2 应用
- 添加部署说明文档
2026-01-09 10:28:03 +08:00
..
2026-01-09 10:28:03 +08:00

Gitea Actions 部署配置说明

前提条件

  • Gitea Runner 已配置为 self-hosted 模式,直接在宿主机上运行
  • 宿主机上已安装 bunpm2
  • Runner 用户有权限访问 /home/score-backend 目录

工作流说明

  • 触发条件:

    • 推送到 devmain 分支时自动触发
    • 也可以手动触发workflow_dispatch
  • 部署步骤:

    1. 检出代码到 runner 工作目录
    2. 使用 rsync 同步文件到 /home/score-backend(排除不需要的文件)
    3. 在目标目录执行 bun install 安装依赖
    4. 使用 pm2 restart media-backend 重启应用(如果应用不存在则启动)

文件排除规则

以下文件/目录不会被同步到服务器:

  • .git - Git 仓库文件
  • node_modules - 依赖包(会在服务器上重新安装)
  • .DS_Store - macOS 系统文件
  • *.db - 数据库文件
  • bun.lockb - Bun 锁文件
  • .env / .env.local - 环境变量文件(保留服务器上的配置)
  • .gitea - Gitea 工作流文件

PM2 配置

如果 PM2 中还没有 media-backend 应用,工作流会自动创建。你也可以手动配置:

cd /home/score-backend
pm2 start main.ts --name media-backend
pm2 save
pm2 startup  # 设置开机自启

注意事项

  • 确保 Runner 用户有写入 /home/score-backend 的权限
  • 确保环境变量在服务器上已正确配置(不会覆盖 .env 文件)
  • 数据库文件不会被覆盖,确保数据安全