Initial commit: Momentry Portal v0.1.0
This commit is contained in:
135
README.md
Normal file
135
README.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# Momentry Portal
|
||||
|
||||
基於 Tauri + Vue 3 的影片搜尋與身份管理桌面應用程式。
|
||||
|
||||
## 功能
|
||||
|
||||
1. **影片搜尋**: 智能搜尋影片內容
|
||||
2. **身份管理**: 管理全域身份、區域人物
|
||||
3. **臉部管理**: 查看和下載人物臉部截圖
|
||||
|
||||
## 環境需求
|
||||
|
||||
- Node.js 18+
|
||||
- Rust 1.70+
|
||||
- npm 或 yarn
|
||||
|
||||
## 安裝與執行
|
||||
|
||||
```bash
|
||||
# 進入專案目錄
|
||||
cd portal
|
||||
|
||||
# 安裝前端依賴
|
||||
npm install
|
||||
|
||||
# 開發模式 (同時啟動 Vue 和 Tauri)
|
||||
npm run tauri dev
|
||||
|
||||
# 或分別啟動
|
||||
npm run dev # 啟動 Vue dev server (port 1420)
|
||||
npm run tauri dev # 啟動 Tauri desktop app
|
||||
```
|
||||
|
||||
## 專案結構
|
||||
|
||||
```
|
||||
portal/
|
||||
├── src-tauri/ # Rust 後端
|
||||
│ ├── src/
|
||||
│ │ ├── main.rs # Tauri 入口
|
||||
│ │ ├── config.rs # 組態管理
|
||||
│ │ └── api/ # API 處理常式
|
||||
│ │ ├── search.rs # 搜尋 API
|
||||
│ │ ├── identity.rs # 身份管理 API
|
||||
│ │ ├── video.rs # 影片 API
|
||||
│ │ └── person.rs # 人物/臉部 API
|
||||
│ ├── Cargo.toml
|
||||
│ └── tauri.conf.json
|
||||
├── src/ # Vue 前端
|
||||
│ ├── main.ts
|
||||
│ ├── App.vue
|
||||
│ ├── router.ts
|
||||
│ ├── views/
|
||||
│ │ ├── HomeView.vue
|
||||
│ │ ├── SearchView.vue
|
||||
│ │ ├── IdentitiesView.vue
|
||||
│ │ └── VideoDetailView.vue
|
||||
│ └── assets/
|
||||
├── package.json
|
||||
├── vite.config.ts
|
||||
└── tailwind.config.js
|
||||
```
|
||||
|
||||
## API 環境
|
||||
|
||||
Portal 連接到 Momentry Core API Server,支援兩種環境:
|
||||
|
||||
### 環境配置
|
||||
|
||||
| 環境 | API URL | Port | Redis Prefix | Schema | 用途 |
|
||||
|------|---------|------|--------------|--------|------|
|
||||
| **生產環境** | `http://127.0.0.1:3002` | 3002 | `momentry:` | `public` | 正式數據 |
|
||||
| **開發環境** | `http://127.0.0.1:3003` | 3003 | `momentry_dev:` | `dev` | 測試數據 |
|
||||
|
||||
### 啟動 API Server
|
||||
|
||||
```bash
|
||||
# 生產環境 (port 3002, schema=public)
|
||||
cargo run --bin momentry -- server
|
||||
|
||||
# 開發環境 (port 3003, schema=dev)
|
||||
DATABASE_SCHEMA=dev cargo run --bin momentry_playground -- server
|
||||
```
|
||||
|
||||
### Portal 配置
|
||||
|
||||
Portal 預設連接開發環境 (3003),可透過環境變數切換:
|
||||
|
||||
```bash
|
||||
# 切換到生產環境
|
||||
export MOMENTRY_API_URL="http://127.0.0.1:3002"
|
||||
|
||||
# 啟動 Portal
|
||||
cd portal && npm run tauri dev
|
||||
```
|
||||
|
||||
### API Key
|
||||
|
||||
API Key 用於認證 Portal 與 API Server 的通訊:
|
||||
|
||||
```bash
|
||||
export MOMENTRY_API_KEY="muser_68600856036340bcafc01930eb4bd839_1774418104_97221b69"
|
||||
```
|
||||
|
||||
**注意**: 開發環境 (dev schema) 的 API Key hash 必須與 `dev.api_keys` 表中的資料一致。
|
||||
|
||||
### 檢查 API 連接
|
||||
|
||||
```bash
|
||||
# 檢查 API Server 狀態
|
||||
curl http://localhost:3003/api/v1/videos -H "X-API-Key: $MOMENTRY_API_KEY"
|
||||
|
||||
# 檢查 Schema
|
||||
psql -U accusys -d momentry -c "SELECT table_name FROM information_schema.tables WHERE table_schema = 'dev';"
|
||||
```
|
||||
|
||||
## 環境變數
|
||||
|
||||
可在 `src-tauri/src/config.rs` 中修改,或設定環境變數:
|
||||
|
||||
```bash
|
||||
export MOMENTRY_API_URL="http://127.0.0.1:3002"
|
||||
export MOMENTRY_API_KEY="your-api-key"
|
||||
```
|
||||
|
||||
## API 對應
|
||||
|
||||
| 前端功能 | Tauri Command | 對應 Momentry API |
|
||||
|---------|---------------|-------------------|
|
||||
| 搜尋 | `search_videos` | `POST /api/v1/n8n/search` |
|
||||
| 身份列表 | `list_identities` | `POST /api/v1/identities/search` |
|
||||
| 註冊身份 | `register_identity` | `POST /api/v1/person/:id/register` |
|
||||
| 影片列表 | `list_videos` | `GET /api/v1/videos` |
|
||||
| 影片臉部 | `get_video_faces` | `GET /api/v1/videos/:uuid/faces` |
|
||||
| 下載截圖 | `get_person_thumbnail` | `GET /api/v1/person/:id/thumbnail` |
|
||||
Reference in New Issue
Block a user