Files
opc-manager/deploy/服务器配置任务提示词.md
mac 25da1453be
Some checks failed
Deploy / deploy (push) Failing after 1s
新增自动化部署:Gitea Actions + systemd + gunicorn
- .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}
2026-06-23 19:33:16 +08:00

83 lines
3.2 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.
# OPC-Manager 自动化部署配置任务
## 背景
OPC-Manager 项目Flask + MySQL端口 5177需要配置 Gitea Actions 自动化部署。参考 SalesManager 的模式push 到 main 分支后自动部署到业务服务器。部署工作流文件已写好(`.gitea/workflows/deploy.yml`),需要在服务器上完成一次性准备。
## 服务器信息
- 业务服务器82.157.208.197SSH 别名 `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一般都有