docs: 添加部署就绪检查清单
验证内容: ✅ 路径硬编码已消除 (paths.rs, main.rs, db.rs) ✅ 密码硬编码已消除 (db.rs, main.rs) 部署清单: - 代码层面: 路径动态化、密码动态化、用户管理工具 - 配置层面: .env 文件、环境变量 - 目录层面: 存储目录、数据库目录、权限设置 - 服务层面: Core API、MarkBase API 部署流程: 1. 克隆代码 2. 运行 install.sh 3. 记录生成的密码 4. 验证服务 5. 启动应用 故障排除: - 安装失败检查 - 服务启动检查 - 密码重置方法 状态: ✅ 可部署到任何新环境
This commit is contained in:
253
DEPLOYMENT_CHECKLIST.md
Normal file
253
DEPLOYMENT_CHECKLIST.md
Normal file
@@ -0,0 +1,253 @@
|
||||
# 部署就绪检查清单
|
||||
|
||||
**更新时间**: 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 <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. 路径验证
|
||||
|
||||
```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`
|
||||
**状态**: ✅ 部署就绪
|
||||
Reference in New Issue
Block a user