All checks were successful
Deploy to Server / deploy (push) Successful in 19s
- 创建 deploy.yml 工作流文件,支持自动部署到宿主机 - 使用 runs-on: host 在宿主机上运行 - 自动同步文件、安装依赖并重启 PM2 应用 - 添加部署说明文档
48 lines
1.5 KiB
Markdown
48 lines
1.5 KiB
Markdown
# Gitea Actions 部署配置说明
|
||
|
||
## 前提条件
|
||
|
||
- Gitea Runner 已配置为 `self-hosted` 模式,直接在宿主机上运行
|
||
- 宿主机上已安装 `bun` 和 `pm2`
|
||
- Runner 用户有权限访问 `/home/score-backend` 目录
|
||
|
||
## 工作流说明
|
||
|
||
- **触发条件**:
|
||
- 推送到 `dev` 或 `main` 分支时自动触发
|
||
- 也可以手动触发(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` 应用,工作流会自动创建。你也可以手动配置:
|
||
|
||
```bash
|
||
cd /home/score-backend
|
||
pm2 start main.ts --name media-backend
|
||
pm2 save
|
||
pm2 startup # 设置开机自启
|
||
```
|
||
|
||
## 注意事项
|
||
|
||
- 确保 Runner 用户有写入 `/home/score-backend` 的权限
|
||
- 确保环境变量在服务器上已正确配置(不会覆盖 `.env` 文件)
|
||
- 数据库文件不会被覆盖,确保数据安全
|