跳转到内容

生产部署清单

这份清单用于上线前验收。字段含义查 配置索引,部署步骤查 Docker ComposeHelm

检查项验收标准
配置校验synctv config validate --strict 通过。
JWT secretjwt.secret 来自 secret 或环境变量,不是示例值。
OPAQUE setup secretsecurity.opaque_server_setup_secret 已生成、备份,并跨重启保持不变。
凭据加密 keysecurity.credential_encryption_key 是 64 个十六进制字符,已备份。
Root 密码bootstrap.root_passwordSYNCTV_BOOTSTRAP_ROOT_PASSWORD 没有提交到 Git。
PostgreSQL使用持久化存储。
数据库备份至少完成一次可恢复备份。
Migration启动日志或 synctv db status 显示 migration 状态正常。
Readiness/health/ready 返回成功。
TLS公网入口使用 HTTPS。
Managementmanagement gRPC 不暴露给普通公网用户。
检查项验收标准
HTTP 入口反向代理或 Ingress 支持 WebSocket upgrade。
CORS前端和 API 不同 origin 时,server.cors_allowed_origins 只包含真实 origin。
可信代理server.trusted_proxies 只包含你控制的代理网段。
gRPC对外暴露 gRPC 时,HTTP 和 gRPC 使用独立 Service/Ingress。
Metricsmetrics listener 有认证,且不直接暴露公网。
STUN/RTMP启用内置 STUN 或直播时,已放行对应 UDP/TCP 端口。
检查项验收标准
Redis生产环境已配置 Redis;多副本必须配置 Redis。
Redis key prefixredis.key_prefix 不与测试、预发或其他生产环境共用。
日志日志能被现有日志系统采集和检索。
指标已接入 Prometheus 兼容采集端,并按 指标目录 配置告警。
容量已估算 WebSocket 连接数、数据库连接数、Redis、代理带宽和直播流量。
功能验收标准
WebAuthn/passkeywebauthn.rp_idwebauthn.rp_origin 与真实 HTTPS 入口匹配。
邮件SMTP 配置完成,并用 synctv settings test-email 验证。
OAuth2redirectUrl 与第三方平台注册值一致。
Provider 凭据凭据通过 secret 或受控管理流程写入,不出现在仓库。
Slice cache 文件后端缓存目录有容量规划和清理策略。
直播 HLS单机已确认本地存储;多副本已选择 publisher-node proxy、shared_file 或 OSS。
集群模式所有副本共享 PostgreSQL、Redis、redis.key_prefixcluster.secret
OpenAPI已决定生产是否暴露 /swagger-ui//api-docs/openapi.json
Terminal window
synctv config validate --strict
synctv db status
curl -fsS http://localhost:8080/health/ready
Terminal window
docker compose config
docker compose up -d
docker compose ps
docker compose logs --tail=100 synctv
Terminal window
helm lint ./helm/synctv
helm template synctv ./helm/synctv --values values.yaml
kubectl -n synctv rollout status deploy/synctv
kubectl -n synctv get pods
检查项验收标准
数据库备份升级前已完成 PostgreSQL 备份。
Secret 保留目标版本继续使用同一组生产 secret。
测试环境目标版本已在测试环境完成启动、migration、登录、房间读写和 Provider 访问。
滚动更新server.shutdown_drain_timeout_seconds 小于 Kubernetes termination grace period。
回滚已确认回滚版本、数据库状态和配置文件来源。