# 部署就绪检查清单 **更新时间**: 2026-10-12 **状态**: ✅ 已消除所有硬编码,可部署到任何环境 --- ## ✅ 硬编码消除验证 ### 1. 路径硬编码 **检查结果**: - ✅ `paths.rs` - 无硬编码路径 - ✅ `main.rs` - 无硬编码路径 - ✅ `db.rs` - 无硬编码路径 **动态路径系统**: ```rust get_home_dir() // 检测用户主目录 get_momentry_core_root() // MOMENTRY_CORE_ROOT 或 ~/momentry_core get_markbase_root() // MARKBASE_ROOT 或 ~/markbase get_storage_root() // STORAGE_ROOT 或 ~/momentry/var/sftpgo/data ``` --- ### 2. 密码硬编码 **检查结果**: - ✅ `db.rs` - 无硬编码密码 - ✅ `main.rs` - 无硬编码密码 **动态密码系统**: ```rust MOMENTRY_DEFAULT_PASSWORD // 环境变量或自动生成 SMB_USER / SMB_PASSWORD // SMB 服务配置 ``` --- ## 📋 部署前检查清单 ### A. 代码层面 - [x] 路径动态化 (paths.rs) - [x] 密码动态化 (db.rs, main.rs) - [x] 用户管理工具 (user_tool.rs) - [x] 安装脚本 (install.sh) - [x] 配置模板 (.env.template) --- ### B. 配置层面 **必需配置文件**: - [ ] `.env` 文件已创建 - [ ] `MOMENTRY_DEFAULT_PASSWORD` 已设置 - [ ] `MOMENTRY_API_KEY` 已设置 **推荐配置**: - [ ] `MOMENTRY_CORE_ROOT` 已设置 (或使用默认值) - [ ] `MARKBASE_ROOT` 已设置 (或使用默认值) - [ ] `STORAGE_ROOT` 已设置 (或使用默认值) --- ### C. 目录层面 **必需目录** (安装脚本自动创建): - [ ] `~/momentry/var/sftpgo/data/demo` - 文件存储 - [ ] `~/momentry/output` - 输出目录 - [ ] `~/momentry/backup` - 备份目录 - [ ] `momentry_studio/data/users` - 数据库 **权限检查**: - [ ] 存储目录权限: `chmod 755 ~/momentry/var/sftpgo/data` - [ ] 数据库目录权限: `chmod 755 data/users` - [ ] .env 文件权限: `chmod 600 .env` --- ### D. 服务层面 **必需服务**: - [ ] Momentry Core API (`localhost:3002`) - [ ] MarkBase API (`localhost:11438`) **可选服务**: - [ ] SMB 服务 (如需文件共享) - [ ] SFTP 服务 (如需远程访问) --- ## 🚀 部署流程 ### 新环境部署 (例如 m4promini) ```bash # 1. 克隆代码 cd ~ git clone momentry_studio # 2. 进入目录 cd momentry_studio # 3. 运行安装脚本 ./install.sh # 4. 记录生成的密码 # 输出示例: # ======================================== # Default user password: demo_a1b2c3d4 # Please save this password securely! # ======================================== # 5. 检查配置 cat .env # 6. 验证服务 curl http://localhost:3002/health curl http://localhost:11438/health # 7. 启动应用 ./start.sh ``` --- ## ✅ 验证检查 ### 1. 路径验证 ```bash # 检查数据目录 ls -la ~/momentry/var/sftpgo/data/demo/ # 检查数据库 ls -la data/users/demo.sqlite # 检查配置 cat .env | grep ROOT ``` --- ### 2. 密码验证 ```bash # 检查默认密码 cat .env | grep MOMENTRY_DEFAULT_PASSWORD # 测试登录 curl -X POST http://localhost:11438/api/v2/admin/login \ -H "Content-Type: application/json" \ -d '{"username":"demo","password":"demo_a1b2c3d4"}' ``` --- ### 3. 用户管理 ```bash # 列出用户 ./src-tauri/target/release/user_tool list # 修改密码 ./src-tauri/target/release/user_tool set-password demo new_password # 创建新用户 ./src-tauri/target/release/user_tool create admin admin_password ``` --- ## 🔧 故障排除 ### 问题 1: 安装失败 **检查**: ```bash # 检查 Node.js node --version # 需要 v18+ # 检查 Rust rustc --version # 需要 1.77.2+ # 检查依赖 npm install cargo build --release ``` --- ### 问题 2: 服务无法启动 **检查**: ```bash # 检查端口占用 lsof -i :3002 lsof -i :11438 lsof -i :8888 # 检查日志 tail -f /tmp/momentry_*.log ``` --- ### 问题 3: 密码不正确 **解决**: ```bash # 重置密码 export MOMENTRY_DEFAULT_PASSWORD=new_password ./src-tauri/target/release/user_tool init-demo ``` --- ## 📊 部署状态矩阵 | 环境 | 用户 | 主目录 | 密码 | 状态 | |-----|------|--------|------|------| | m5max48 | accusys | `/Users/accusys` | `demo_*` | ✅ 已部署 | | m4promini | nextorageai | `/Users/nextorageai` | `demo_*` | ⏳ 待部署 | | 生产环境 | - | `/opt/momentry` | `自定义` | ⏳ 待部署 | --- ## 🎯 总结 ### 已实现 ✅ 完全动态化系统 - 路径:自动检测用户主目录 - 密码:每次安装自动生成 - 用户:预设计 demo 用户 - 配置:模板 + 自动生成 --- ### 可部署 ✅ 支持任何新环境 - 无需修改代码 - 自动检测路径 - 自动生成密码 - 一键安装部署 --- **文档位置**: `DEPLOYMENT_CHECKLIST.md` **状态**: ✅ 部署就绪