mirror of https://github.com/synctv-org/synctv
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.6 KiB
3.6 KiB
SyncTV
SyncTV 是使用 Rust 实现的实时同步观影平台,支持媒体 Provider 集成、直播、HTTP/gRPC API,以及面向 Kubernetes 的横向扩展部署。
核心能力
- 房间内同步播放,实时同步播放状态。
- 媒体 Provider 支持 Bilibili、Twitch、YouTube、抖音、TikTok、虎牙、斗鱼、AcFun、CCTV、Alist、Cloudreve、Emby/Jellyfin、FNOS、QNAP、Synology、Nextcloud、Seafile、TrueNAS、直链和直播来源。
- 支持 RTMP 推/拉流、HLS 和 HTTP-FLV 直播。
- 提供 HTTP REST、公开 gRPC、WebSocket、management gRPC、metrics、RTMP 和 STUN 等运行时入口。
- PostgreSQL 持久化业务数据,可选 Redis 作为共享状态、缓存、限流和集群协调层。
- 提供 Docker Compose 和 Helm 部署模板。
- 内置 management CLI,可选 OpenAPI/Swagger UI。
- 使用 Astro Starlight 构建中英文文档站。
讨论与贡献者
加入 SyncTV Telegram 讨论组,与用户和贡献者交流部署、运维、媒体 Provider、客户端开发和产品路线。
快速开始
开发环境需要完整源码仓库:
# 启动 PostgreSQL 和 Redis,然后用开发配置在本机运行 SyncTV。
make dev-serve
# 同时启动媒体、认证和对象存储等可选依赖。
make dev-stack
# 通过 Makefile dev 启动路径执行真实 CLI/curl provider smoke 测试。
make dev-smoke
生产 Compose 使用自动生成的 PostgreSQL、Redis 和应用 secret:
# 需要 Docker Compose 和 openssl。
make compose-init
# 启动前编辑 .env.synctv 中的 SYNCTV_BOOTSTRAP_ROOT_PASSWORD。
make compose-up
校验配置:
cargo +nightly run -p synctv --bin synctv -- config validate
可选 migration 预检。服务启动阶段也会自动执行 embedded SQLx migrations:
cargo +nightly run -p synctv --bin synctv -- db migrate
本地启动:
cargo +nightly run -p synctv --bin synctv -- serve
文档
完整文档见 docs.syncs.tv。
从 SyncTV App Releases 下载原生客户端,或通过支持的应用商店安装。
License
MIT。见 LICENSE。