Start Quickly
Bring up PostgreSQL, Redis, and SyncTV with Docker Compose, then verify the required production secrets.
SyncTV can run as a self-hosted single-node service or as a multi-node cluster. The documentation is organized around four workflows:
Start Quickly
Bring up PostgreSQL, Redis, and SyncTV with Docker Compose, then verify the required production secrets.
Understand Boundaries
Learn how HTTP/gRPC, management, metrics, Redis, PostgreSQL, provider proxying, and clustering fit together.
Understand Configuration
Every configuration page explains what the field controls, when to change it, and what operational risk it carries.
Deploy to Production
Review Helm, Ingress, split HTTP/gRPC services, metrics, Redis, HLS storage, and multi-replica constraints.
Security Defaults
JWT, OPAQUE, provider credential encryption, CORS, trusted proxies, rate limits, and WebAuthn have dedicated pages.
SyncTV configuration is built around three rules: keep stable secrets stable, inject sensitive values through secret mechanisms, and put runtime-owned files under a persistent data directory.
Key concepts:
jwt.secret: signs login tokens. Rotate it if it leaks; existing sessions may be invalidated.security.opaque_server_setup_secret: used by OPAQUE password authentication. Keep it stable across restarts and upgrades.security.credential_encryption_key: encrypts media provider credentials. Back it up securely before storing encrypted credentials.data_dir: root directory for runtime-owned files such as the management socket, logs, HLS files, and proxy slice cache.server.cors_allowed_origins: allowed browser origins for cross-origin API access.cluster.enabled: enables multi-node coordination. Redis and server.cluster_secret become required.SyncTV is licensed under the MIT License. See the repository LICENSE file for the full terms.