feat(admin): Add user management and upgrade to module permission system

Features - User Management (Phase 4.1):
- Database: Add user_modules table for fine-grained module permissions
- Database: Add 4 user permissions (view/create/edit/delete) to role_permissions
- Backend: UserService (780 lines) - CRUD with tenant isolation
- Backend: UserController + UserRoutes (648 lines) - 13 API endpoints
- Backend: Batch import users from Excel
- Frontend: UserListPage (412 lines) - list/filter/search/pagination
- Frontend: UserFormPage (341 lines) - create/edit with module config
- Frontend: UserDetailPage (393 lines) - details/tenant/module management
- Frontend: 3 modal components (592 lines) - import/assign/configure
- API: GET/POST/PUT/DELETE /api/admin/users/* endpoints

Architecture Upgrade - Module Permission System:
- Backend: Add getUserModules() method in auth.service
- Backend: Login API returns modules array in user object
- Frontend: AuthContext adds hasModule() method
- Frontend: Navigation filters modules based on user.modules
- Frontend: RouteGuard checks requiredModule instead of requiredVersion
- Frontend: Remove deprecated version-based permission system
- UX: Only show accessible modules in navigation (clean UI)
- UX: Smart redirect after login (avoid 403 for regular users)

Fixes:
- Fix UTF-8 encoding corruption in ~100 docs files
- Fix pageSize type conversion in userService (String to Number)
- Fix authUser undefined error in TopNavigation
- Fix login redirect logic with role-based access check
- Update Git commit guidelines v1.2 with UTF-8 safety rules

Database Changes:
- CREATE TABLE user_modules (user_id, tenant_id, module_code, is_enabled)
- ADD UNIQUE CONSTRAINT (user_id, tenant_id, module_code)
- INSERT 4 permissions + role assignments
- UPDATE PUBLIC tenant with 8 module subscriptions

Technical:
- Backend: 5 new files (~2400 lines)
- Frontend: 10 new files (~2500 lines)
- Docs: 1 development record + 2 status updates + 1 guideline update
- Total: ~4900 lines of code

Status: User management 100% complete, module permission system operational
This commit is contained in:
2026-01-16 13:42:10 +08:00
parent 98d862dbd4
commit 66255368b7
560 changed files with 70424 additions and 52353 deletions

View File

@@ -1,44 +1,61 @@
# 🚀 AI临床研究平台 - 部署文档中心
> **鏈€鍚庢洿鏂?*锛?025-12-25
> **閮ㄧ讲鐘舵€?*锛氣渽 瀹屽叏鎴愬姛锛屾墍鏈夋湇鍔¤繍琛屾<E7909B>甯?
> **最后更新**2025-12-25
> **部署状态**:✅ 完全成功,所有服务运行正常
> **公网访问**http://8.140.53.236/
---
## 馃幆 蹇<>€熷紑濮嬶紙3鍒嗛挓鎵惧埌浣犻渶瑕佺殑鏂囨。锛?
## 🎯 快速开始3分钟找到你需要的文档
### 我要做什么?
| 你的目标 | 推荐文档 | 预计时间 |
|---------|---------|---------|
| 馃敟 **鏃ュ父鏇存柊浠g爜锛堟渶甯哥敤锛?* | [19-鏃ュ父鏇存柊蹇<E69F8A>€熸搷浣滄墜鍐宂(./19-鏃ュ父鏇存柊蹇<E69F8A>€熸搷浣滄墜鍐?md) 猸愨瓙猸愨瓙猸?| 20-25鍒嗛挓 |
| 馃殌 **瀹屾暣閮ㄧ讲绯荤粺** | [17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗圿(./17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md) | 3.5-6灏忔椂 |
| 馃攳 **鏌ヨ<E98F8C>IP/瀵嗙爜绛変俊鎭?* | [00-閮ㄧ讲杩涘害鎬昏<EFBFBD>](./00-閮ㄧ讲杩涘害鎬昏<E98EAC>.md) | 1鍒嗛挓 |
| 馃摎 **瀛︿範閮ㄧ讲鍘熺悊** | [01-<EFBFBD>€熼儴缃睸OP-闆跺熀纭€鐗圿(./01-蹇<>€熼儴缃睸OP-闆跺熀纭€鐗?md) | 4灏忔椂 |
| 馃悕 **閮ㄧ讲Python鏈嶅姟** | [09-Python<EFBFBD>湇鍔?SAE閮ㄧ讲鎿嶄綔鎵嬪唽](./09-Python寰<6E>湇鍔?SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md) | 35鍒嗛挓 |
| 🔥 **日常更新代码(最常用)** | [19-日常更新快速操作手册](./19-日常更新快速操作手册.md) ⭐⭐⭐⭐⭐ | 20-25分钟 |
| 🚀 **完整部署系统** | [17-完整部署实战手册-2025版](./17-完整部署实战手册-2025版.md) | 3.5-6小时 |
| 🔍 **查询IP/密码等信息** | [00-部署进度总览](./00-部署进度总览.md) | 1分钟 |
| 📚 **学习部署原理** | [01-快速部署SOP-零基础版](./01-快速部署SOP-零基础版.md) | 4小时 |
| 🐍 **部署Python服务** | [09-Python微服务-SAE部署操作手册](./09-Python微服务-SAE部署操作手册.md) | 35分钟 |
| 🟢 **部署Node.js后端** | [12-Node.js后端-SAE部署操作手册](./12-Node.js后端-SAE部署操作手册.md) | 50分钟 |
| 🎨 **部署前端Nginx** | [07-前端Nginx-SAE部署操作手册](./07-前端Nginx-SAE部署操作手册.md) | 30分钟 |
| 鉂?**閬囧埌闂<E59F8C><E99782>鎺掓煡** | [15-Node.js鍚庣<EFBFBD>-閮ㄧ讲鎴愬姛鎬荤粨](./15-Node.js鍚庣<EFBFBD>-閮ㄧ讲鎴愬姛鎬荤粨.md) | 鎸夐渶 |
| **遇到问题排查** | [15-Node.js后端-部署成功总结](./15-Node.js后端-部署成功总结.md) | 按需 |
| 📖 **不知道看哪个文档** | [18-部署文档使用指南](./18-部署文档使用指南.md) | 5分钟 |
---
## 馃敟 鏃ュ父鏇存柊鎿嶄綔锛堥珮棰戜娇鐢<E5A887>級猸愨瓙猸愨瓙猸?
### [19-鏃ュ父鏇存柊蹇<E69F8A>€熸搷浣滄墜鍐?md](./19-鏃ュ父鏇存柊蹇<E69F8A>€熸搷浣滄墜鍐?md)
## 🔥 日常更新操作(高频使用)⭐⭐⭐⭐⭐
**鈿?鏈€甯哥敤鐨勬枃妗o紒閫傚悎鏃ュ父鍔熻兘鏇存柊鍜屽揩閫熻凯浠o紒**
### [19-日常更新快速操作手册.md](./19-日常更新快速操作手册.md)
**涓轰粈涔堟帹鑽?*锛?- 鉁?鐭<>皬绮炬倣锛?70琛岋級锛屽叧閿<E58FA7>俊鎭<E4BF8A>瘑闆?- 鉁?鍙<>洿鎺ュ<E98EBA>鍒舵墽琛岀殑鍛戒护
- 鉁?鍖呭惈涓€閿<E282AC>洿鏂拌剼鏈?- 鉁?閫傚悎鍥㈤槦鍗忎綔鍜孉I鍔╂墜浣跨敤
**⚡ 最常用的文档!适合日常功能更新和快速迭代!**
**鍖呭惈鍐呭<EFBFBD>**锛?- **鏇存柊Node.js鍚庣<E98D9A>**锛?0-25鍒嗛挓锛? 鏈€甯哥敤锛? ```bash
缂栬瘧 鈫?鏋勫缓闀滃儚 鈫?鎺ㄩ€丄CR 鈫?SAE閮ㄧ讲 鈫?楠岃瘉
**为什么推荐**
- ✅ 短小精悍670行关键信息密集
- ✅ 可直接复制执行的命令
- ✅ 包含一键更新脚本
- ✅ 适合团队协作和AI助手使用
**包含内容**
- **更新Node.js后端**20-25分钟- 最常用!
```bash
编译 → 构建镜像 → 推送ACR → SAE部署 → 验证
```
- **鏇存柊鍓嶇<EFBFBD>Nginx**锛?5-20鍒嗛挓锛?- **鏇存柊Python鏈嶅姟**锛?0鍒嗛挓锛?- **淇<>敼鐜<E695BC><E9909C>鍙橀噺**锛?鍒嗛挓锛? 楂橀<E6A582>鎿嶄綔锛?- **鏌ョ湅鏃ュ織**锛?鍒嗛挓锛?- **鍥炴粴鎿嶄綔**锛?鍒嗛挓锛?- **涓€閿<E282AC>洿鏂拌剼鏈?*锛堣嚜鍔ㄥ寲锛?
**閫傚悎浜虹兢**锛?- 馃幆 鏃ュ父寮€鍙戣凯浠g殑寮€鍙戜汉鍛?- 馃幆 闇€瑕佸揩閫熼儴缃叉洿鏂扮殑杩愮淮浜哄憳
- 馃幆 鍥㈤槦鏂版垚鍛樺揩閫熶笂鎵?- 馃幆 AI鍔╂墜鎵ц<E98EB5>閮ㄧ讲浠诲姟
- **更新前端Nginx**15-20分钟)
- **更新Python服务**30分钟
- **修改环境变量**5分钟- 高频操作!
- **查看日志**1分钟
- **回滚操作**7分钟
- **一键更新脚本**(自动化)
**<EFBFBD>€熺ず渚?*锛?```bash
**适合人群**
- 🎯 日常开发迭代的开发人员
- 🎯 需要快速部署更新的运维人员
- 🎯 团队新成员快速上手
- 🎯 AI助手执行部署任务
**快速示例**
```bash
# 更新Node.js后端到v1.5
cd backend
npm run build
@@ -49,32 +66,55 @@ docker push crpi-xxx.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-ser
---
## 猸?鏍稿績鏂囨。锛堟柊鎵嬪繀鐪嬶級
## ⭐ 核心文档(新手必看)
### 1锔忊儯 瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽锛堝己鐑堟帹鑽愶級猸愨瓙猸愨瓙猸?
**[17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md](./17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md)**
### 1️⃣ 完整部署实战手册(强烈推荐)⭐⭐⭐⭐⭐
**涓轰粈涔堟帹鑽?*锛?- 鉁?鍩轰簬2025-12-25瀹為檯閮ㄧ讲缁忓巻缂栧啓
- 鉁?鍖呭惈鎵€鏈夐亣鍒扮殑闂<E6AE91><E99782>鍙婅В鍐虫柟妗?- 鉁?1800琛岃<E7909B>缁嗘<E7BC81>楠わ紝鍙<E7B49D>洿鎺ュ<E98EBA>鍒跺懡浠?- 鉁?璺熺潃鍋氬氨鑳芥垚鍔燂紒
**[17-完整部署实战手册-2025版.md](./17-完整部署实战手册-2025版.md)**
**鍖呭惈鍐呭<EFBFBD>**锛?- 瀹屾暣閮ㄧ讲娴佺▼锛圴PC鈫扲DS鈫扨ython鈫扤ode.js鈫掑墠绔<E5A2A0>啋CLB锛?- 4涓<34>叧閿<E58FA7>棶棰樹慨澶嶏紙鐜<E7B499><E9909C>鍙橀噺銆乧onfig銆乸ino-pretty銆丒S Module锛?- 鍏抽敭缁忛獙鎬荤粨锛堥噸鍚痸s閮ㄧ讲銆佺幆澧冨彉閲忓懡鍚嶇瓑锛?- 蹇<>€熷懡浠ゅ弬鑰?- 瀹屾暣閾捐矾娴嬭瘯
**为什么推荐**
- ✅ 基于2025-12-25实际部署经历编写
- ✅ 包含所有遇到的问题及解决方案
- ✅ 1800行详细步骤可直接复制命令
- ✅ 跟着做就能成功!
**包含内容**
- 完整部署流程VPC→RDS→Python→Node.js→前端→CLB
- 4个关键问题修复环境变量、config、pino-pretty、ES Module
- 关键经验总结重启vs部署、环境变量命名等
- 快速命令参考
- 完整链路测试
**适合人群**
- 🎯 要快速部署的人
- 🎯 重新部署或迁移的人
- 🎯 想了解实际坑点的人
**閫傚悎浜虹兢**锛?- 馃幆 瑕佸揩閫熼儴缃茬殑浜?- 馃幆 閲嶆柊閮ㄧ讲鎴栬縼绉荤殑浜?- 馃幆 鎯充簡瑙e疄闄呭潙鐐圭殑浜?
---
### 2锔忊儯 閮ㄧ讲杩涘害鎬昏<E98EAC>锛堟棩甯稿繀澶囷級猸愨瓙猸愨瓙猸?
### 2️⃣ 部署进度总览(日常必备)⭐⭐⭐⭐⭐
**[00-部署进度总览.md](./00-部署进度总览.md)**
**涓轰粈涔堟帹鑽?*锛?- 鉁?鎵€鏈夎祫婧愪俊鎭<E4BF8A>殑绱㈠紩涓<E7B4A9>
- 鉁?蹇<>€熸煡璇<E785A1>P銆佸瘑鐮併€佺幆澧冨彉閲?- 鉁?鏂囨。瀵艰埅鎸囧崡
- 鉁?閮ㄧ讲鐘舵€佽拷韪?
**鍖呭惈鍐呭<E98D90>**锛?- SAE搴旂敤鍐呯綉IP鍦板潃
- RDS鏁版嵁搴撹繛鎺ヤ俊鎭?- OSS AccessKey
**为什么推荐**
- ✅ 所有资源信息的索引中心
- ✅ 快速查询IP、密码、环境变量
- ✅ 文档导航指南
- ✅ 部署状态追踪
**包含内容**
- SAE应用内网IP地址
- RDS数据库连接信息
- OSS AccessKey
- ACR镜像仓库地址
- 环境变量配置清单
- <EFBFBD>€熷懡浠ゅ弬鑰?
**閫傚悎鍦烘櫙**锛?- 馃攳 蹇樿<E8B987>IP鍦板潃
- 馃攳 蹇樿<E8B987>鏁版嵁搴撳瘑鐮?- 馃攳 闇€瑕佹煡璇㈣祫婧愰厤缃?- 馃攳 闇€瑕佹壘鐩稿叧鏂囨。
- 快速命令参考
**适合场景**
- 🔍 忘记IP地址
- 🔍 忘记数据库密码
- 🔍 需要查询资源配置
- 🔍 需要找相关文档
---
@@ -82,69 +122,90 @@ docker push crpi-xxx.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-ser
**[18-部署文档使用指南.md](./18-部署文档使用指南.md)**
**涓轰粈涔堟帹鑽?*锛?- 鉁?蹇<>€熷<E282AC><EFBFBD>紝鎵惧埌闇€瑕佺殑鏂囨。
- 鉁?涓嶅悓鍦烘櫙鐨勯槄璇昏矾寰?- 鉁?鍏抽敭淇℃伅閫熸煡琛?- 鉁?鏈€浣冲疄璺靛缓璁?
**閫傚悎浜虹兢**锛?- 馃摉 涓嶇煡閬撲粠鍝<E7B2A0>釜鏂囨。寮€濮嬬湅
- 馃摉 鎯冲揩閫熸壘鍒扮壒瀹氫俊鎭?- 馃摉 鎯充簡瑙f枃妗g粨鏋?
**为什么推荐**
- ✅ 快速导航,找到需要的文档
- ✅ 不同场景的阅读路径
- ✅ 关键信息速查表
- ✅ 最佳实践建议
**适合人群**
- 📖 不知道从哪个文档开始看
- 📖 想快速找到特定信息
- 📖 想了解文档结构
---
## 📁 完整文档列表
### 馃幆 鏍稿績鎸囧崡锛?涓<>
1. [README.md](./README.md) - <EFBFBD>枃妗紝鎬诲叆鍙?2. [00-閮ㄧ讲杩涘害鎬昏<E98EAC>.md](./00-閮ㄧ讲杩涘害鎬昏<E98EAC>.md) - 璧勬簮閫熸煡銆佹枃妗g储寮?3. [18-閮ㄧ讲鏂囨。浣跨敤鎸囧崡.md](./18-閮ㄧ讲鏂囨。浣跨敤鎸囧崡.md) - 蹇<>€熷<E282AC>鑸?
### 馃殌 瀹屾暣閮ㄧ讲锛?涓<>
1. [17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md](./17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md) - 猸?瀹炴垬鐗堬紙鎺ㄨ崘锛?2. [01-蹇<>€熼儴缃睸OP-闆跺熀纭€鐗?md](./01-蹇<>€熼儴缃睸OP-闆跺熀纭€鐗?md) - 瀛︿範鐗?
### 馃敡 鏈嶅姟閮ㄧ讲鎵嬪唽锛?涓<>
1. [09-Python寰<6E>湇鍔?SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md](./09-Python寰<6E>湇鍔?SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md)
### 🎯 核心指南3个
1. [README.md](./README.md) - 本文档,总入口
2. [00-部署进度总览.md](./00-部署进度总览.md) - 资源速查、文档索引
3. [18-部署文档使用指南.md](./18-部署文档使用指南.md) - 快速导航
### 🚀 完整部署2个
1. [17-完整部署实战手册-2025版.md](./17-完整部署实战手册-2025版.md) - ⭐ 实战版(推荐)
2. [01-快速部署SOP-零基础版.md](./01-快速部署SOP-零基础版.md) - 学习版
### 🔧 服务部署手册4个
1. [09-Python微服务-SAE部署操作手册.md](./09-Python微服务-SAE部署操作手册.md)
2. [12-Node.js后端-SAE部署操作手册.md](./12-Node.js后端-SAE部署操作手册.md)
3. [07-前端Nginx-SAE部署操作手册.md](./07-前端Nginx-SAE部署操作手册.md)
4. [08-PostgreSQL鏁版嵁搴撻儴缃叉搷浣滄墜鍐?md](./08-PostgreSQL鏁版嵁搴撻儴缃叉搷浣滄墜鍐?md)
4. [08-PostgreSQL数据库部署操作手册.md](./08-PostgreSQL数据库部署操作手册.md)
### 📖 技术详解4个
1. [04-Python<EFBFBD>湇鍔?SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md](./04-Python寰<6E>湇鍔?SAE瀹瑰櫒閮ㄧ讲鎸囧崡.md)
1. [04-Python微服务-SAE容器部署指南.md](./04-Python微服务-SAE容器部署指南.md)
2. [05-Node.js后端-SAE容器部署指南.md](./05-Node.js后端-SAE容器部署指南.md)
3. [06-前端Nginx-SAE容器部署指南.md](./06-前端Nginx-SAE容器部署指南.md)
4. [10-Node.js后端-Docker镜像构建手册.md](./10-Node.js后端-Docker镜像构建手册.md)
### 馃摑 閰嶇疆娓呭崟锛?涓<>
1. [11-Node.js鍚庣<EFBFBD>-SAE閮ㄧ讲閰嶇疆娓呭崟.md](./11-Node.js鍚庣<EFBFBD>-SAE閮ㄧ讲閰嶇疆娓呭崟.md) - 21涓<31>幆澧冨彉閲忚<E996B2>瑙?
### 馃悰 闂<><E99782><EFBFBD><E6B787>锛?涓<>
### 📝 配置清单1个
1. [11-Node.js后端-SAE部署配置清单.md](./11-Node.js后端-SAE部署配置清单.md) - 21个环境变量详解
### 🐛 问题修复4个
1. [13-Node.js后端-镜像修复记录.md](./13-Node.js后端-镜像修复记录.md) - config目录问题
2. [14-Node.js后端-pino-pretty问题修复.md](./14-Node.js后端-pino-pretty问题修复.md) - 日志配置问题
3. [15-Node.js鍚庣<EFBFBD>-閮ㄧ讲鎴愬姛鎬荤粨.md](./15-Node.js鍚庣<EFBFBD>-閮ㄧ讲鎴愬姛鎬荤粨.md) - 猸?瀹屾暣闂<E69AA3><E99782>姹囨€?4. [16-鍓嶇<E98D93>Nginx-閮ㄧ讲鎴愬姛鎬荤粨.md](./16-鍓嶇<E98D93>Nginx-閮ㄧ讲鎴愬姛鎬荤粨.md) - 鍓嶇<E98D93>閮ㄧ讲鎬荤粨
3. [15-Node.js后端-部署成功总结.md](./15-Node.js后端-部署成功总结.md) - ⭐ 完整问题汇总
4. [16-前端Nginx-部署成功总结.md](./16-前端Nginx-部署成功总结.md) - 前端部署总结
---
## 🎉 部署成功证明
### 褰撳墠閮ㄧ讲鐘舵€侊紙2025-12-25锛?
| 鏈嶅姟 | 鐘舵€?| 鍐呯綉鍦板潃 | 鍏<>綉璁块棶 |
### 当前部署状态(2025-12-25
| 服务 | 状态 | 内网地址 | 公网访问 |
|------|------|---------|---------|
| RDS PostgreSQL | 鉁?杩愯<E69DA9>涓?| `pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432` | 鉂?|
| Python<EFBFBD>湇鍔?| 鉁?杩愯<E69DA9>涓?| `172.17.173.66:8000` | 鉂?|
| Node.js鍚庣<EFBFBD> | 鉁?杩愯<E69DA9>涓?| `172.17.173.73:3001` | 鉂?|
| 鍓嶇<EFBFBD>Nginx | 鉁?杩愯<E69DA9>涓?| `172.17.173.72:80` | 鉁?|
| CLB璐熻浇鍧囪  | 鉁?杩愯<E69DA9>涓?| - | `http://8.140.53.236/` |
| RDS PostgreSQL | ✅ 运行中 | `pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432` | |
| Python微服务 | ✅ 运行中 | `172.17.173.66:8000` | |
| Node.js后端 | ✅ 运行中 | `172.17.173.73:3001` | |
| 前端Nginx | ✅ 运行中 | `172.17.173.72:80` | |
| CLB负载均衡 | ✅ 运行中 | - | `http://8.140.53.236/` |
### 功能验证
- 鉁?鍓嶇<E98D93>椤甸潰姝父璁块棶
- 鉁?鐢ㄦ埛鐧诲綍鍔熻兘姝e父
- 鉁?鏂囩尞绛涙煡妯″潡姝e父
- 鉁?鏁版嵁娓呮礂宸ュ叿C鐨?澶у姛鑳藉叏閮ㄦ<E996AE>甯?- 鉁?鏂囦欢涓婁紶鍔熻兘姝e父
- 鉁?AI瀵硅瘽鍔熻兘姝
- 鉁?鏁版嵁搴撹繛鎺ユ<E98EBA>甯?- 鉁?Python鏈嶅姟璋冪敤姝
- 鉁?鍝嶅簲鏃堕棿 < 1绉?
- ✅ 前端页面正常访问
- ✅ 用户登录功能正常
- ✅ 文献筛查模块正常
- ✅ 数据清洗工具C的7大功能全部正常
- ✅ 文件上传功能正常
- ✅ AI对话功能正常
- ✅ 数据库连接正常
- ✅ Python服务调用正常
- ✅ 响应时间 < 1秒
---
## ⚠️ 关键经验(必读)
### 1. <EFBFBD><EFBFBD>鍙橀噺鍚嶅繀椤荤簿纭?
**鉂?閿欒<E996BF>閰嶇疆**锛?```bash
### 1. 环境变量名必须精确
**❌ 错误配置**
```bash
PYTHON_SERVICE_URL=http://172.17.173.66:8000
```
**鉁?姝g‘閰嶇疆**锛?```bash
**✅ 正确配置**
```bash
EXTRACTION_SERVICE_URL=http://172.17.173.66:8000
```
@@ -152,24 +213,27 @@ EXTRACTION_SERVICE_URL=http://172.17.173.66:8000
---
### 2. 鍖哄垎"閲嶅惎搴旂敤"鍜?閮ㄧ讲搴旂敤"
### 2. 区分"重启应用"和"部署应用"
| 鎿嶄綔 | 鐢ㄩ€?| IP鏄<50>惁鍙?| 浣曟椂浣跨敤 |
| 操作 | 用途 | IP是否变 | 何时使用 |
|------|------|---------|---------|
| **閲嶅惎搴旂敤** | 閲嶅惎瀹瑰櫒 | 鉂?涓嶄細鍙?| 淇<>敼鐜<E695BC><E9909C>鍙橀噺銆佽皟鏁撮厤缃?|
| **閮ㄧ讲搴旂敤** | 鏇存柊闀滃儚 | 鉁?浼氬彉鏇?| 鏇存柊浠g爜銆佹洿鏂伴暅鍍忕増鏈?|
| **重启应用** | 重启容器 | ❌ 不会变 | 修改环境变量、调整配置 |
| **部署应用** | 更新镜像 | ✅ 会变更 | 更新代码、更新镜像版本 |
**教训**:只修改环境变量时,用"重启应用"避免IP变更导致其他服务配置失效
**鏁欒<E98F81>**锛氬彧淇<E5BDA7>敼鐜<E695BC><E9909C>鍙橀噺鏃讹紝鐢?閲嶅惎搴旂敤"锛岄伩鍏岻P鍙樻洿瀵艰嚧鍏朵粬鏈嶅姟閰嶇疆澶辨晥锛?
---
### 3. Dockerfile必须包含config目录
**<EFBFBD><EFBFBD>**锛?```
**问题**
```
ENOENT: no such file or directory, open '/app/config/agents.yaml'
```
**瑙e喅**锛?```dockerfile
# 鉁?蹇呴』娣诲姞
**解决**
```dockerfile
# ✅ 必须添加
COPY config ./config
```
@@ -177,17 +241,19 @@ COPY config ./config
### 4. 使用VPC地址拉取镜像省钱
**SAE鎷夊彇闀滃儚鏃?*锛?```bash
# 鉁?姝锛圴PC鍦板潃锛屽厤娴侀噺璐癸級
**SAE拉取镜像时**
```bash
# ✅ 正确VPC地址免流量费
crpi-xxx-vpc.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.3
# 鉂?涓嶆帹鑽愶紙鍏<E7B499>綉鍦板潃锛屾敹娴侀噺璐癸級
# ❌ 不推荐(公网地址,收流量费)
crpi-xxx.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.3
```
---
## 馃挕 蹇<>€熷懡浠ゅ弬鑰?
## 💡 快速命令参考
### 登录ACR
```bash
docker login --username=gofeng117@163.com \
@@ -195,7 +261,8 @@ docker login --username=gofeng117@163.com \
crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com
```
### 鏋勫缓骞舵帹閫侀暅鍍?```bash
### 构建并推送镜像
```bash
# Node.js后端
cd backend
npm run build
@@ -205,7 +272,8 @@ docker tag backend-service:v1.3 \
docker push crpi-cd5ij4pjt65mweeo.cn-beijing.personal.cr.aliyuncs.com/ai-clinical/backend-service:v1.3
```
### 鍋ュ悍妫€鏌?```bash
### 健康检查
```bash
# Python服务
curl http://172.17.173.66:8000/api/health
@@ -221,17 +289,19 @@ curl http://8.140.53.236/
---
## 馃搳 閮ㄧ讲鏋舵瀯鍥?
## 📊 部署架构图
```
鐢ㄦ埛娴忚<EFBFBD>鍣? 鈫?HTTP (鍏<>綉)
CLB璐熻浇鍧囪 鍣?(8.140.53.236)
鈫?HTTP (鍐呯綉)
用户浏览器
↓ HTTP (公网)
CLB负载均衡器 (8.140.53.236)
↓ HTTP (内网)
前端Nginx (172.17.173.72:80)
鈫?HTTP (鍐呯綉, /api/v1/)
HTTP (内网, /api/v1/)
Node.js后端 (172.17.173.73:3001)
鈫?HTTP (鍐呯綉, /api/dc/)
HTTP (内网, /api/dc/)
Python服务 (172.17.173.66:8000)
鈫?SQL (鍐呯綉)
SQL (内网)
RDS PostgreSQL (pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432)
```
@@ -242,12 +312,14 @@ RDS PostgreSQL (pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432)
### 常见问题
**Q我是新手从哪里开始**
- A锛氱洿鎺ョ湅 [17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗圿(./17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md)
- A:直接看 [17-完整部署实战手册-2025版](./17-完整部署实战手册-2025版.md)
**Q只想更新代码不想全部重新部署**
- A看对应服务的操作手册如 [12-Node.js后端-SAE部署操作手册](./12-Node.js后端-SAE部署操作手册.md)
**Q锛氬彧鎯虫洿鏂颁唬鐮侊紝涓嶆兂鍏ㄩ儴閲嶆柊閮ㄧ讲锛?*
- A锛氱湅瀵瑰簲鏈嶅姟鐨勬搷浣滄墜鍐岋紙濡?[12-Node.js鍚庣<E98D9A>-SAE閮ㄧ讲鎿嶄綔鎵嬪唽](./12-Node.js鍚庣<E98D9A>-SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md)锛?
**Q遇到报错了怎么办**
- A锛氬厛鐪?[17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗圿(./17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md) 绗?鑺?
- A:先看 [17-完整部署实战手册-2025版](./17-完整部署实战手册-2025版.md) 第9节
**Q忘记密码或IP地址了**
- A查 [00-部署进度总览](./00-部署进度总览.md)
@@ -258,53 +330,76 @@ RDS PostgreSQL (pgm-2zex1m2y3r23hdn5.pg.rds.aliyuncs.com:5432)
## 🎯 推荐阅读路径
### <EFBFBD>緞1锛氶<EFBFBD>娆″畬鏁撮儴缃诧紙鏂版墜锛?
```
17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md锛堜富绾匡級
鈫?00-閮ㄧ讲杩涘害鎬昏<E98EAC>.md锛堟煡璧勬簮淇℃伅锛? 鈫?15-Node.js鍚庣<E98D9A>-閮ㄧ讲鎴愬姛鎬荤粨.md锛堥亣鍒伴棶棰樻椂锛?```
### 路径1首次完整部署新手
**棰勮<E6A3B0>鏃堕棿**锛?.5 - 6灏忔椂
```
17-完整部署实战手册-2025版.md主线
00-部署进度总览.md查资源信息
15-Node.js后端-部署成功总结.md遇到问题时
```
**预计时间**3.5 - 6小时
---
### <EFBFBD>緞2锛氭洿鏂版煇涓<EFBFBD>湇鍔★紙鐔熺粌锛?
```
瀵瑰簲鏈嶅姟鐨勬搷浣滄墜鍐岋紙濡?2-Node.js鍚庣<E98D9A>-SAE閮ㄧ讲鎿嶄綔鎵嬪唽.md锛? 鈫?00-閮ㄧ讲杩涘害鎬昏<E98EAC>.md锛堟煡ACR鍦板潃锛?```
### 路径2更新某个服务熟练
**棰勮<E6A3B0>鏃堕棿**锛?5 - 30鍒嗛挓
```
对应服务的操作手册如12-Node.js后端-SAE部署操作手册.md
00-部署进度总览.md查ACR地址
```
**预计时间**15 - 30分钟
---
### <EFBFBD>緞3锛氫慨鏀圭幆澧冨彉閲?
```
11-Node.js鍚庣<E98D9A>-SAE閮ㄧ讲閰嶇疆娓呭崟.md锛堢璁ゅ彉閲忓悕锛? 鈫?SAE鎺у埗鍙颁慨鏀? 鈫?閲嶅惎搴旂敤锛堜笉鏄<E7AC89>儴缃插簲鐢<E7B0B2>紒锛?```
### 路径3修改环境变量
**棰勮<E6A3B0>鏃堕棿**锛?鍒嗛挓
```
11-Node.js后端-SAE部署配置清单.md确认变量名
SAE控制台修改
重启应用(不是部署应用!)
```
**预计时间**5分钟
---
## 馃摓 鎶€鏈<E282AC>敮鎸?
- **寮€鍙戝洟闃?*锛氬唴閮ㄦ枃妗d綋绯?- **闃块噷浜戝伐鍗?*锛歨ttps://workorder.console.aliyun.com/
- **绱ф€ラ棶棰?*锛氬厛鏌ユ枃妗紝99%鐨勯棶棰橀兘鏈夎В鍐虫柟妗?
## 📞 技术支持
- **开发团队**:内部文档体系
- **阿里云工单**https://workorder.console.aliyun.com/
- **紧急问题**先查文档99%的问题都有解决方案
---
## 🎉 总结
**恭喜您找到了完整的部署文档!**
### 3<EFBFBD>牳蹇冩枃妗<EFBFBD>浣忓畠浠?
1. **鏈<>枃妗紙README锛?* - 鎬诲叆鍙紝蹇<E7B49D>€熷<E282AC>鑸?2. **[17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗圿(./17-瀹屾暣閮ㄧ讲瀹炴垬鎵嬪唽-2025鐗?md)** - 閮ㄧ讲蹇呯湅
### 3个核心文档记住它们
1. **本文档README** - 总入口,快速导航
2. **[17-完整部署实战手册-2025版](./17-完整部署实战手册-2025版.md)** - 部署必看
3. **[00-部署进度总览](./00-部署进度总览.md)** - 信息速查
### 閮ㄧ讲鎴愬姛鐨?涓<>叧閿?
1. 鉁?鐜<><E9909C>鍙橀噺鍚嶅繀椤荤簿纭<E7B0BF>尮閰嶄唬鐮?2. 鉁?鍖哄垎"閲嶅惎搴旂敤"鍜?閮ㄧ讲搴旂敤"
3. 鉁?鎸夐『搴忛儴缃诧紝姣忔<E5A7A3>閮借<E996AE>楠岃瘉
### 部署成功的3个关键
1. ✅ 环境变量名必须精确匹配代码
2. ✅ 区分"重启应用"和"部署应用"
3. ✅ 按顺序部署,每步都要验证
---
> **鏈€鍚庢洿鏂?*锛?025-12-25
> **閮ㄧ讲鐘舵€?*锛氣渽 瀹屽叏鎴愬姛
> **最后更新**2025-12-25
> **部署状态**:✅ 完全成功
> **公网访问**http://8.140.53.236/
> **缁存姢浜哄憳**锛氬紑鍙戝洟闃?
> **维护人员**:开发团队
🚀 **开始部署吧!祝您顺利!**