Some checks failed
Deploy / deploy (push) Failing after 1s
- .gitea/workflows/deploy.yml:push main 自动触发部署
- requirements.txt:Python 依赖清单
- deploy/opc-manager.service:systemd 服务(gunicorn --preload -w 4)
- deploy/README.md:完整部署指南
- deploy/服务器配置任务提示词.md:给服务器管理 Agent 的操作提示词
- health 接口简化返回 {ok, service}
83 lines
3.2 KiB
Markdown
83 lines
3.2 KiB
Markdown
# OPC-Manager 自动化部署配置任务
|
||
|
||
## 背景
|
||
OPC-Manager 项目(Flask + MySQL,端口 5177)需要配置 Gitea Actions 自动化部署。参考 SalesManager 的模式:push 到 main 分支后自动部署到业务服务器。部署工作流文件已写好(`.gitea/workflows/deploy.yml`),需要在服务器上完成一次性准备。
|
||
|
||
## 服务器信息
|
||
- 业务服务器:82.157.208.197(SSH 别名 `ssh business`)
|
||
- Gitea 地址:https://git.qiukai.me
|
||
- 仓库:qiukai/opc-manager
|
||
- 服务端口:5177
|
||
- MySQL:已安装(8.0.45,系统服务),数据库 `opc`,用户 `opc/opc123456`
|
||
|
||
## 需要完成的 5 个步骤
|
||
|
||
### 1. 安装 Gitea Actions Runner
|
||
在业务服务器上安装 `act_runner` 并注册到 Gitea:
|
||
- 下载地址:https://gitea.com/gitea/act_runner/releases/download/v0.2.11/act_runner-0.2.11-linux-amd64
|
||
- 放到 `/usr/local/bin/act_runner`
|
||
- 注册时 name=`prod-deploy`,labels=`prod-deploy`
|
||
- 注册 token 需要到 Gitea 网页获取:仓库 qiukai/opc-manager → 设置 → Actions → Runners → New runner
|
||
- 安装为 systemd 服务(`/etc/systemd/system/act-runner.service`),开机自启
|
||
|
||
### 2. 创建部署目录结构
|
||
```bash
|
||
mkdir -p /opt/opc-manager/{releases,shared/uploads}
|
||
```
|
||
|
||
### 3. 创建 .env 文件
|
||
在 `/opt/opc-manager/shared/.env` 创建环境变量文件:
|
||
```
|
||
SECRET_KEY=随机生成32位以上字符串
|
||
DB_HOST=127.0.0.1
|
||
DB_PORT=3306
|
||
DB_USER=opc
|
||
DB_PASSWORD=opc123456
|
||
DB_NAME=opc
|
||
FLASK_DEBUG=false
|
||
```
|
||
权限设为 600。
|
||
|
||
### 4. 安装 systemd service
|
||
创建 `/etc/systemd/system/opc-manager.service`:
|
||
```ini
|
||
[Unit]
|
||
Description=OPC Manager (Flask)
|
||
After=network.target mysql.service
|
||
|
||
[Service]
|
||
Type=simple
|
||
WorkingDirectory=/opt/opc-manager/current
|
||
ExecStart=/opt/opc-manager/current/.venv/bin/gunicorn --preload -w 4 -b 0.0.0.0:5177 backend.flask_app:app
|
||
Restart=on-failure
|
||
RestartSec=5
|
||
EnvironmentFile=/opt/opc-manager/current/.env
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|
||
```
|
||
执行 `systemctl daemon-reload && systemctl enable opc-manager`(先不 start,等首次部署后自动启动)。
|
||
|
||
### 5. 配置 Gitea Secret
|
||
在 Gitea 网页操作(需要用户在浏览器完成):
|
||
- 进入仓库 qiukai/opc-manager → 设置 → Actions → Secrets → New Secret
|
||
- Name: `DEPLOY_TOKEN`
|
||
- Value: 用户的 Gitea Personal Access Token(需 repo 读权限)
|
||
- 生成路径:头像 → 设置 → 应用 → 生成令牌
|
||
|
||
## 首次部署验证
|
||
准备完成后,在本地执行一次 `git push origin main`,观察:
|
||
1. Gitea 网页 Actions 页面是否有部署任务在运行
|
||
2. 部署日志是否正常
|
||
3. 部署完成后 `curl http://127.0.0.1:5177/api/health` 是否返回 `{"ok":true,"service":"opc-manager"}`
|
||
4. `systemctl status opc-manager` 是否 active
|
||
|
||
## 参考文件
|
||
项目的部署工作流在仓库的 `.gitea/workflows/deploy.yml`,systemd 模板在 `deploy/opc-manager.service`,完整说明在 `deploy/README.md`。
|
||
|
||
## 注意事项
|
||
- Gitea Runner 的 token 需要用户在浏览器获取后告诉你,你无法自动获取
|
||
- Gitea Secret (DEPLOY_TOKEN) 也需要用户在浏览器配置
|
||
- 如果服务器没有 python3.11+,需要先安装(OPC-Manager 要求 Python 3.9+)
|
||
- 确保服务器已安装 git、rsync、curl(一般都有)
|