验证内容: ✅ 路径硬编码已消除 (paths.rs, main.rs, db.rs) ✅ 密码硬编码已消除 (db.rs, main.rs) 部署清单: - 代码层面: 路径动态化、密码动态化、用户管理工具 - 配置层面: .env 文件、环境变量 - 目录层面: 存储目录、数据库目录、权限设置 - 服务层面: Core API、MarkBase API 部署流程: 1. 克隆代码 2. 运行 install.sh 3. 记录生成的密码 4. 验证服务 5. 启动应用 故障排除: - 安装失败检查 - 服务启动检查 - 密码重置方法 状态: ✅ 可部署到任何新环境
4.6 KiB
4.6 KiB
部署就绪检查清单
更新时间: 2026-10-12
状态: ✅ 已消除所有硬编码,可部署到任何环境
✅ 硬编码消除验证
1. 路径硬编码
检查结果:
- ✅
paths.rs- 无硬编码路径 - ✅
main.rs- 无硬编码路径 - ✅
db.rs- 无硬编码路径
动态路径系统:
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- 无硬编码密码
动态密码系统:
MOMENTRY_DEFAULT_PASSWORD // 环境变量或自动生成
SMB_USER / SMB_PASSWORD // SMB 服务配置
📋 部署前检查清单
A. 代码层面
- 路径动态化 (paths.rs)
- 密码动态化 (db.rs, main.rs)
- 用户管理工具 (user_tool.rs)
- 安装脚本 (install.sh)
- 配置模板 (.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)
# 1. 克隆代码
cd ~
git clone <repo_url> 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. 路径验证
# 检查数据目录
ls -la ~/momentry/var/sftpgo/data/demo/
# 检查数据库
ls -la data/users/demo.sqlite
# 检查配置
cat .env | grep ROOT
2. 密码验证
# 检查默认密码
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. 用户管理
# 列出用户
./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: 安装失败
检查:
# 检查 Node.js
node --version # 需要 v18+
# 检查 Rust
rustc --version # 需要 1.77.2+
# 检查依赖
npm install
cargo build --release
问题 2: 服务无法启动
检查:
# 检查端口占用
lsof -i :3002
lsof -i :11438
lsof -i :8888
# 检查日志
tail -f /tmp/momentry_*.log
问题 3: 密码不正确
解决:
# 重置密码
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
状态: ✅ 部署就绪