From c884c1e6d78336f801bc5f65a6fc735eb68f4e2d Mon Sep 17 00:00:00 2001 From: Pipeline Agent Date: Fri, 21 Aug 2026 00:08:20 +0800 Subject: [PATCH] =?UTF-8?q?develop:=20T02b=20=E9=83=A8=E7=BD=B2=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BF=AE=E6=AD=A3=E2=80=94=E2=80=94=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=AB=AF=E5=8F=A39182=E2=86=929280=EF=BC=88=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=EF=BC=89=E3=80=82conf/config.json(server.por?= =?UTF-8?q?t/databases.hrs=E6=B5=8B=E8=AF=95=E5=BA=93test/test123/Redis?= =?UTF-8?q?=E4=BC=9A=E8=AF=9D=E7=A1=AE=E8=AE=A4)=EF=BC=9Bdeploy/hr-web.ser?= =?UTF-8?q?vice=E7=AB=AF=E5=8F=A3=E5=90=8C=E6=AD=A5=EF=BC=9Bdeploy/nginx-h?= =?UTF-8?q?rstest.conf=E5=8F=8D=E4=BB=A3=E6=A0=B7=E4=BE=8B(=E2=86=92127.0.?= =?UTF-8?q?0.1:9280,=E9=A2=84=E7=95=99certbot)=EF=BC=9Barchitecture.md=20?= =?UTF-8?q?=C2=A77=E8=A1=A5=E8=AE=B0+deploy-change-record-T02b.md=EF=BC=9B?= =?UTF-8?q?dev-notes-T02b.md=E3=80=82=E5=85=B6=E4=BD=99=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=9F=BA=E7=BA=BF=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- conf/config.json | 48 +++++++++++++++++++++ deploy/hr-web.service | 22 ++++++++++ deploy/nginx-hrstest.conf | 36 ++++++++++++++++ docs/01-design/architecture.md | 4 ++ docs/01-design/deploy-change-record-T02b.md | 25 +++++++++++ docs/02-develop/dev-notes-T02b.md | 22 ++++++++++ 6 files changed, 157 insertions(+) create mode 100644 conf/config.json create mode 100644 deploy/hr-web.service create mode 100644 deploy/nginx-hrstest.conf create mode 100644 docs/01-design/deploy-change-record-T02b.md create mode 100644 docs/02-develop/dev-notes-T02b.md diff --git a/conf/config.json b/conf/config.json new file mode 100644 index 0000000..68e7ef2 --- /dev/null +++ b/conf/config.json @@ -0,0 +1,48 @@ +{ + "_comment": "hr-web 运行配置(测试环境)。T02b 变更:服务端口 9182→9280(客户确认,见 docs/部署环境需求.md);databases.hrs 按测试环境本机 MariaDB;Redis 会话配置确认沿用。", + "server": { + "host": "0.0.0.0", + "port": 9280, + "name": "hr-web" + }, + "processors": { + ".tmpl": "bricks.processor.tmpl", + ".ui": "bricks.processor.ui", + ".dspy": "ahserver.processor.dspy" + }, + "databases": { + "hrs": { + "type": "mysql", + "host": "127.0.0.1", + "port": 3306, + "database": "hrs", + "user": "test", + "password": "test123", + "charset": "utf8mb4", + "pool_size": 10, + "pool_recycle": 3600, + "_comment": "测试环境 MariaDB 本机监听;V001__init_hrs.sql(49表)已在测试库执行" + } + }, + "redis": { + "host": "127.0.0.1", + "port": 6379, + "db": 0, + "session": { + "enabled": true, + "session_max_time": 28800, + "session_issue_time": 86400, + "prefix": "hrweb:sess:" + }, + "_comment": "Redis 会话:session_max_time=8h 会话有效期,session_issue_time=24h 签发有效期,与基线口径一致" + }, + "log": { + "level": "INFO", + "file": "logs/hr-web.log", + "max_size_mb": 50, + "backup_count": 10 + }, + "static": { + "path": "static" + } +} diff --git a/deploy/hr-web.service b/deploy/hr-web.service new file mode 100644 index 0000000..e3968f3 --- /dev/null +++ b/deploy/hr-web.service @@ -0,0 +1,22 @@ +# hr-web systemd unit(测试环境 hrstest.opencomputing.cn) +# T02b 变更:服务端口 9182→9280(客户确认,见 docs/部署环境需求.md 与 docs/01-design/architecture.md §7) +# 安装:sudo cp hr-web.service /etc/systemd/system/ && sudo systemctl daemon-reload && sudo systemctl enable --now hr-web +[Unit] +Description=hr-web 人事系统 Web 服务 (ahserver, port 9280) +After=network.target mariadb.service redis.service +Wants=mariadb.service redis.service + +[Service] +Type=simple +User=hrstest +Group=hrstest +WorkingDirectory=/opt/hrs +Environment=PYTHONUNBUFFERED=1 +ExecStart=/opt/hrs/venv/bin/python -m ahserver --config /opt/hrs/conf/config.json +Restart=always +RestartSec=5 +# 端口 9280 探活(监控基线项) +ExecStartPost=/bin/sh -c 'sleep 2 && ss -ltn | grep -q ":9280 "' + +[Install] +WantedBy=multi-user.target diff --git a/deploy/nginx-hrstest.conf b/deploy/nginx-hrstest.conf new file mode 100644 index 0000000..ddee880 --- /dev/null +++ b/deploy/nginx-hrstest.conf @@ -0,0 +1,36 @@ +# Nginx 反代配置样例 —— 测试环境 hrstest.opencomputing.cn +# T02b:反代后端已由 127.0.0.1:9182 修正为 127.0.0.1:9280(客户确认端口变更) +# 部署位置:/etc/nginx/conf.d/hrstest.conf(实际远程部署留待部署任务执行) +# HTTPS:预留 certbot --nginx 自动改写(执行后 certbot 会新增 listen 443 ssl 块、 +# 注入 ssl_certificate/ssl_certificate_key,并在 80 块加 301 跳转,勿手工预写证书路径) + +server { + listen 80; + listen [::]:80; + server_name hrstest.opencomputing.cn; + + # 上传/附件体积上限(合同附件、花名册导入等场景预留) + client_max_body_size 50m; + + # 访问/错误日志 + access_log /var/log/nginx/hrstest.access.log; + error_log /var/log/nginx/hrstest.error.log; + + location / { + proxy_pass http://127.0.0.1:9280; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + # WebSocket / 长连接预留(消息通道、审批待办推送) + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_read_timeout 300s; + } +} + +# ── certbot 操作备忘(部署任务执行时)──────────────────────────── +# sudo certbot --nginx -d hrstest.opencomputing.cn +# certbot 会自动改写本文件为 443/ssl 配置并配置 80→443 跳转 +# MariaDB(3306)/Redis(6379) 仅本机/内网监听,不经 Nginx 暴露 diff --git a/docs/01-design/architecture.md b/docs/01-design/architecture.md index a2c26ec..1b7c432 100644 --- a/docs/01-design/architecture.md +++ b/docs/01-design/architecture.md @@ -292,3 +292,7 @@ staff-mgr 是 v1 Java 口径下的员工 CRUD 模块(已通过端到端验证 | ui-design.md | v3.0 | 页面结构、组件树、路由表、核心交互流程、降级项交互说明 | | iteration1-task-breakdown.md | v2.0 | 可行性分析、风险、开发任务拆解(T01~T27,面向 develop 角色可直接建任务) | | feature-list.md | v2.1 | F01~F17 功能清单与 FEAT-B1 映射(批次1范围基线) | + +## §7 部署章节补记(T02b 端口变更) + +> **变更记录(批次1-T02b)**:应用服务端口由设计基线 **9182** 修正为 **9280**(客户确认,确认时间 2025-08,补记日期 2026-08)。同步修改:conf/config.json(server.port)、deploy/hr-web.service(systemd unit)、deploy/nginx-hrstest.conf(反代 upstream 127.0.0.1:9280,server_name hrstest.opencomputing.cn,预留 certbot --nginx)。其余设计基线(架构分层、49 表、113 端点、32 路由、27 任务、90 验收项)不变。详见 `docs/01-design/deploy-change-record-T02b.md`。 diff --git a/docs/01-design/deploy-change-record-T02b.md b/docs/01-design/deploy-change-record-T02b.md new file mode 100644 index 0000000..2f69393 --- /dev/null +++ b/docs/01-design/deploy-change-record-T02b.md @@ -0,0 +1,25 @@ +# 部署设计变更记录(architecture.md §7 部署章节补记) + +> 任务:批次1-T02b 脚手架部署参数修正。本文件为 architecture.md §7 部署章节的补充记录, +> 按"不改其余设计基线"约束以补记形式归档;architecture.md §7 引用本记录。 + +## 变更项:应用服务端口 9182 → 9280 + +| 项 | 变更前(设计基线) | 变更后(客户确认) | +|---|---|---| +| ahserver/hr-web 服务端口 | 9182 | **9280** | +| Nginx 反代 upstream | 127.0.0.1:9182 | 127.0.0.1:9280 | +| systemd unit 说明/探活端口 | 9182 | 9280 | +| 监控探活端口 | 9182 | 9280 | + +- **变更原因**:客户最新部署参数与既有脚手架基线不一致,客户确认测试环境服务端口使用 9280(见 `docs/部署环境需求.md`,客户 2025-08 会话确认)。 +- **变更日期**:客户确认于 2025-08;本任务(T02b)落实配置与文档修正,记录日期 2026-08。 +- **影响范围**:仅部署参数(端口),**不改变**架构分层、49 表数据设计、113 端点/32 路由/27 任务等设计基线。 +- **同步修改清单**: + 1. `conf/config.json` → `server.port = 9280`;`databases.hrs` 按测试环境配置(host 127.0.0.1 本机 MariaDB,库 hrs,用户 test/test123);Redis 会话配置(session_max_time/session_issue_time)确认沿用基线口径。 + 2. `deploy/hr-web.service` → systemd unit 描述与端口探活同步为 9280。 + 3. `deploy/nginx-hrstest.conf` → 反代样例 server_name hrstest.opencomputing.cn → 127.0.0.1:9280,预留 certbot --nginx 自动改写 HTTPS。 +- **apps/hr-web.md 口径说明**:该应用文档 §3/§4 端口清单中 9182 为任务下达时口径,客户确认版以本记录(9280)为准,后续文档修订时同步更新。 + +## 不变项(设计基线冻结声明) +架构分层、模块划分、数据设计(49 表/V001__init_hrs.sql)、API 设计(113 端点)、路由(32)、任务(27)、验收项(90)等均不变。 diff --git a/docs/02-develop/dev-notes-T02b.md b/docs/02-develop/dev-notes-T02b.md new file mode 100644 index 0000000..aa06fbb --- /dev/null +++ b/docs/02-develop/dev-notes-T02b.md @@ -0,0 +1,22 @@ +# 开发记录 T02b:脚手架部署参数修正(端口 9280) + +> 迭代:人事系统-初始迭代|批次1-T02b|角色:agent.develop +> 前置:T01/T02 已完成(49 表 models JSON + hr-web 脚手架 + V001__init_hrs.sql 已在测试库执行) + +## 1. 变更内容 +| 文件 | 变更 | +|---|---| +| `conf/config.json` | 新增/修正:`server.port` 9182→**9280**;`databases.hrs` 按测试环境(127.0.0.1:3306 本机 MariaDB,库 hrs,用户 test/test123,utf8mb4,pool 10);Redis 会话配置确认(enabled,session_max_time=28800/session_issue_time=86400,沿用基线口径);processors .tmpl/.ui/.dspy 保留 | +| `deploy/hr-web.service` | systemd unit:描述与启动后端口探活同步为 9280;User=hrstest,WorkingDirectory=/opt/hrs,依赖 mariadb/redis,Restart=always | +| `deploy/nginx-hrstest.conf` | 反代样例:server_name hrstest.opencomputing.cn → proxy_pass 127.0.0.1:9280;含 WebSocket 头、client_max_body_size 50m、certbot --nginx 自动改写备忘(勿手工预写证书路径) | +| `docs/01-design/architecture.md` | §7 部署章节追加补记段落:端口 9182→9280(客户确认 2025-08,补记 2026-08),声明其余设计基线不变 | +| `docs/01-design/deploy-change-record-T02b.md` | 新增变更记录全文(变更前后对照、影响范围、同步修改清单、基线冻结声明) | + +## 2. 验证记录 +- `conf/config.json` JSON 语法校验通过(python json.load OK),`server.port=9280`。 +- systemd unit 与 nginx 样例中端口引用全量核对为 9280,无 9182 残留。 +- 登录走通验证(admin + 组织专员/薪酬专员/招聘专员/部门主管四角色):依赖测试环境 MariaDB/Redis 与 rbac 权限初始化数据,属部署任务(webapp-remote-deploy)远程执行项;本任务交付物已满足 9280 启动所需全部配置(venv/ahserver --config conf/config.json),远程冒烟留待部署任务出截图/日志。 + +## 3. 遗留/移交 +- 远程部署(SSH hrstest.opencomputing.cn,/opt/hrs,certbot 证书)→ 移交部署任务。 +- apps/hr-web.md §3/§4 端口清单中 9182 口径,下次文档修订时同步为 9280(本任务按"不改其余基线"约束未动该文件)。