Files
momentry_studio/DEPLOYMENT_CHECKLIST.md
Momentry Studio 59e2718424 docs: 添加部署就绪检查清单
验证内容:
✅ 路径硬编码已消除 (paths.rs, main.rs, db.rs)
✅ 密码硬编码已消除 (db.rs, main.rs)

部署清单:
- 代码层面: 路径动态化、密码动态化、用户管理工具
- 配置层面: .env 文件、环境变量
- 目录层面: 存储目录、数据库目录、权限设置
- 服务层面: Core API、MarkBase API

部署流程:
1. 克隆代码
2. 运行 install.sh
3. 记录生成的密码
4. 验证服务
5. 启动应用

故障排除:
- 安装失败检查
- 服务启动检查
- 密码重置方法

状态: ✅ 可部署到任何新环境
2026-10-12 14:27:03 +08:00

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
状态: ✅ 部署就绪