快速开始
单机生产部署包含一个 SyncTV 进程、一个 PostgreSQL 和一个 Redis。Kubernetes 或多副本部署先完成单机闭环,再进入 Helm 部署 和 集群配置。
- Docker 和 Docker Compose 可用。
openssl和python3可用于生成环境文件。- 当前目录可以长期保存 Compose 文件、
.env.postgres、.env.redis、.env.synctv和数据卷。 - 已准备 root 用户密码。生产环境使用密码管理器生成。
-
创建目录并下载 Compose 文件:
Terminal window mkdir synctv-composecd synctv-composecurl -fsSLO https://raw.githubusercontent.com/zijiren233/synctv/next/docker-compose.ymlcurl -fsSLO https://raw.githubusercontent.com/zijiren233/synctv/next/.env.postgres.examplecurl -fsSLO https://raw.githubusercontent.com/zijiren233/synctv/next/.env.redis.examplecurl -fsSLO https://raw.githubusercontent.com/zijiren233/synctv/next/.env.synctv.examplemkdir -p scriptscurl -fsSL https://raw.githubusercontent.com/zijiren233/synctv/next/scripts/init-compose-env.sh -o scripts/init-compose-env.shchmod +x scripts/init-compose-env.sh -
生成
.env.postgres、.env.redis和.env.synctv:Terminal window ./scripts/init-compose-env.sh -
编辑
.env.synctv,至少设置 root 密码:SYNCTV_BOOTSTRAP_ROOT_PASSWORD=replace-with-a-strong-password -
检查 Compose 渲染结果:
Terminal window docker compose config -
启动服务:
Terminal window docker compose up -d
docker compose pscurl -fsS http://localhost:8080/health/ready成功后打开:
http://localhost:8080默认 root 用户名是 root。密码来自 .env.synctv 中的 SYNCTV_BOOTSTRAP_ROOT_PASSWORD。
必须保存的值
Section titled “必须保存的值”| 环境变量 | 用途 |
|---|---|
SYNCTV_JWT_SECRET | 签发 access token、refresh token 和 guest token |
SYNCTV_SECURITY_OPAQUE_SERVER_SETUP_SECRET | OPAQUE 密码认证的服务端长期 secret |
SYNCTV_SECURITY_CREDENTIAL_ENCRYPTION_KEY | 加密 Provider 凭据 |
SYNCTV_BOOTSTRAP_ROOT_PASSWORD | 首次创建 root 用户 |
| 现象 | 处理 |
|---|---|
docker compose config 提示变量缺失 | 确认已运行 ./scripts/init-compose-env.sh,并在当前目录保留 .env.postgres、.env.redis 和 .env.synctv。 |
/health/ready 失败 | 运行 docker compose logs -f synctv,先看第一条启动错误。 |
| 浏览器跨域错误 | 在 .env.synctv 中设置 SYNCTV_SERVER_CORS_ALLOWED_ORIGINS,只填写 origin。 |
| root 用户无法登录 | 确认数据库首次启动时已设置 SYNCTV_BOOTSTRAP_ROOT_PASSWORD,并查看启动日志中的 bootstrap 结果。 |
- 按 生产部署清单 补齐 TLS、备份、metrics 和告警。
- 需要解释 Compose 文件、端口和数据卷时,读 Docker Compose 部署。
- 本地源码开发见 开发指南。