Commit Graph

2 Commits

Author SHA1 Message Date
69ab0e8000 feat: 实现动态密码系统,消除硬编码
核心改动:
1. db.rs - 默认密码从环境变量读取或自动生成
   - 优先级: MOMENTRY_DEFAULT_PASSWORD > 自动生成
   - 格式: demo_<timestamp> 或自定义
   - 首次创建时打印密码到控制台

2. main.rs - SMB 服务密码动态化
   - 从 SMB_PASSWORD 或 MOMENTRY_DEFAULT_PASSWORD 读取
   - 支持自定义 SMB 用户名

3. user_tool.rs - 新增用户管理工具
   - list: 列出所有用户
   - create: 创建新用户
   - set-password: 修改密码
   - delete: 删除用户
   - init-demo: 初始化 demo 用户

4. install.sh - 安装时自动生成密码
   - 生成随机密码: demo_$(openssl rand -hex 4)
   - 保存到 .env 文件
   - 初始化数据库

5. .env.template - 新增密码配置
   - MOMENTRY_DEFAULT_PASSWORD
   - SMB_USER / SMB_PASSWORD

安全改进:
- 消除硬编码密码 'demo123'
- 每次安装密码唯一
- 密码哈希存储 (Argon2id)
- 支持自定义强密码

文档:
- docs/DEFAULT_PASSWORD_SYSTEM.md 完整说明
2026-10-12 14:25:47 +08:00
0973f5cfd7 feat: 动态路径系统 - 支持任意用户环境部署
问题:
- 100+ 处硬编码路径 /Users/accusys
- 无法在不同用户环境部署
- 配置文件路径固定

解决方案:
1. ✅ 创建 paths.rs 模块
   - get_home_dir() - 获取用户主目录
   - get_momentry_core_root() - Core API 根目录
   - get_markbase_root() - MarkBase 根目录
   - get_studio_root() - Studio 根目录
   - get_storage_root() - 存储根目录
   - 环境变量优先 > 用户主目录推断

2. ✅ 修改 main.rs
   - 移除所有硬编码路径
   - 使用动态路径函数
   - 支持环境变量配置

3. ✅ 创建配置模板
   - admin_config.json.template
   - .env.template
   - 使用 {{HOME}} 占位符

4. ✅ 创建自动化脚本
   - install.sh - 通用安装脚本
   - generate_config.sh - 配置生成脚本
   - 自动检测用户环境

特性:
- ✅ 支持任意用户环境
- ✅ 自动检测用户主目录
- ✅ 环境变量优先级控制
- ✅ 一键安装部署

测试:
- ✅ 编译通过 (cargo check)
- ⚠️ 需要在新环境测试

使用方法:
1. 克隆项目
2. ./install.sh
3. 编辑 .env
4. npm run proxy

适用环境:
- m5max48: /Users/accusys
- m4promini: /Users/nextorageai
- 任意 macOS 环境
2026-10-12 12:34:53 +08:00