4.2 KiB
4.2 KiB
## 🔧 隧道访问与视频播放修复 (11:00)
### 问题描述
在通过 FRP 隧道 (如
http://8.148.x.x:3002) 访问时发现:
1. 视频无法播放:后端返回 404 (Not Found)。
2. 发布页账号列表为空:后端返回 500 (Internal Server Error)。
### 解决方案
#### 1. 视频播放修复
- 后端 (main.py):这是根源问题。后端缺少 uploads 目录的挂载,导致静态资源无法访问。
python app.mount("/uploads", StaticFiles(directory=str(settings.UPLOAD_DIR)), name="uploads")
- 前端 (next.config.ts):添加反向代理规则,将 /outputs 和 /uploads 转发到后端端口 8006。
typescript { source: '/uploads/:path*', destination: 'http://localhost:8006/uploads/:path*', }, { source: '/outputs/:path*', destination: 'http://localhost:8006/outputs/:path*', }
#### 2. 账号列表 500 错误修复
- 根源:backend/app/core/paths.py 中的白名单缺少 weixin 和 kuaishou。
- 现象:当 PublishService 遍历所有平台时,遇到未在白名单的平台直接抛出 ValueError,导致整个接口崩溃。
- 修复:更新白名单。
python VALID_PLATFORMS: Set[str] = {"bilibili", "douyin", "xiaohongshu", "weixin", "kuaishou"}
### 结果
- ✅ 视频预览和历史视频均可正常播放。
- ✅ 发布页账号列表恢复显示。
🚀 Nginx HTTPS 部署 (11:30)
需求
用户在阿里云服务器上配置了 SSL 证书,需要通过 HTTPS 访问应用。
解决方案
提供了 Nginx 配置文件 nginx_vigent.conf,配置了:
- HTTP -> HTTPS 重定向。
- SSL 证书路径 (
/etc/letsencrypt/live/vigent.hbyrkj.top/...)。 - 反向代理 到本地 FRP 端口 (3002)。
- WebSocket 支持 (用于 Next.js 热更和通信)。
结果
- ✅ 用户可通过
https://vigent.hbyrkj.top安全访问。 - ✅ 代码自适应:前端
API_BASE为空字符串,自动适配 HTTPS 协议,无需修改代码。
🎨 UI 细节优化 (11:45)
修改
- 修改
frontend/src/app/layout.tsx中的 Metadata。 - 标题从
Create Next App改为ViGent。
结果
- ✅ 浏览器标签页名称已更新。
🚪 用户登录退出功能 (12:00)
需求
用户反馈没有退出的入口。
解决方案
- UI 修改:在首页和发布管理页面的顶部导航栏添加红色的“退出”按钮 (位于最右侧)。
- 逻辑实现:
onClick={async () => { if (confirm('确定要退出登录吗?')) { await fetch(`${API_BASE}/api/auth/logout`, { method: 'POST' }); window.location.href = '/login'; } }} - 部署:已同步代码并重建前端。
🚢 Supabase 服务部署 (16:10)
需求
由于需要多用户隔离和更完善的权限管理,决定从纯本地文件存储迁移到 Supabase BaaS 架构。
实施步骤
-
Docker 部署 (Ubuntu)
- 使用官方
docker-compose.yml。 - 端口冲突解决:
Moodist占用 4000 -> 迁移 Analytics 到 4004。code-server占用 8443 -> 迁移 Kong HTTPS 到 8444。- 自定义端口:Studio (3003), API (8008)。
- 使用官方
-
安全加固 (Aliyun Nginx)
- 双域名策略:
supabase.hbyrkj.top-> Studio (3003)api.hbyrkj.top-> API (8008)
- SSL:配置 Let's Encrypt 证书。
- 访问控制:为 Studio 域名添加
auth_basic(htpasswd),防止未授权访问管理后台。 - WebSocket:Nginx 配置
Upgrade头支持 Realtime 功能。
- 双域名策略:
-
数据库初始化
- 使用
backend/database/schema.sql初始化了users,social_accounts等表结构。
- 使用
下一步计划 (Storage Migration)
目前文件仍存储在本地磁盘,无法通过 RLS 进行隔离。 计划改造 LatentSync 流程:
- 后端集成 Supabase Storage SDK。
- 实现
Download (Storage) -> Local Process (LatentSync) -> Upload (Storage)闭环。 - 前端改为请求 Signed URL 进行播放。