用官方 Helm Chart 将自托管媒体服务器 Kyoo 部署到 Kubernetes 集群

Kyoo 拆分为多个可独立运行的服务,适合在 K8s 上编排部署

✓ 官方 Chart 一键部署✓ 多服务架构易编排 ✕ 多副本尚未完成✕ 仅单人开发维护

方案简介

Kyoo 是一个聚焦视频内容(电影、剧集与动漫)的自托管媒体服务器,定位为 Jellyfin 或 Plex 的替代品。该项目提供官方 Helm Chart,可直接将整套 Kyoo 部署到 Kubernetes 集群中。由于 Kyoo 在架构上被拆分为多个可以独立工作的服务(如转码器等),天然适合在 Kubernetes 上进行容器化编排。该方案适合已有 Kubernetes 集群、希望以低维护成本自建媒体库的用户:无需整理文件夹结构、无需手动编辑元数据,设置应在 5 分钟内完成。

注意:目前 Chart 的多副本(Multiple replicas)功能仍在开发中(WIP),当前更适合单副本部署。

亮点与能力

  • 动态转码:可转码到任意画质,支持 ABR(根据网络自动切换画质),包括原始画质。
  • 无需文件夹结构:命名混乱、全部堆在同一目录、奇怪的动漫命名都能开箱即用。
  • 视频预览缩略图:悬停进度条即可预览视频。
  • 片头/片尾检测:通过音频指纹(或章节标题匹配)自动检测片头与片尾。
  • 字幕支持:支持 PGS/VODSUB 与 SSA/ASS,可使用视频内嵌字体,Web 与 Chromecast 上亦可用。
  • OIDC 登录:可接入任何符合 OIDC 标准的服务(Google、Discord、Authelia 等)。
  • API 文档:提供 Swagger API,方便与其它服务集成。

组成与分工

  • Kyoo:自托管媒体服务器本体,负责媒体扫描、元数据管理、播放与转码,由多个可独立工作的服务组成。
  • Helm:Kubernetes 的包管理工具,通过官方 Helm Chart 简化 Kyoo 在集群中的安装与配置。
  • Kubernetes:容器编排平台,承载 Kyoo 的多个服务,便于统一管理与扩展。

前置要求

  • 一个可用的 Kubernetes 集群。
  • 集群中安装 Helm(用于安装官方 Chart)。
  • 如需启用硬件转码或 OIDC,参考仓库的 INSTALLING.md 安装文档。
  • 无需预先整理媒体文件夹结构。

实施步骤

1. 阅读 INSTALLING.md

仓库提供了 INSTALLING.md 安装文档,包含如何启动 Kyoo、启用 OIDC 或硬件转码的基础指南。

2. 使用官方 Helm Chart 部署

通过 Helm 将 Kyoo 部署到你的 Kubernetes 集群(具体命令与 values 配置以官方 Chart 文档为准)。

3. 指向媒体目录

Kyoo 不要求已有组织良好的媒体库,甚至可以直接指向下载目录。

4. 验证部署

启动后访问 Kyoo Web 客户端确认媒体被正确扫描与播放。

使用与配置要点

  • 客户端支持:Web、Android、Chromecast 已支持,Android TV 计划中。
  • 可通过 https://kyoo.zoriya.dev/swagger 查看 API 文档,用于集成第三方服务。
  • 部署后若媒体未被正确扫描(即使命名奇怪),按项目标准应视为 bug。
  • 翻译缺失可通过 Weblate 参与补充。

注意事项与常见问题

  • Helm Chart 的多副本(Multiple replicas)功能是 WIP,尚未完成。
  • Kyoo 没有插件系统,所有功能均为内置。
  • 观看列表同步(SIMKL)与离线下载功能在 v5 中尚未重新实现。
  • 项目由一人开发,可用客户端数量有限。
  • 遇到问题可在 Discord 或 GitHub 提问。

优缺点

  • ✓ 官方 Chart 一键部署
  • ✓ 多服务架构易编排
  • ✕ 多副本尚未完成
  • ✕ 仅单人开发维护

出处

本方案挖掘自开源项目 zoriya/Kyoo,方案内容与实施命令均来自其 README 原文。

方案出处
zoriya/Kyoo:A portable and vast media library solution.
2519 star A portable and vast media library solution.

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。