noelorin
1a54286d69
feat: add runtime config, room distributor override, user management & UI polish
...
This commit adds multiple major features and improvements:
1. Add runtime config API with save/reset capabilities
2. Implement per-room distributor override with global fallback
3. Add user management page and inline user controls
4. Update auth policy with admin/root permissions
5. Refine frontend navigation and error boundary
6. Update static assets and build system
7. Add CDN/SRS/Cloudflare config apply logic
2026-08-23 19:48:32 +08:00
noelorin
5b7edcac5c
feat(web): single WHIP trunk publish + 4-mode watch (srs-hls/whep/cf/cdn)
2026-08-23 15:19:16 +08:00
noelorin
077226df4c
refactor(manage): 对齐 GOSpeak 壳层拆分管理页 + 清理重复流程
...
- 从 919 行单文件拆为 8 模块:ManageShell/ManageOverview/ManageRooms/ManagePermissions/ManageSystem/ManageUsersInline/constants/manageNav
- 主入口 web/src/app/routes/manage.tsx 80 行仅作状态与组合,去掉与 /users 重复的用户内嵌 tab(保留权限/房间/概览/系统)
- manageNav 引入权限过滤 MANAGE_TABS,对齐 GOSpeak 的 manageNav + ManageShell 壳层思路
- 忽略规则修正:server -> /server 避免误吞 internal/server,新增 .shots/ 与 web/shot*.mjs
- 新增 playwright 截图链路(devDep),配套更新 pnpm-lock
2026-08-21 07:56:33 +08:00
noelorin
46a6bd02d9
feat: 接入 sync-live 后端重构,前端全面对齐新协议与接口
...
- proto: live_sfu.proto -> sync_live.proto (synclive.v1/SyncLive),重生成 gen/sync_live.*
- module: example.com/live-sfu -> sync-live,go.mod/go.sum 同步
- 后端: 新增 internal/room (role/member/room/service/store/permission),manage 治理面 internal/server/manage.go,auth(jwt/policy) 与 gateway/server 重构,适配 token_type/access+refresh 与 HttpOnly Cookie
- 前端: types/api/auth/permissions 全量对齐,rooms 优先 query 分页、manage 创建,login 双模式+角色降级,用户管理封禁/解封,新增 /manage 5 Tab 治理页,主题与路由同步
- 构建: web 产物直出 internal/server/static,role 字符串序列化兼容数字,libsql 链接告警忽略
验证: web tsc --noEmit / go test / vite build / go build 常驻联调通过 (role:"creator" / manage/overview/rooms/query/create/members/refresh)
2026-08-21 00:31:51 +08:00
noelorin
ffc69d691c
feat(web): acid redesign + hero mouse parallax
...
- 纯黑/冷白双主题 + 100% 饱和电光酸色(lime/cyan/magenta),强对比冲击
- 氛围层:网格 + 双色光晕 + 扫描线 + 噪点;HUD 边角 / 跑马灯 / 信号条 / 滚动入场
- hero 鼠标视差:ghost 水印反向漂移 + 标题/deck/统计分层位移,rAF+lerp 平滑,reduced-motion 降级
- 修复整页刷新时房间列表鉴权竞态、推流页右栏拉伸空白
- vite dev 根路径服务 + /api /rtc /live 代理(build 仍落 /static/)
2026-08-20 16:15:54 +08:00
noelorin
340296f6cc
feat(web): rewrite frontend as SolidJS + Tailwind v4 SPA with chat UI
...
Replace the legacy vanilla HTML/CSS/JS pages with a SolidJS single-page
app (TanStack Router/Query, Ark UI, Tailwind v4) and embed its build
output into the Go binary via //go:embed. SPA routes fall back to
index.html. Includes the room chat/danmaku panel, color picker and
broadcaster overlay on the watch/publish pages. Add web/node_modules
and local data to .gitignore.
2026-08-20 15:03:03 +08:00
noelorin
115b34dcd3
feat(auth): 基于 casbin 的登录与 RBAC 权限系统
...
- 引入 github.com/casbin/casbin/v2 实现 RBAC (model.conf + policy.csv)
- 角色: admin/publisher/viewer/guest,资源: config/room/user/srs,动作: read/list/publish/subscribe/stop/watch/manage
- JWT 登录 (golang-jwt/jwt/v5,bcrypt 存储,data/users.json 持久化,种子用户 admin/publisher/viewer)
- 中间件: HTTP AuthorizeMiddleware + gRPC Unary/Stream 拦截器,支持 Authorization Bearer/Cookie/Query/X-Token
- 新增 API: POST /api/auth/login|register|logout, GET /api/auth/me|users|check, POST /api/auth/users/role (Casbin 鉴权)
- 保护业务路由: /api/publish/subscribe/stop/rooms/room/*/events/srs/streams 及媒体代理 /rtc/v1/* /api/cf/*
- gRPC 契约新增 Login/Register/GetMe/ListUsers/UpdateUserRole (api/live_sfu.proto + gen)
- 前端 login.html + app.js 自动附加 Authorization,SSE 通过 ?token 传递,未登录自动跳转
- 配置: JWT_SECRET/JWT_TTL/CASBIN_MODEL/CASBIN_POLICY/AUTH_USER_FILE/ALLOW_REGISTER
- 集成 TursoDB 持久化与测试覆盖 (auth_test.go)
2026-08-19 16:42:17 +08:00
noelorin
c4a50b07c6
feat: live SFU fan-out demo (Cloudflare Realtime + SRS)
...
- protobuf/gRPC control plane (LiveSFU service, buf generated)
- Cloudflare Realtime as primary SFU, SRS as secondary backend
- WHIP/WHEP + Cloudflare Realtime media proxies (server injects credentials)
- room fan-out state with SSE; publish/watch frontend
2026-08-17 15:14:51 +08:00