Invidious:界面、媒体路径与运维责任
部署 Invidious:区分开发 Compose 与包含 companion 的生产组合
按文档准备三服务部署,分离密钥和持久数据,并在公开服务前验证的不只是首页响应。
你将学会
- 启动容器之前,先选对配置
- 有意识地配置私有连接和状态
- 明确验收和恢复条件
开始前需要
- 了解 HTTP 和容器基础
- 区分应用状态与媒体流量
解释依赖和信任边界,准备可核验的试验,并在真实范围内理解源码与模型证据。
先看结论
- 仓库根目录 Compose 与生产安装指南是不同资料。
- HMAC 和 companion 密钥用途不同,companion 两端配置必须匹配。
- 发布验收应覆盖状态恢复和播放,而不只是首页。
启动容器之前,先选对配置
根目录 docker-compose.yml 明确警告它面向开发,并从本地源码构建应用。这个双服务示例,不是安装指南中的生产方案;后者包含 Quay 应用镜像、companion 镜像和 PostgreSQL。指南也提醒,开发配置若没有配置 companion,视频播放将无法工作。
在受控环境中准备 Docker Engine 和 Compose V2,固定数据库初始化文件所依据的源码,并审阅下方引用的固定文档版本中的生产示例。文档使用可变的 latest 镜像标签;要使发布可复现,还需要记录并固定你实际验证过的镜像摘要。文章引用固定提交,不会自动让可变容器标签变得可复现。
有意识地配置私有连接和状态
应用需要 PostgreSQL 参数、表初始化、companion private_url、companion 密钥和 HMAC 密钥。文档要求分别生成密钥,配置说明要求 companion 密钥恰好十六个字符。companion 的服务端密钥应与这个 companion 密钥一致,而不是与另一个用途不同的 HMAC 签名密钥混用。数据库示例凭据也要在连接两端一致替换。
保留数据库卷和文档要求的 companion 缓存挂载。除非另有经过审阅的拓扑需求,否则数据库和 companion 端口应保持私有。简单方案把前端绑定到 127.0.0.1:3000,由边缘反向代理接入。domain、external_port 和 https_only 应准确描述该入口;设置 https_only 不能替代真正的 TLS 终止。
明确验收和恢复条件
先验证 Compose 语法,避免打印展开后的秘密,再在非生产试验中启动已审阅配置。分别检查数据库就绪、应用 stats 路由、一个允许播放的已知视频、偏好设置和受控账号状态恢复。stats 端点是服务探针,不能端到端证明 companion、上游访问与浏览器播放均正常。
变更前备份持久数据,并保留上一版应用和 companion 镜像摘要。数据库兼容性要与镜像回滚分开处理,应演练恢复而不是删除数据卷。固定文档给出了资源建议,但它们不是你的实际负载测量。本篇没有执行 Invidious 安装、密钥生成、数据库迁移或播放测试。
实施步骤
- 1
审阅固定安装指南中的生产 Compose。
- 2
选择已验证镜像摘要和私有服务连接。
- 3
替换示例凭据,保留数据库与缓存挂载。
- 4
验证配置,在受控环境测试并演练恢复。
可复制示例
# 仅在你已审阅的 Invidious 部署目录运行。
# 这些命令检查现有配置,不会安装或启动服务。
docker compose version
docker compose config --quiet
docker compose ps
curl --fail --max-time 10 http://127.0.0.1:3000/api/v1/stats常见问题
克隆仓库后,可以把根目录 Compose 直接当成生产指南吗?
不可以。根目录文件明确面向开发,固定安装文档另行给出了包含 companion 的生产组合。
stats 响应成功是否证明视频能播?
不能。还需要经过授权的端到端播放测试,以及独立的持久状态检查。
资料来源
- invidious/docker-compose.yml来源核查 2026-09-08
- invidious/config/config.example.yml来源核查 2026-09-08
- documentation/docs/installation.md来源核查 2026-09-08