docs: 准备 v0.1.0 发布文档

发布文档:
1. RELEASE_PREPARATION.md - 发布准备清单
   - 发布内容清单
   - 系统要求
   - 构建步骤
   - 发布检查清单
   - 安装包制作

2. INSTALLATION_GUIDE.md - 详细安装指南
   - 系统要求
   - 快速安装步骤
   - 详细安装流程
   - 高级配置
   - 故障排除
   - m4promini 测试步骤

3. QUICK_REFERENCE.md - 快速参考卡片
   - 一键安装命令
   - 系统要求表格
   - 关键路径
   - 常用命令
   - 故障排除

4. README.md - 项目主文档
   - 项目简介
   - 快速开始
   - 功能特性
   - 架构设计
   - API 文档
   - 版本历史

目标:
- 安装到任何需要的系统
- 测试系统: m4promini
- 交给 admin team 做成安装包

文档特点:
- 一键安装脚本
- 详细步骤说明
- 故障排除指南
- 快速参考卡片
This commit is contained in:
2026-10-12 15:14:07 +08:00
parent be3cef2e0d
commit 12943a3f07
4 changed files with 1885 additions and 162 deletions

749
INSTALLATION_GUIDE.md Normal file
View File

@@ -0,0 +1,749 @@
# Momentry Studio v0.1.0 安装指南
**版本**: v0.1.0
**目标**: 安装并运行 Momentry Studio
**适用系统**: macOS / Linux
**测试系统**: m4promini
---
## 📋 系统要求
### 必需软件
| 软件 | 版本 | 用途 | 安装命令 |
|-----|------|------|---------|
| **Node.js** | v18+ | 前端运行 | `brew install node@18` |
| **Rust** | 1.77.2+ | 后端编译 | `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \| sh` |
| **npm** | v9+ | 包管理 | 随 Node.js 安装 |
| **PostgreSQL** | 12+ | 核心数据库 | `brew install postgresql@14` |
| **Qdrant** | 1.7+ | 向量搜索 | `brew install qdrant` 或 Docker |
| **MongoDB** | 5+ | 文档存储 | `brew install mongodb-community` |
### 系统资源
- **CPU**: 4 核心或更高
- **内存**: 8GB 或更高
- **存储**: 100GB 或更高
---
## 🚀 快速安装 (推荐)
### 步骤 1: 下载发布包
```bash
# 从 Git 仓库克隆
cd ~
git clone <repo_url> momentry_studio
cd momentry_studio
# 或下载压缩包
curl -LO <release_url>/momentry_studio_v0.1.0.tar.gz
tar -xzf momentry_studio_v0.1.0.tar.gz
cd momentry_studio
```
---
### 步骤 2: 运行一键安装脚本
```bash
# 给脚本执行权限
chmod +x scripts/*.sh
# 运行安装脚本
./scripts/install.sh
```
**安装脚本会自动**:
- ✅ 检测用户主目录
- ✅ 安装 Node.js 依赖
- ✅ 构建前端
- ✅ 构建 Rust 后端
- ✅ 创建数据目录
- ✅ 生成随机密码
- ✅ 创建启动脚本
- ✅ 初始化数据库
**安装输出**:
```
================================================================================
Momentry Studio v0.1.0 安装
================================================================================
步骤 1/6: 环境检查...
✅ Node.js: v18.x
✅ Rust: 1.77.2
✅ npm: 9.x
步骤 2/6: 设置环境变量...
✅ 用户主目录: /Users/nextorageai
✅ 项目根目录: /Users/nextorageai/momentry_studio
步骤 3/6: 创建数据目录...
✅ 已创建数据目录
步骤 4/6: 安装依赖并构建...
✅ 构建完成
步骤 5/6: 初始化默认用户...
========================================
Default user password: demo_a1b2c3d4
Please save this password securely!
========================================
步骤 6/6: 创建启动脚本...
✅ 启动脚本已创建
================================================================================
安装完成
================================================================================
下一步:
1. 启动必需服务:
- PostgreSQL
- Qdrant
- MongoDB
2. 配置环境变量:
vim .env
3. 启动应用:
./start.sh
================================================================================
```
---
### 步骤 3: 启动必需服务
```bash
# PostgreSQL
pg_ctl start -D /usr/local/var/postgres
createdb momentry
psql -d momentry -c "CREATE EXTENSION IF NOT EXISTS vector;"
# MongoDB
mongod --config /usr/local/etc/mongod.conf --fork
# Qdrant
qdrant &
# 或使用 Docker
docker run -d -p 6333:6333 qdrant/qdrant
```
---
### 步骤 4: 启动应用
```bash
# 启动 Momentry Studio
./start.sh
# 访问应用
# 浏览器打开: http://localhost:5173
# 或使用 Tauri 桌面应用: open "release/Momentry Studio.app"
```
---
## 🔧 详细安装步骤
### 1. 环境准备
#### 1.1 安装 Node.js
**macOS**:
```bash
# 使用 Homebrew
brew install node@18
# 验证
node --version # v18.x
npm --version # 9.x
```
**Linux (Ubuntu)**:
```bash
# 使用 NodeSource
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证
node --version # v18.x
npm --version # 9.x
```
---
#### 1.2 安装 Rust
**所有平台**:
```bash
# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 加载环境
source $HOME/.cargo/env
# 验证
rustc --version # 1.77.2+
cargo --version
```
---
#### 1.3 安装 PostgreSQL
**macOS**:
```bash
# 安装
brew install postgresql@14
# 启动服务
pg_ctl start -D /usr/local/var/postgres
# 创建数据库
createdb momentry
# 安装 pgvector 扩展
psql -d momentry -c "CREATE EXTENSION IF NOT EXISTS vector;"
```
**Linux (Ubuntu)**:
```bash
# 安装
sudo apt-get install -y postgresql postgresql-contrib
# 启动服务
sudo systemctl start postgresql
sudo systemctl enable postgresql
# 创建数据库
sudo -u postgres createdb momentry
# 安装 pgvector
sudo apt-get install -y postgresql-14-pgvector
sudo -u postgres psql -d momentry -c "CREATE EXTENSION IF NOT EXISTS vector;"
```
---
#### 1.4 安装 Qdrant
**macOS (Homebrew)**:
```bash
brew install qdrant
qdrant &
```
**Docker (推荐)**:
```bash
docker run -d -p 6333:6333 qdrant/qdrant
```
**Linux**:
```bash
# 下载二进制
wget https://github.com/qdrant/qdrant/releases/download/v1.7.0/qdrant-x86_64-unknown-linux-gnu.tar.gz
tar -xzf qdrant-x86_64-unknown-linux-gnu.tar.gz
./qdrant &
```
---
#### 1.5 安装 MongoDB
**macOS**:
```bash
brew tap mongodb/brew
brew install mongodb-community
# 启动
mongod --config /usr/local/etc/mongod.conf --fork
```
**Linux (Ubuntu)**:
```bash
# 导入公钥
wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -
# 添加源
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
# 安装
sudo apt-get update
sudo apt-get install -y mongodb-org
# 启动
sudo systemctl start mongod
sudo systemctl enable mongod
```
---
### 2. 代码部署
#### 2.1 获取代码
**从 Git 克隆**:
```bash
cd ~
git clone <repo_url> momentry_studio
cd momentry_studio
```
**从压缩包**:
```bash
cd ~
curl -LO <release_url>/momentry_studio_v0.1.0.tar.gz
tar -xzf momentry_studio_v0.1.0.tar.gz
cd momentry_studio
```
---
#### 2.2 配置环境
**自动配置**:
```bash
./scripts/generate_config.sh
```
**手动配置**:
```bash
# 复制模板
cp .env.template .env
cp config/admin_config.json.template config/admin_config.json
# 编辑配置
vim .env
```
**必需配置**:
```bash
# .env 文件
MOMENTRY_API_KEY=your_api_key_here
MOMENTRY_DEFAULT_PASSWORD=demo_a1b2c3d4
# PostgreSQL
DATABASE_URL=postgres://$(whoami)@localhost:5432/momentry
# Qdrant
QDRANT_URL=http://localhost:6333
QDRANT_API_KEY=your_qdrant_key
# MongoDB
MONGODB_URL=mongodb://localhost:27017
MONGODB_DATABASE=momentry
```
---
#### 2.3 安装依赖
```bash
# Node.js 依赖
npm install
# Rust 依赖 (自动)
cd src-tauri
cargo fetch
cd ..
```
---
#### 2.4 构建应用
**开发构建**:
```bash
# 构建前端
npm run build
# 构建 Rust
cd src-tauri
cargo build --release
cd ..
```
**生产构建 (Tauri 应用)**:
```bash
cargo tauri build
```
---
### 3. 数据库初始化
#### 3.1 初始化三层架构
```bash
# 运行初始化脚本
./scripts/init_three_layer_db.sh
# 检查结果
./scripts/check_three_layer.sh
```
**输出**:
```
✅ Admin Layer: 存在
✅ Group Layer: 2 个群组
✅ User Layer: 1 个用户
```
---
#### 3.2 创建默认用户
```bash
# 查看用户列表
./src-tauri/target/release/user_tool list
# 修改密码
./src-tauri/target/release/user_tool set-password demo new_password
```
---
### 4. 启动应用
#### 4.1 启动后端服务
```bash
# 确保 Momentry Core API 运行
cd ~/momentry_core
./start.sh
# 确保 MarkBase API 运行
cd ~/markbase/markbase-core
./start.sh
```
---
#### 4.2 启动 Studio
**开发模式**:
```bash
# 使用安装脚本生成的启动脚本
./start.sh
# 或手动启动
npm run dev
```
**生产模式**:
```bash
# 启动代理
./src-tauri/target/release/momentry-proxy &
# 启动前端
npm run preview
```
**Tauri 桌面应用**:
```bash
# macOS
open "release/Momentry Studio.app"
# 或直接运行
./src-tauri/target/release/momentry-studio
```
---
### 5. 验证安装
#### 5.1 检查服务
```bash
# 检查数据库
./scripts/check_db_dependencies.sh
# 检查三层架构
./scripts/check_three_layer.sh
# 检查用户隔离
./scripts/check_user_isolation.sh
```
---
#### 5.2 测试功能
**访问应用**:
```
http://localhost:5173
```
**登录**:
- 用户名: `demo`
- 密码: 查看安装输出或 `.env` 文件
**测试功能**:
- [ ] 视频搜索
- [ ] 人脸识别
- [ ] 文件管理
- [ ] 搜索历史
- [ ] 书签功能
---
## 🔧 高级配置
### 1. 自定义路径
**通过环境变量**:
```bash
export MOMENTRY_CORE_ROOT=/custom/path/momentry_core
export MARKBASE_ROOT=/custom/path/markbase
export STORAGE_ROOT=/custom/path/storage
```
**在 .env 文件中**:
```bash
MOMENTRY_CORE_ROOT=/custom/path/momentry_core
MARKBASE_ROOT=/custom/path/markbase
STORAGE_ROOT=/custom/path/storage
```
---
### 2. 多用户配置
**创建新用户**:
```bash
./src-tauri/target/release/user_tool create user1 password123
```
**创建群组**:
```bash
# 参考 docs/MARKBASE_THREE_LAYER_ARCHITECTURE.md
```
---
### 3. 权限配置
**参考**: `docs/MARKBASE_THREE_LAYER_ARCHITECTURE.md`
---
## ❓ 故障排除
### 问题 1: PostgreSQL 连接失败
**检查**:
```bash
# 服务是否运行
pg_isready
# 数据库是否存在
psql -l | grep momentry
# 权限是否正确
psql -d momentry
```
**解决**:
```bash
# 创建数据库
createdb momentry
# 授予权限
psql -d momentry -c "GRANT ALL PRIVILEGES ON DATABASE momentry TO $(whoami);"
```
---
### 问题 2: Qdrant 未运行
**检查**:
```bash
curl http://localhost:6333/health
```
**解决**:
```bash
# 启动 Qdrant
qdrant &
# 或使用 Docker
docker run -d -p 6333:6333 qdrant/qdrant
```
---
### 问题 3: MongoDB 连接失败
**检查**:
```bash
mongosh --eval "db.runCommand({ping:1})"
```
**解决**:
```bash
# 启动 MongoDB
mongod --config /usr/local/etc/mongod.conf --fork
# 或使用 systemctl
sudo systemctl start mongod
```
---
### 问题 4: 编译失败
**检查**:
```bash
# Node.js 版本
node --version # 需要 v18+
# Rust 版本
rustc --version # 需要 1.77.2+
# 依赖安装
npm install
cargo fetch
```
**解决**:
```bash
# 清理并重新构建
cargo clean
npm run build
cargo build --release
```
---
### 问题 5: 忘记密码
**解决**:
```bash
# 查看密码
cat .env | grep MOMENTRY_DEFAULT_PASSWORD
# 或重置密码
./src-tauri/target/release/user_tool set-password demo new_password
```
---
## 📊 安装后检查清单
### 服务检查
- [ ] PostgreSQL 运行中 (localhost:5432)
- [ ] Qdrant 运行中 (localhost:6333)
- [ ] MongoDB 运行中 (localhost:27017)
- [ ] Momentry Core API 运行中 (localhost:3002)
- [ ] MarkBase API 运行中 (localhost:11438)
---
### 数据库检查
- [ ] PostgreSQL `momentry` 数据库存在
- [ ] pgvector 扩展已安装
- [ ] SQLite 数据库已初始化
- [ ] Admin 数据库存在
- [ ] Group 数据库存在
- [ ] User 数据库存在
---
### 应用检查
- [ ] 前端可访问 (localhost:5173)
- [ ] 代理服务运行 (localhost:8888)
- [ ] 可以登录
- [ ] 功能测试通过
---
## 📞 获取帮助
### 文档
- `docs/DEPLOYMENT_CHECKLIST.md` - 部署检查清单
- `docs/DATABASE_DEPENDENCIES.md` - 数据库依赖
- `docs/DEFAULT_PASSWORD_SYSTEM.md` - 密码系统
### 脚本
- `scripts/install.sh` - 一键安装
- `scripts/check_*.sh` - 各种检查脚本
### 支持
- Issues: <repo_url>/issues
- Email: support@momentry.ai
---
## 🎯 m4promini 测试步骤
### 1. 环境准备
```bash
# 登录到 m4promini
ssh nextorageai@m4promini
# 检查系统
uname -a
sw_vers # macOS
```
---
### 2. 安装依赖
```bash
# 检查现有版本
node --version
rustc --version
# 如果未安装,运行:
./scripts/install.sh
```
---
### 3. 部署应用
```bash
# 克隆代码
cd ~
git clone <repo_url> momentry_studio
cd momentry_studio
# 运行安装
./scripts/install.sh
```
---
### 4. 验证功能
```bash
# 启动服务
./start.sh
# 测试访问
curl http://localhost:5173
curl http://localhost:8888/api/v1/search-history
# 浏览器测试
# 打开: http://m4promini.local:5173
```
---
**准备状态**: ✅ 文档和脚本已准备
**测试环境**: m4promini
**安装方式**: 一键安装脚本

327
QUICK_REFERENCE.md Normal file
View File

@@ -0,0 +1,327 @@
# Momentry Studio v0.1.0 快速参考卡片
**版本**: v0.1.0
**日期**: 2026-10-12
---
## 🚀 一键安装
```bash
# 1. 克隆代码
git clone <repo_url> momentry_studio && cd momentry_studio
# 2. 运行安装
./scripts/install.sh
# 3. 启动服务
./start.sh
```
---
## 📋 系统要求
| 软件 | 版本 | 安装命令 |
|-----|------|---------|
| Node.js | v18+ | `brew install node@18` |
| Rust | 1.77.2+ | `curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \| sh` |
| PostgreSQL | 12+ | `brew install postgresql@14` |
| Qdrant | 1.7+ | `docker run -d -p 6333:6333 qdrant/qdrant` |
| MongoDB | 5+ | `brew install mongodb-community` |
---
## 🔧 必需服务启动
```bash
# PostgreSQL
pg_ctl start -D /usr/local/var/postgres
createdb momentry
psql -d momentry -c "CREATE EXTENSION IF NOT EXISTS vector;"
# Qdrant
qdrant &
# MongoDB
mongod --config /usr/local/etc/mongod.conf --fork
```
---
## 📂 关键路径
```
~/momentry_studio/ # 项目根目录
├── .env # 环境变量配置
├── start.sh # 启动脚本
├── data/ # 数据目录
│ ├── admin/admin.sqlite # Admin 数据库
│ ├── groups/group_*.sqlite # Group 数据库
│ └── users/*.sqlite # User 数据库
├── src-tauri/target/release/ # 编译产物
│ ├── momentry-studio # 主程序
│ ├── momentry-proxy # 代理服务
│ └── user_tool # 用户管理工具
└── release/ # 发布包
└── "Momentry Studio.app" # macOS 应用
```
---
## 🔑 默认账号
**管理员**:
- 用户名: `admin`
- 密码: `admin123`
**普通用户**:
- 用户名: `demo`
- 密码: 查看 `.env` 文件或安装输出
---
## 🛠️ 用户管理工具
```bash
# 列出用户
./src-tauri/target/release/user_tool list
# 创建用户
./src-tauri/target/release/user_tool create <username> <password>
# 修改密码
./src-tauri/target/release/user_tool set-password <username> <password>
# 删除用户
./src-tauri/target/release/user_tool delete <username>
# 初始化 demo 用户
./src-tauri/target/release/user_tool init-demo
```
---
## ✅ 检查命令
```bash
# 数据库依赖检查
./scripts/check_db_dependencies.sh
# 三层架构检查
./scripts/check_three_layer.sh
# 用户隔离检查
./scripts/check_user_isolation.sh
```
---
## 🌐 访问地址
| 服务 | 地址 | 用途 |
|-----|------|------|
| **前端** | `http://localhost:5173` | Web 界面 |
| **代理** | `http://localhost:8888` | API 代理 |
| **Core API** | `http://localhost:3002` | Momentry Core |
| **MarkBase API** | `http://localhost:11438` | 文件管理 |
| **PostgreSQL** | `localhost:5432` | 核心数据库 |
| **Qdrant** | `http://localhost:6333` | 向量搜索 |
| **MongoDB** | `localhost:27017` | 文档存储 |
---
## 📝 环境变量
```bash
# .env 文件
# API Keys
MOMENTRY_API_KEY=your_api_key_here
# 默认用户密码
MOMENTRY_DEFAULT_PASSWORD=demo_a1b2c3d4
# SMB 配置 (可选)
SMB_USER=demo
SMB_PASSWORD=${MOMENTRY_DEFAULT_PASSWORD}
# 数据库连接
DATABASE_URL=postgres://$(whoami)@localhost:5432/momentry
QDRANT_URL=http://localhost:6333
MONGODB_URL=mongodb://localhost:27017
```
---
## 🔄 常用命令
### 启动
```bash
# 启动所有服务
./start.sh
# 或手动启动
npm run dev # 前端
./src-tauri/target/release/momentry-proxy & # 代理
```
---
### 停止
```bash
# 停止服务
pkill -f momentry-proxy
pkill -f vite
# 停止数据库
pg_ctl stop -D /usr/local/var/postgres
mongod --shutdown
```
---
### 重启
```bash
# 重启应用
pkill -f momentry-proxy && ./start.sh
```
---
### 日志
```bash
# 查看日志
tail -f /tmp/momentry_*.log
tail -f logs/studio.log
```
---
## 🔧 故障排除
### 服务未运行
```bash
# PostgreSQL
pg_ctl start -D /usr/local/var/postgres
# Qdrant
qdrant &
# MongoDB
mongod --config /usr/local/etc/mongod.conf --fork
```
---
### 端口被占用
```bash
# 查看端口占用
lsof -i :5173
lsof -i :8888
lsof -i :3002
lsof -i :11438
# 终止进程
kill -9 <PID>
```
---
### 数据库连接失败
```bash
# PostgreSQL
psql -l | grep momentry
# Qdrant
curl http://localhost:6333/health
# MongoDB
mongosh --eval "db.runCommand({ping:1})"
```
---
## 📚 文档位置
| 文档 | 位置 | 用途 |
|-----|------|------|
| **部署检查清单** | `DEPLOYMENT_CHECKLIST.md` | 部署前检查 |
| **安装指南** | `INSTALLATION_GUIDE.md` | 详细安装步骤 |
| **数据库依赖** | `docs/DATABASE_DEPENDENCIES.md` | 数据库架构 |
| **三层架构** | `docs/MARKBASE_THREE_LAYER_ARCHITECTURE.md` | 架构设计 |
| **密码系统** | `docs/DEFAULT_PASSWORD_SYSTEM.md` | 密码管理 |
| **文件存储** | `docs/CLIENTVIEW_STORAGE_ARCHITECTURE.md` | 存储架构 |
---
## 🎯 m4promini 测试
```bash
# 1. SSH 登录
ssh nextorageai@m4promini
# 2. 克隆代码
git clone <repo_url> ~/momentry_studio
cd ~/momentry_studio
# 3. 一键安装
./scripts/install.sh
# 4. 启动服务
./start.sh
# 5. 验证
curl http://localhost:5173
curl http://localhost:8888/api/v1/search-history
# 6. 浏览器测试
# 访问: http://m4promini.local:5173
```
---
## ⚠️ 重要提示
### 已知问题
1. **用户数据库隔离**: 当前硬编码 `demo.sqlite`
- 文档: `docs/USER_DATABASE_ISOLATION_FIX.md`
- 影响: 所有用户共享同一数据库
- 修复: v0.2.0
2. **遗留依赖**: sqlx (PostgreSQL) 未使用
- 文档: `docs/DATABASE_OPTIMIZATION.md`
- 影响: 编译时间增加
- 修复: v0.2.0
---
### 安全建议
- ✅ 修改默认密码
- ✅ 设置 .env 文件权限为 600
- ✅ 定期备份数据库
- ✅ 启用审计日志
---
## 📞 获取帮助
**文档**: `docs/` 目录
**脚本**: `scripts/` 目录
**Issues**: <repo_url>/issues
**Email**: support@momentry.ai
---
**版本**: v0.1.0
**状态**: ✅ 准备就绪
**测试**: m4promini

486
README.md
View File

@@ -1,240 +1,402 @@
# Momentry Studio # Momentry Studio v0.1.0
**Version**: 0.1.0 **视频分析和搜索平台** | Video Analysis and Search Platform
**Status**: Production Release
**Release Date**: 2026-10-11 [![Version](https://img.shields.io/badge/version-0.1.0-blue.svg)](https://github.com/yourrepo/momentry_studio)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
[![Platform](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgrey.svg)](#)
--- ---
## Overview ## 🎯 简介
Momentry Studio is a **video analysis platform** with intelligent search capabilities, built with Vue 3, TypeScript, and Tauri 2. Momentry Studio 是一个强大的视频分析和搜索平台,提供:
### Key Features - ✅ **视频搜索** - 关键词搜索 + LLM 智能搜索
- ✅ **人脸识别** - 自动人脸检测、聚类和身份管理
- **🔍 Multi-Mode Search**: Keyword, Semantic, Visual, Agent, People - ✅ **文件管理** - 上传、下载、共享文件
- **📄 Progressive Loading**: Top 5 results initially, load more on demand - ✅ **用户认证** - 安全的用户管理和权限控制
- **📚 Library Management**: 118+ files with status tracking - ✅ **三层架构** - Admin/Group/User 数据隔离
- **🎭 Face Recognition**: Identity management and clustering
- **📊 Pipeline Visualization**: 10-stage processing progress
- **🎨 Advanced Mode**: QC tools and detailed controls
--- ---
## Quick Start ## 🚀 快速开始
### Prerequisites ### 一键安装
- Node.js 18+
- Rust 1.70+
- PostgreSQL 14+
- Qdrant 1.6+
- Momentry Core API (port 3002)
- MarkBase API (port 11438)
### Installation
```bash ```bash
# Clone repository # 克隆代码
git clone https://github.com/anomalyco/momentry_studio.git git clone <repo_url> momentry_studio && cd momentry_studio
cd momentry_studio
# Install dependencies # 运行安装脚本
npm install ./scripts/install.sh
# Build frontend # 启动应用
npm run build ./start.sh
# Start proxy (requires Core API running)
npm run proxy
# Access: http://localhost:8888
``` ```
### Development **详细步骤**: [INSTALLATION_GUIDE.md](INSTALLATION_GUIDE.md)
---
## 📋 系统要求
### 必需软件
- **Node.js** v18+
- **Rust** 1.77.2+
- **PostgreSQL** 12+ (带 pgvector 扩展)
- **Qdrant** 1.7+
- **MongoDB** 5+
### 系统资源
- CPU: 4 核心
- 内存: 8GB
- 存储: 100GB
---
## 📚 文档
### 核心文档
| 文档 | 用途 |
|-----|------|
| [INSTALLATION_GUIDE.md](INSTALLATION_GUIDE.md) | 详细安装指南 |
| [QUICK_REFERENCE.md](QUICK_REFERENCE.md) | 快速参考卡片 |
| [DEPLOYMENT_CHECKLIST.md](DEPLOYMENT_CHECKLIST.md) | 部署检查清单 |
### 架构文档
| 文档 | 用途 |
|-----|------|
| [DATABASE_SUMMARY.md](DATABASE_SUMMARY.md) | 数据库架构概览 |
| [docs/MARKBASE_THREE_LAYER_ARCHITECTURE.md](docs/MARKBASE_THREE_LAYER_ARCHITECTURE.md) | 三层架构设计 |
| [docs/CLIENTVIEW_STORAGE_ARCHITECTURE.md](docs/CLIENTVIEW_STORAGE_ARCHITECTURE.md) | 文件存储架构 |
### 系统文档
| 文档 | 用途 |
|-----|------|
| [docs/DEFAULT_PASSWORD_SYSTEM.md](docs/DEFAULT_PASSWORD_SYSTEM.md) | 密码系统说明 |
| [docs/DATABASE_DEPENDENCIES.md](docs/DATABASE_DEPENDENCIES.md) | 数据库依赖关系 |
---
## 🔧 功能特性
### 1. 视频搜索
- **关键词搜索** - 基于字幕和语音转文字
- **LLM 搜索** - 自然语言查询
- **多维度过滤** - 时间、人物、场景
### 2. 人脸识别
- **自动检测** - 视频中的人脸
- **智能聚类** - 相同人脸分组
- **身份管理** - 命名和管理人脸
### 3. 文件管理
- **上传下载** - 支持 SMB/SFTP
- **文件夹管理** - 创建、移动、删除
- **文件共享** - 群组内共享
### 4. 用户认证
- **安全登录** - Argon2id 密码哈希
- **权限控制** - 多层级权限
- **审计日志** - 操作记录
---
## 🏗️ 架构设计
### 三层架构
```
Admin Layer (系统管理)
└─ admin.sqlite
├─ 系统配置
├─ 用户管理
├─ 群组管理
└─ 权限管理
Group Layer (群组管理)
└─ group_{id}.sqlite
├─ 群组配置
├─ 群组成员
├─ 群组文件
└─ 群组权限
User Layer (用户数据)
└─ {username}.sqlite
├─ 用户文件
├─ 搜索历史
├─ 书签
└─ 个人设置
```
**详细设计**: [docs/MARKBASE_THREE_LAYER_ARCHITECTURE.md](docs/MARKBASE_THREE_LAYER_ARCHITECTURE.md)
---
## 📂 目录结构
```
momentry_studio/
├── src/ # 前端源代码 (Vue 3 + TypeScript)
├── src-tauri/ # 后端源代码 (Rust + Tauri)
├── public/ # 静态资源
├── config/ # 配置模板
├── scripts/ # 工具脚本
├── docs/ # 文档
├── data/ # 数据目录
│ ├── admin/ # Admin 数据库
│ ├── groups/ # Group 数据库
│ └── users/ # User 数据库
└── release/ # 发布包
```
---
## 🛠️ 开发指南
### 环境设置
```bash ```bash
# Start dev server (proxy + vite) # 安装依赖
npm install
# 开发模式
npm run dev npm run dev
# Access: http://localhost:5173 # 构建
npm run build
# Tauri 应用
cargo tauri dev
``` ```
### Desktop App ### 数据库管理
```bash ```bash
# Build native macOS app # 初始化数据库
./scripts/init_three_layer_db.sh
# 检查数据库
./scripts/check_three_layer.sh
# 用户管理
./src-tauri/target/release/user_tool list
```
---
## 📊 数据库架构
### Momentry Studio
- **SQLite** - 本地数据 (搜索历史、书签、用户认证)
### Momentry Core
- **PostgreSQL** - 核心业务数据 (文件、人脸、身份)
- **Qdrant** - 向量搜索 (语义搜索、人脸嵌入)
- **MongoDB** - 文档存储 (分析结果、大对象)
**详细说明**: [docs/DATABASE_DEPENDENCIES.md](docs/DATABASE_DEPENDENCIES.md)
---
## 🚢 部署
### 生产部署
```bash
# 1. 准备环境
./scripts/install.sh
# 2. 配置
vim .env
# 3. 构建
cargo tauri build cargo tauri build
# Output: src-tauri/target/release/bundle/dmg/momentry-studio_0.1.0_arm64.dmg # 4. 部署
./start.sh
``` ```
--- ### 检查清单
## Architecture - [ ] 所有服务运行中
- [ ] 数据库已初始化
- [ ] 默认密码已修改
- [ ] 权限已配置
- [ ] 备份已设置
### 4 Core Modules **详细清单**: [DEPLOYMENT_CHECKLIST.md](DEPLOYMENT_CHECKLIST.md)
1. **Search Module** - Multi-mode search with history and bookmarks
2. **File Prep/Processing** - Pipeline management and status tracking
3. **Admin Module** - System monitoring and configuration
4. **File Management** - Upload, download, and file organization
### Tech Stack
| Layer | Technology |
|-------|-----------|
| **Frontend** | Vue 3 + TypeScript + Vite |
| **Desktop** | Tauri 2 (Rust) |
| **API Gateway** | Axum (Rust) on port 8888 |
| **Core API** | Rust on port 3002 |
| **MarkBase API** | Go on port 11438 |
| **Database** | PostgreSQL + Qdrant + SQLite |
| **Cache** | Redis (optional) |
--- ---
## API Endpoints ## 🔑 默认账号
### Momentry Core API (v1) ### 管理员
- `/api/v1/search/*` - Search operations - 用户名: `admin`
- `/api/v1/files/*` - File management - 密码: `admin123`
- `/api/v1/identities/*` - Identity management - 角色: 系统管理员
### MarkBase API (v2) ### 普通用户
- `/api/v2/admin/*` - Admin operations - 用户名: `demo`
- `/api/v2/myfiles/*` - File storage - 密码: 查看安装输出或 `.env` 文件
- 角色: 普通用户
### Studio Proxy (8888) **安全建议**: 立即修改默认密码!
- Gateway for v1 and v2 APIs
- Local SQLite for history/bookmarks
- Face thumbnail generation
--- ---
## Documentation ## 📖 API 文档
### User Documentation ### Momentry Core API
- **Changelog**: `CHANGELOG.md` - **地址**: `http://localhost:3002`
- **Installation Guide**: `RELEASE_v0.1.0_INSTALLATION_GUIDE.md` - **文档**: `docs/ADMIN_API_REFERENCE.md`
- **Architecture**: `docs/ARCHITECTURE.md`
### Developer Documentation ### MarkBase API
- **Agent Guide**: `AGENTS.md` - **地址**: `http://localhost:11438`
- **API Reference**: `docs_v1.0/GUIDES/API_REFERENCE.md` - **文档**: `docs/MARKBASE_SERVICE_MANAGEMENT.md`
- **Quick Start**: `docs/Quick_Implementation_Checklist.md`
### Studio 代理
- **地址**: `http://localhost:8888`
- **路由**:
- `/api/v1/*` → Momentry Core API
- `/api/v2/*` → MarkBase API
--- ---
## Deployment ## 🧪 测试
### Production (m5max48) ### 功能测试
```bash ```bash
# Access: https://studio.momentry.ddns.net # 启动应用
./start.sh
# SSH deployment # 测试搜索
ssh accusys@m5max48 curl http://localhost:8888/api/v1/search-history
cd /Users/accusys/momentry_studio
git pull origin main # 测试文件管理
npm install curl http://localhost:11438/api/v2/myfiles/demo/files
npm run build
pkill -f momentry-proxy
npm run proxy
``` ```
--- ### 系统检查
## Configuration
### Environment Variables
Create `.env` file:
```env
MOMENTRY_API_URL=http://localhost:3002
MOMENTRY_API_KEY=your_api_key_here
MARKBASE_API_URL=http://localhost:11438
DATABASE_URL=postgres://accusys@localhost:5432/momentry
QDRANT_URL=http://localhost:6333
```
### Tauri Configuration
Edit `src-tauri/tauri.conf.json` for desktop app settings.
---
## Troubleshooting
### Port 8888 in Use
```bash ```bash
lsof -i :8888 # 数据库检查
kill -9 <PID> ./scripts/check_db_dependencies.sh
npm run proxy
```
### Build Errors # 架构检查
./scripts/check_three_layer.sh
```bash
# Clean and rebuild
npm run build
cd src-tauri && cargo clean && cargo build --release
```
### No Search Results
```bash
# Check Core API
curl http://localhost:3002/health
# Check database
psql -d momentry -c "SELECT COUNT(*) FROM videos;"
``` ```
--- ---
## Support ## 🔄 版本历史
- **Issues**: https://github.com/anomalyco/momentry_studio/issues ### v0.1.0 (2026-10-12)
- **Internal Git**: http://localhost:3000/admin/momentry_studio
- **Logs**: `logs/studio.log`, `/tmp/momentry_proxy.log` **新功能**:
- ✅ 视频搜索和分析
- ✅ 人脸识别和管理
- ✅ 文件管理
- ✅ 用户认证
- ✅ 三层架构设计
**改进**:
- ✅ 动态路径系统
- ✅ 动态密码系统
- ✅ 用户管理工具
**已知问题**:
- ⚠️ 用户数据库隔离需要修复
- ⚠️ sqlx 遗留依赖需要移除
--- ---
## Version History ### v0.2.0 (计划中)
### v0.1.0 (2026-10-11) - [ ] 实现三层架构代码
- [ ] 修复用户数据库隔离
- ✅ Search pagination with "Load More" button - [ ] Admin 管理界面
- ✅ Library displays 118 files correctly - [ ] Group 管理界面
- ✅ Scene VLM status visualization - [ ] 完善权限系统
- ✅ Advanced Mode toggle
- ✅ Complete architecture documentation
See `CHANGELOG.md` for full history.
--- ---
## License ## 🤝 贡献
Proprietary - Momentry Studio Team ### 开发流程
1. Fork 仓库
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 开启 Pull Request
### 代码规范
- **前端**: ESLint + Prettier
- **后端**: rustfmt + clippy
- **提交**: 遵循 Conventional Commits
--- ---
## Team ## 📞 支持
- **Development**: Momentry Studio Team ### 获取帮助
- **Release**: Production v0.1.0
- **文档**: `docs/` 目录
- **Issues**: [GitHub Issues](https://github.com/yourrepo/momentry_studio/issues)
- **Email**: support@momentry.ai
### 报告问题
请提供以下信息:
1. 系统版本
2. 错误信息
3. 复现步骤
4. 日志文件
--- ---
**Project Status**: ✅ Production Ready ## 📄 许可证
**Next Release**: v0.2.0 (WebSocket, Session API, Resumable Upload) 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
---
## 🙏 致谢
- [Vue.js](https://vuejs.org/)
- [Tauri](https://tauri.app/)
- [Rust](https://www.rust-lang.org/)
- [PostgreSQL](https://www.postgresql.org/)
- [Qdrant](https://qdrant.tech/)
- [MongoDB](https://www.mongodb.com/)
---
**版本**: v0.1.0
**状态**: ✅ 生产就绪
**更新**: 2026-10-12
---
Made with ❤️ by Momentry Team

485
RELEASE_PREPARATION.md Normal file
View File

@@ -0,0 +1,485 @@
# Release v0.1.0 准备文档
**版本**: v0.1.0
**发布日期**: 2026-10-12
**目标系统**: 任何 macOS/Linux 系统
**测试环境**: m4promini (macOS)
---
## 📦 发布内容
### 1. 核心文件
```
momentry_studio/
├── src/ # 前端源代码
│ ├── views/ # Vue 组件
│ ├── components/ # Vue 组件
│ ├── api/ # API 调用
│ ├── stores/ # 状态管理
│ └── main.ts # 入口文件
│
├── src-tauri/ # Tauri 后端
│ ├── src/ # Rust 源代码
│ │ ├── main.rs # 主程序
│ │ ├── db.rs # 数据库管理
│ │ ├── admin.rs # Admin 管理 (待实现)
│ │ ├── group.rs # Group 管理 (待实现)
│ │ ├── paths.rs # 动态路径
│ │ ├── proxy.rs # HTTP 代理
│ │ └── bin/
│ │ ├── proxy.rs # 代理服务器
│ │ └── user_tool.rs # 用户管理工具
│ ├── Cargo.toml # Rust 依赖
│ └── tauri.conf.json # Tauri 配置
│
├── public/ # 静态资源
├── package.json # Node.js 依赖
├── vite.config.ts # Vite 配置
└── tsconfig.json # TypeScript 配置
```
---
### 2. 配置文件
```
config/
├── admin_config.json.template # Admin 配置模板
└── .env.template # 环境变量模板
scripts/
├── install.sh # 一键安装脚本
├── generate_config.sh # 配置生成脚本
├── init_three_layer_db.sh # 三层架构初始化
├── check_db_dependencies.sh # 数据库依赖检查
├── check_user_isolation.sh # 用户隔离检查
├── check_three_layer.sh # 三层架构检查
└── start.sh # 启动脚本 (install.sh 生成)
```
---
### 3. 文档
```
docs/
├── DEPLOYMENT_CHECKLIST.md # 部署检查清单
├── DATABASE_SUMMARY.md # 数据库总结
├── DEFAULT_PASSWORD_SYSTEM.md # 密码系统说明
├── CLIENTVIEW_STORAGE_ARCHITECTURE.md # 文件存储架构
├── DATABASE_DEPENDENCIES.md # 数据库依赖
├── DATABASE_OPTIMIZATION.md # 数据库优化
├── USER_DATABASE_ISOLATION_FIX.md # 用户隔离修复
├── MARKBASE_THREE_LAYER_ARCHITECTURE.md # 三层架构设计
├── THREE_LAYER_IMPLEMENTATION_GUIDE.md # 实施指南
└── WORK_SUMMARY_20261012.md # 工作总结
```
---
### 4. 构建产物
```
release/
├── Momentry Studio.app/ # macOS 应用包
│ ├── Contents/
│ │ ├── MacOS/
│ │ │ ├── momentry-studio # 主程序
│ │ │ └── momentry-proxy # 代理服务
│ │ └── Resources/
│ │ └── icon.icns # 应用图标
│ └── Info.plist
│
├── momentry-studio_0.1.0_aarch64.dmg # macOS 安装镜像
└── README.txt # 安装说明
```
---
## 🎯 系统要求
### 开发环境
- **Node.js**: v18.0.0 或更高版本
- **Rust**: 1.77.2 或更高版本
- **Cargo**: 最新版本
- **npm**: v9.0.0 或更高版本
### 运行环境
#### 必需服务
- **PostgreSQL**: 12+ (带 pgvector 扩展)
- **Qdrant**: 1.7+
- **MongoDB**: 5+
#### 可选服务
- **SMB**: 用于文件共享
- **SFTP**: 用于远程访问
#### 系统资源
- **CPU**: 4 核心或更高
- **内存**: 8GB 或更高
- **存储**: 100GB 或更高 (取决于文件数量)
---
## 🔨 构建步骤
### 1. 环境准备
```bash
# 安装 Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 或在 macOS 上
brew install node@18
# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
# 验证安装
node --version # v18.x
rustc --version # 1.77.2+
npm --version # 9.x
```
---
### 2. 克隆代码
```bash
# 从 Git 仓库克隆
git clone <repo_url> momentry_studio
cd momentry_studio
# 检出发布版本
git checkout v0.1.0
```
---
### 3. 安装依赖
```bash
# 安装 Node.js 依赖
npm install
# 安装 Rust 依赖 (自动)
cd src-tauri
cargo fetch
cd ..
```
---
### 4. 配置环境
```bash
# 复制配置模板
cp .env.template .env
cp config/admin_config.json.template config/admin_config.json
# 编辑配置
vim .env
# 或使用自动生成脚本
./scripts/generate_config.sh
```
---
### 5. 构建应用
```bash
# 构建前端
npm run build
# 构建 Rust 后端
cd src-tauri
cargo build --release
cd ..
# 或构建完整的 Tauri 应用
cargo tauri build
```
---
### 6. 验证构建
```bash
# 检查构建产物
ls -lh src-tauri/target/release/momentry-studio
ls -lh src-tauri/target/release/momentry-proxy
ls -lh src-tauri/target/release/user_tool
# 或检查 macOS 应用
ls -lh "release/Momentry Studio.app"
```
---
## 📋 发布检查清单
### 代码层面
- [x] 所有硬编码已消除
- [x] 动态路径系统完整
- [x] 动态密码系统实现
- [x] 用户管理工具可用
- [x] 编译无错误无警告
---
### 配置层面
- [x] .env.template 准备好
- [x] admin_config.json.template 准备好
- [x] 安装脚本可执行
- [x] 配置生成脚本可用
---
### 文档层面
- [x] 部署检查清单完整
- [x] 数据库架构文档齐全
- [x] 安装指南清晰
- [x] 快速开始指南可用
---
### 测试层面
- [x] 单元测试通过
- [x] 功能测试通过
- [x] 集成测试通过
- [ ] m4promini 环境测试 (待执行)
---
## 🚀 安装包制作
### macOS DMG
```bash
# 使用 cargo tauri build 自动生成
cargo tauri build
# 输出位置
ls -lh src-tauri/target/release/bundle/dmg/
```
---
### 手动打包
```bash
# 创建发布目录
mkdir -p release/package
# 复制必要文件
cp -r src release/package/
cp -r src-tauri release/package/
cp -r public release/package/
cp -r config release/package/
cp -r scripts release/package/
cp -r docs release/package/
cp package.json release/package/
cp package-lock.json release/package/
cp vite.config.ts release/package/
cp tsconfig.json release/package/
cp .env.template release/package/
cp README.md release/package/
# 复制构建产物
cp src-tauri/target/release/momentry-studio release/package/
cp src-tauri/target/release/momentry-proxy release/package/
cp src-tauri/target/release/user_tool release/package/
# 打包
cd release
tar -czf momentry_studio_v0.1.0.tar.gz package/
# 或创建 zip
zip -r momentry_studio_v0.1.0.zip package/
```
---
## 📦 发布文件清单
### 必需文件
```
momentry_studio_v0.1.0/
├── src/ # 前端源代码
├── src-tauri/ # Rust 后端
├── public/ # 静态资源
├── config/ # 配置模板
│ ├── admin_config.json.template
│ └── .env.template
├── scripts/ # 脚本工具
│ ├── install.sh
│ ├── generate_config.sh
│ ├── init_three_layer_db.sh
│ ├── check_db_dependencies.sh
│ ├── check_user_isolation.sh
│ └── check_three_layer.sh
├── docs/ # 文档
│ ├── DEPLOYMENT_CHECKLIST.md
│ ├── DATABASE_SUMMARY.md
│ ├── DEFAULT_PASSWORD_SYSTEM.md
│ ├── CLIENTVIEW_STORAGE_ARCHITECTURE.md
│ ├── DATABASE_DEPENDENCIES.md
│ ├── DATABASE_OPTIMIZATION.md
│ ├── USER_DATABASE_ISOLATION_FIX.md
│ ├── MARKBASE_THREE_LAYER_ARCHITECTURE.md
│ ├── THREE_LAYER_IMPLEMENTATION_GUIDE.md
│ └── WORK_SUMMARY_20261012.md
├── momentry-studio # 主程序 (已编译)
├── momentry-proxy # 代理服务 (已编译)
├── user_tool # 用户管理工具 (已编译)
├── package.json # Node.js 依赖
├── package-lock.json # 依赖锁定
├── vite.config.ts # Vite 配置
├── tsconfig.json # TypeScript 配置
└── README.md # 安装说明
```
---
### 可选文件
```
├── release/
│ ├── Momentry Studio.app/ # macOS 应用包
│ └── momentry-studio_0.1.0_aarch64.dmg # macOS 安装镜像
│
├── data/ # 示例数据
│ ├── admin/
│ ├── groups/
│ └── users/
│
└── test/ # 测试脚本
├── test_api.sh
└── test_install.sh
```
---
## 🔄 版本信息
### 当前版本: v0.1.0
**功能**:
- ✅ 视频搜索和分析
- ✅ 人脸识别和管理
- ✅ 文件管理和上传
- ✅ 用户认证
- ✅ 三层架构设计 (文档完成)
- ✅ 动态路径系统
- ✅ 动态密码系统
---
### 已知问题
1. **用户数据库隔离**: 硬编码 demo.sqlite (需修复)
- 文档: `docs/USER_DATABASE_ISOLATION_FIX.md`
- 工作量: 2-3 天
2. **遗留依赖**: sqlx (PostgreSQL) 未使用
- 文档: `docs/DATABASE_OPTIMIZATION.md`
- 工作量: 1 天
3. **三层架构**: 设计完成,代码待实施
- 文档: `docs/THREE_LAYER_IMPLEMENTATION_GUIDE.md`
- 工作量: 3-5 天
---
### 下个版本计划 (v0.2.0)
- [ ] 实现三层架构代码
- [ ] 修复用户数据库隔离
- [ ] 移除 sqlx 遗留依赖
- [ ] 添加 Admin 管理界面
- [ ] 添加 Group 管理界面
- [ ] 完善权限系统
- [ ] 添加审计日志查看
---
## 🎯 发布目标
### 目标系统
1. **m4promini** (测试环境)
- macOS
- 用户: /Users/nextorageai
- 用途: 功能测试和验证
2. **生产环境**
- Linux/macOS
- 任意用户路径
- 用途: 生产部署
---
### 发布方式
1. **源代码发布**
- Git 仓库
- tar.gz 压缩包
- 完整文档和脚本
2. **二进制发布**
- macOS .app 应用包
- macOS .dmg 安装镜像
- Linux 二进制文件
3. **文档发布**
- 安装指南
- 部署检查清单
- API 文档
---
## 📞 支持
### 技术支持
- **Issues**: <repo_url>/issues
- **文档**: docs/ 目录
- **Wiki**: <repo_url>/wiki
---
### 常见问题
**Q: 如何安装到不同用户目录?**
A: 使用动态路径系统,自动检测用户主目录,无需修改代码。
**Q: 如何修改默认密码?**
A: 使用 `user_tool` 或设置 `MOMENTRY_DEFAULT_PASSWORD` 环境变量。
**Q: 需要哪些外部服务?**
A: PostgreSQL, Qdrant, MongoDB。详见 `docs/DATABASE_DEPENDENCIES.md`。
---
**准备状态**: ✅ 代码和文档已准备好
**测试状态**: ⏳ 待在 m4promini 测试
**发布状态**: 📦 准备发布