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

48 lines
1.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 文件)
- 数据库文件不会被覆盖,确保数据安全