|
|
@@ -90,13 +90,27 @@
|
|
|
|
|
|
### 环境要求
|
|
|
|
|
|
-- Node.js >= 20.0.0
|
|
|
-- pnpm >= 8.0.0
|
|
|
-- MySQL 8.0+
|
|
|
+| 软件 | 版本要求 | 说明 |
|
|
|
+|------|----------|------|
|
|
|
+| Node.js | >= 20.0.0 | JavaScript 运行时 |
|
|
|
+| pnpm | >= 8.0.0 | 包管理器 |
|
|
|
+| Python | >= 3.8 | 视频发布服务 |
|
|
|
+| MySQL | 8.0+ | 数据库 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 📋 详细安装步骤
|
|
|
|
|
|
-### 安装 pnpm
|
|
|
+### 第一步:安装 Node.js
|
|
|
+
|
|
|
+下载并安装 Node.js 20+ 版本:https://nodejs.org/
|
|
|
+
|
|
|
+```bash
|
|
|
+# 验证安装
|
|
|
+node --version # 应显示 v20.x.x 或更高
|
|
|
+```
|
|
|
|
|
|
-如果尚未安装 pnpm,可以通过以下方式安装:
|
|
|
+### 第二步:安装 pnpm
|
|
|
|
|
|
```bash
|
|
|
# 方式一:使用 npm 安装(推荐)
|
|
|
@@ -113,71 +127,258 @@ iwr https://get.pnpm.io/install.ps1 -useb | iex
|
|
|
curl -fsSL https://get.pnpm.io/install.sh | sh -
|
|
|
|
|
|
# 验证安装
|
|
|
-pnpm --version
|
|
|
+pnpm --version # 应显示 8.x.x 或更高
|
|
|
```
|
|
|
|
|
|
-### 安装
|
|
|
+### 第三步:克隆项目
|
|
|
|
|
|
```bash
|
|
|
-# 克隆项目
|
|
|
git clone https://github.com/your-repo/multi-platform-media-manage.git
|
|
|
cd multi-platform-media-manage
|
|
|
+```
|
|
|
|
|
|
-# 安装依赖
|
|
|
+### 第四步:安装 Node.js 依赖
|
|
|
+
|
|
|
+```bash
|
|
|
+# 安装所有工作空间的依赖
|
|
|
pnpm install
|
|
|
```
|
|
|
|
|
|
-### 配置数据库
|
|
|
+> 此命令会自动安装 `client`、`server`、`shared` 三个工作空间的所有依赖。
|
|
|
+
|
|
|
+### 第五步:编译 shared 共享模块
|
|
|
|
|
|
-1. 创建 MySQL 数据库:
|
|
|
+**⚠️ 重要:首次运行或修改 shared 代码后必须执行此步骤!**
|
|
|
+
|
|
|
+```bash
|
|
|
+# 编译 shared 模块(client 和 server 都依赖它)
|
|
|
+cd shared
|
|
|
+pnpm build
|
|
|
+cd ..
|
|
|
+```
|
|
|
+
|
|
|
+或者使用快捷命令:
|
|
|
+
|
|
|
+```bash
|
|
|
+pnpm --filter @media-manager/shared build
|
|
|
+```
|
|
|
+
|
|
|
+> `shared` 模块包含 TypeScript 类型定义和常量,被 client 和 server 共同引用。
|
|
|
+
|
|
|
+### 第六步:配置数据库
|
|
|
+
|
|
|
+#### 6.1 创建 MySQL 数据库
|
|
|
|
|
|
```sql
|
|
|
+-- 登录 MySQL
|
|
|
+mysql -u root -p
|
|
|
+
|
|
|
+-- 创建数据库
|
|
|
CREATE DATABASE media_manager CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
+
|
|
|
+-- 退出
|
|
|
+exit
|
|
|
```
|
|
|
|
|
|
-2. 导入数据库结构:
|
|
|
+#### 6.2 导入数据库结构
|
|
|
|
|
|
```bash
|
|
|
mysql -u root -p media_manager < database/schema.sql
|
|
|
```
|
|
|
|
|
|
-3. 配置环境变量:
|
|
|
+#### 6.3 配置环境变量
|
|
|
|
|
|
```bash
|
|
|
+# 进入 server 目录
|
|
|
cd server
|
|
|
-cp env.example .env
|
|
|
-# 编辑 .env 文件,填入数据库配置
|
|
|
+
|
|
|
+# 复制环境变量模板
|
|
|
+cp env.example .env # Linux/macOS
|
|
|
+copy env.example .env # Windows CMD
|
|
|
```
|
|
|
|
|
|
-主要配置项:
|
|
|
+编辑 `.env` 文件,填入数据库配置:
|
|
|
+
|
|
|
+```env
|
|
|
+# 数据库配置
|
|
|
+DB_HOST=localhost
|
|
|
+DB_PORT=3306
|
|
|
+DB_USERNAME=root
|
|
|
+DB_PASSWORD=你的MySQL密码
|
|
|
+DB_DATABASE=media_manager
|
|
|
+
|
|
|
+# JWT 密钥(生产环境请更换为随机字符串)
|
|
|
+JWT_SECRET=your-super-secret-key-change-in-production
|
|
|
+
|
|
|
+# 加密密钥(必须是 32 个字符)
|
|
|
+ENCRYPTION_KEY=your-encryption-key-32-chars-long!
|
|
|
+```
|
|
|
+
|
|
|
+<details>
|
|
|
+<summary>📄 完整配置项说明(点击展开)</summary>
|
|
|
|
|
|
| 配置项 | 说明 | 默认值 |
|
|
|
|--------|------|--------|
|
|
|
+| `NODE_ENV` | 运行环境 | development |
|
|
|
+| `PORT` | 服务端口 | 3000 |
|
|
|
| `DB_HOST` | MySQL 主机 | localhost |
|
|
|
| `DB_PORT` | MySQL 端口 | 3306 |
|
|
|
| `DB_USERNAME` | 数据库用户名 | root |
|
|
|
| `DB_PASSWORD` | 数据库密码 | - |
|
|
|
| `DB_DATABASE` | 数据库名称 | media_manager |
|
|
|
| `JWT_SECRET` | JWT 密钥 | - |
|
|
|
-| `PORT` | 服务端口 | 3000 |
|
|
|
+| `JWT_ACCESS_EXPIRES_IN` | Access Token 过期时间 | 15m |
|
|
|
+| `JWT_REFRESH_EXPIRES_IN` | Refresh Token 过期时间 | 7d |
|
|
|
+| `ENCRYPTION_KEY` | 数据加密密钥(32字符) | - |
|
|
|
+| `UPLOAD_PATH` | 文件上传路径 | ./uploads |
|
|
|
+| `MAX_VIDEO_SIZE` | 最大视频大小 (MB) | 4096 |
|
|
|
+
|
|
|
+</details>
|
|
|
+
|
|
|
+### 第七步:安装 Python 服务(视频发布功能)
|
|
|
+
|
|
|
+Python 服务用于视频自动发布功能,**必须安装**。
|
|
|
+
|
|
|
+#### 7.1 进入 Python 目录
|
|
|
+
|
|
|
+```bash
|
|
|
+cd server/python
|
|
|
+```
|
|
|
+
|
|
|
+#### 7.2 创建虚拟环境
|
|
|
+
|
|
|
+**Windows (PowerShell)**:
|
|
|
+```powershell
|
|
|
+# 创建虚拟环境
|
|
|
+python -m venv venv
|
|
|
+
|
|
|
+# 激活虚拟环境
|
|
|
+.\venv\Scripts\Activate.ps1
|
|
|
+
|
|
|
+# 如果遇到执行策略错误,先运行:
|
|
|
+# Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
|
+```
|
|
|
+
|
|
|
+**Windows (CMD)**:
|
|
|
+```cmd
|
|
|
+python -m venv venv
|
|
|
+venv\Scripts\activate.bat
|
|
|
+```
|
|
|
+
|
|
|
+**Linux / macOS**:
|
|
|
+```bash
|
|
|
+python3 -m venv venv
|
|
|
+source venv/bin/activate
|
|
|
+```
|
|
|
+
|
|
|
+#### 7.3 安装 Python 依赖
|
|
|
+
|
|
|
+```bash
|
|
|
+# 确保虚拟环境已激活(提示符前有 (venv))
|
|
|
+pip install -r requirements.txt
|
|
|
+
|
|
|
+# 安装 Playwright 浏览器
|
|
|
+playwright install chromium
|
|
|
|
|
|
-详细配置说明请参考 `server/env.example` 文件。
|
|
|
+# Linux 服务器还需安装系统依赖
|
|
|
+# playwright install-deps chromium
|
|
|
+```
|
|
|
|
|
|
-### 启动开发服务
|
|
|
+#### 7.4 验证 Python 服务
|
|
|
+
|
|
|
+```bash
|
|
|
+# 启动 Python 服务(测试)
|
|
|
+python app.py
|
|
|
+
|
|
|
+# 看到以下输出表示成功:
|
|
|
+# ============================================================
|
|
|
+# 多平台视频发布服务
|
|
|
+# ============================================================
|
|
|
+# 服务地址: http://0.0.0.0:5005
|
|
|
+# ============================================================
|
|
|
+```
|
|
|
+
|
|
|
+按 `Ctrl+C` 停止服务。
|
|
|
+
|
|
|
+### 第八步:启动开发服务
|
|
|
+
|
|
|
+回到项目根目录:
|
|
|
+
|
|
|
+```bash
|
|
|
+cd ../.. # 从 server/python 返回根目录
|
|
|
+```
|
|
|
+
|
|
|
+#### 方式一:同时启动所有服务(推荐)
|
|
|
|
|
|
```bash
|
|
|
-# 同时启动前后端
|
|
|
pnpm dev
|
|
|
+```
|
|
|
+
|
|
|
+这会同时启动:
|
|
|
+- Node.js 后端服务 (端口 3000)
|
|
|
+- Electron 客户端 (端口 5173)
|
|
|
|
|
|
-# 或分别启动
|
|
|
-pnpm dev:server # 启动后端
|
|
|
-pnpm dev:client # 启动客户端(新终端)
|
|
|
+#### 方式二:分别启动服务
|
|
|
+
|
|
|
+**终端 1 - 启动后端**:
|
|
|
+```bash
|
|
|
+pnpm dev:server
|
|
|
```
|
|
|
|
|
|
-### 默认账号
|
|
|
+**终端 2 - 启动客户端**:
|
|
|
+```bash
|
|
|
+pnpm dev:client
|
|
|
+```
|
|
|
+
|
|
|
+**终端 3 - 启动 Python 服务**:
|
|
|
+```bash
|
|
|
+cd server/python
|
|
|
+.\venv\Scripts\Activate.ps1 # Windows
|
|
|
+# source venv/bin/activate # Linux/macOS
|
|
|
+python app.py
|
|
|
+```
|
|
|
+
|
|
|
+### 第九步:登录系统
|
|
|
+
|
|
|
+- **用户名**: `admin`
|
|
|
+- **密码**: `admin123`
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 🔄 日常开发流程
|
|
|
+
|
|
|
+```bash
|
|
|
+# 1. 进入项目目录
|
|
|
+cd multi-platform-media-manage
|
|
|
+
|
|
|
+# 2. 启动主服务
|
|
|
+pnpm dev
|
|
|
+
|
|
|
+# 3. 启动 Python 服务(新开终端)
|
|
|
+cd server/python
|
|
|
+.\venv\Scripts\Activate.ps1
|
|
|
+python app.py
|
|
|
+```
|
|
|
+
|
|
|
+## ❓ 常见问题
|
|
|
+
|
|
|
+### Q: 启动时报错 "Cannot find module '@media-manager/shared'"
|
|
|
+**A**: 需要先编译 shared 模块:
|
|
|
+```bash
|
|
|
+cd shared && pnpm build && cd ..
|
|
|
+```
|
|
|
+
|
|
|
+### Q: Python 服务启动报错
|
|
|
+**A**: 确保:
|
|
|
+1. 已激活虚拟环境(提示符前有 `(venv)`)
|
|
|
+2. 已安装所有依赖:`pip install -r requirements.txt`
|
|
|
+3. 已安装浏览器:`playwright install chromium`
|
|
|
+
|
|
|
+### Q: 数据库连接失败
|
|
|
+**A**: 检查 `server/.env` 文件中的数据库配置是否正确。
|
|
|
|
|
|
-- 用户名: `admin`
|
|
|
-- 密码: `admin123`
|
|
|
+### Q: Electron 窗口空白
|
|
|
+**A**: 确保后端服务已启动(端口 3000)。
|
|
|
|
|
|
## 📁 项目结构
|
|
|
|