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}
3.2 KiB
3.2 KiB
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. 创建部署目录结构
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:
[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,观察:
- Gitea 网页 Actions 页面是否有部署任务在运行
- 部署日志是否正常
- 部署完成后
curl http://127.0.0.1:5177/api/health是否返回{"ok":true,"service":"opc-manager"} 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(一般都有)