# 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(一般都有)