SimpleWatch 是面向小范围熟人房间的自托管同步观影系统,支持受保护的 MP4 点播、家庭完整片库按需传输、Host 节目单、WebVTT 字幕、OBS WHIP 直播、多人麦克风语音、主持控制和独立音量调节。
- Node.js 24、pnpm 10、TypeScript
- Fastify、React、SQLite
- Caddy、tusd、MediaMTX、LiveKit
- Playwright、Vitest、FFmpeg
项目使用仓库内隔离的 Conda 环境,避免依赖全局 Node.js 或 pnpm:
conda env create --prefix .conda/envs/dev --file environment.yml
tools/environment/run-dev pnpm install --frozen-lockfile
tools/environment/run-dev pnpm env:check运行完整正式部署前门禁:
tools/environment/run-dev pnpm verifyapps/api:REST、WebSocket、鉴权、房间和媒体控制apps/web:管理端与观影端 PWAapps/worker:媒体探测、发布、SFTP 扫描和可靠任务apps/edge-agent:家庭完整片库只读扫描、任务领取和 tus 断点续传packages:配置、协议、媒体与同步共享包infra:本地和服务器 Compose、Caddy、LiveKit、MediaMTX 与 SSH 配置tools:环境、测试、发布和服务器运维脚本tests:安全、集成、RTC、浏览器和部署前测试
生产 Secret、管理员口令、Agent 机器令牌、SFTP 私钥和证书私钥不得提交到仓库。家庭 SimpleWatchLibrary 只存放完整影片;qBittorrent 下载目录与它物理隔离,Edge Agent 不访问下载器且只读挂载 Library。服务器发布前应根据运行手册生成独立 Secret、执行 SQLite 一致备份并保留可验证的回滚目标。
2026-10-24 达成点播同步阶段里程碑:用户分别在 Mac + iPad、Mac + iPhone 上测试,确认画面同步迅速、延时及卡顿明显改善,正常播放基本稳定。对应应用提交为 010dfc2,已通过 PR #9 合并;线上播放器构建标识为 961e5f022858。实施、上线及验收边界见点播同步重构记录。
这是点播正常播放链路的阶段验收,不代表全部功能或可用性已完成:退出/关房后的旧媒体请求、API 等待超时及跨标签页鉴权一致性仍待处理,Mac 间歇访问困难尚未完整定因;真实 OBS 直播也未验收。本轮里程碑归档只更新文档与本地诊断目录忽略规则,不改应用运行逻辑或线上服务。
本地综合门禁和服务器 IP 阶段核心链路已经通过;正式域名、可信证书、TURN、多网络真机和持续容量门禁状态以门禁矩阵为准。