跳至主内容
非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

Jellyfin Vue

Jellyfin Vue 是一个实验性的替代性 Jellyfin Web 客户端,基于 Vue.js 开发,可在浏览器中运行。

备注

Jellyfin Vue 并非计划替代主 Jellyfin Web 客户端,且功能尚不完整。

以下简明指南将帮助您部署自己的 Jellyfin Vue 实例。如果您符合以下任一情况:

  • 希望快速初次体验

  • 不确定是否需要自行部署实例

  • 无需进行超出用户自定义范围的全局行为修改

  • 已配置好 HTTPS 环境

建议直接使用我们的托管实例。更多信息请参阅 Jellyfin Vue 代码仓库

部署指南

注意

由于 Jellyfin Vue 仅是 Jellyfin 服务器的前端界面,以下所有操作均假设您已部署 Jellyfin 服务端。 若尚未部署,请先完成服务端配置

推荐方案:使用 Docker

  • 如未安装 Docker,请先遵循官方安装指南。建议同时学习 Compose 相关知识。

  • Docker Compose 现已随 Docker 捆绑安装,无需单独安装。建议卸载旧版 docker-compose

  • Docker Compose 中 version 键值已弃用,故下方示例不再包含此配置。

我们将以下列 docker-compose.yml 作为起点:

services:
jellyfin_vue:
container_name: jellyfin_vue
image: ghcr.io/jellyfin/jellyfin-vue:unstable
restart: always
ports:
- 8080:80
labels:
- 'com.centurylinklabs.watchtower.enable=true'

watchtower:
container_name: watchtower
image: ghcr.io/nicholas-fedor/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
TZ: Europe/Madrid
WATCHTOWER_CLEANUP: 1
WATCHTOWER_INCLUDE_RESTARTING: 1
WATCHTOWER_POLL_INTERVAL: 60
WATCHTOWER_LABEL_ENABLE: 1
# Needed so watchtower doesn't restart-loop when updating itself
restart: on-failure
success

只需在存放 docker-compose.yml 的目录中执行 docker compose up -d 即可完成部署。

此 Compose 文件将实现:

  • Jellyfin Vue 可通过运行容器的宿主机的 8080 端口访问

  • Watchtower(分支版本,原版已停止维护)负责将容器更新至代码仓库的最新提交版本。采用此方案的优势在于:

    • 当前稳定版尚未发布,仅存在未达质量标准的预发布版本,但已实现重大开发里程碑
    • 官方仅支持最新的 unstable 镜像。

在浏览器访问实例后,系统将提示添加服务器。您可使用自有服务器或我们的演示实例:https://demo.jellyfin.org/stable

备注

所需填写的服务器地址需相对于访问 Jellyfin Vue 的设备。例如:

  • Jellyfin 服务器位于 192.168.0.10
  • Jellyfin Vue 部署于同一服务器
  • 客户端地址为 192.168.0.20 此时应输入 http://192.168.0.10,而非 http://127.0.0.1http://localhost

关于服务器连接机制的更多说明,请参阅 Jellyfin Vue 代码库隐私声明

环境变量配置

以下示例展示如何在容器中通过向 jellyfin_vue 配置(位于前述 docker-compose.yml)添加键值来设置环境变量:

environment:
HISTORY_ROUTER_MODE: 1

请参阅可用的环境变量完整参考,在 Jellyfin Vue 的 wiki 中进一步根据您的喜好自定义 Jellyfin Vue。

使用您自己的 Web 服务器

由于 Jellyfin Vue 是一个单页面应用(SPA),您可以使用任何 Web 服务器来托管它:Apache、nginx(Jellyfin Vue Docker 镜像中使用的那个)、Traefik 等...

若您已配置好反向代理,且希望实现更复杂的配置(如通过子路径或子域名提供服务等超出本文档范围的操作),建议改用您自己的 Web 服务器托管 Jellyfin Vue,而非使用 Docker 镜像内置的 nginx 实例。

为实现此目的,请在上面展示的 docker-compose.yml 中的 jellyfin_vue 服务定义中:

  • 移除 ports 键。

  • 添加以下键,并将 _path_ 替换为您的 Web 服务器期望存放 Jellyfin Vue 资产的文件夹

network_mode: none
volumes:
- _𝘱𝘢𝘵𝘩_:/dest
# This makes the container do nothing and sleep forever,
# frontend will be copied to _𝘱𝘢𝘵𝘩_ and will be served by your web server
command: /bin/sh -c 'rm -rf /dest/* && cp -r . /dest && sleep infinity'

这种方法:

  • 上文所述,以无忧的方式保持客户端始终更新。

  • 如果您使用环境变量,它们仍然会被应用。

手动部署

注意

在首次使用这些方法之前,请确保您理解其含义。 Jellyfin Vue 不支持这些方法中的任何一种。

docker run

如果您不想使用 Docker Compose 或自动更新,但仍想使用 Docker,那么这个命令就足够了:

docker run -d -p 8080:80 ghcr.io/jellyfin/jellyfin-vue:unstable

从源代码/构建输出

信息

如果您只是想测试一个 Pull Request,这可能不是必需的。 请改为查看这些说明

危险

默认情况下,如果您无法先检查源代码,切勿信任官方渠道之外的任何人提供的任何资产。 它们可能会危害您的系统或跟踪您的活动!

由于 Jellyfin Vue 是一个 Web 应用程序,使用它只需要设置您自己的 Web 服务器并将其指向 Jellyfin Vue 的资产。您可以通过以下方式获取这些资产:

  • 通过从我们的源代码构建您自己的版本。该仓库的 wiki 提供了设置开发环境的说明。

  • 通过从 GitHub Actions 制品 获取它们。

    • 尽管这些制品是在我们仓库的 CI/CD 中构建的,但某些运行来自外部贡献者创建的 Pull Request,而这些贡献者可能并非善意的!
    • 所有由 GitHub Actions 生成的制品都带有来源证明
    • 我们的官方 Docker 镜像由 GitHub Actions 构建,整个过程透明且可审计。

其他文档

  • 关于 Jellyfin Vue 的其余文档可以在其 wiki 上找到。

  • 您可以查看 GitHub Packages (GHCR)(推荐)或 DockerHub 以获取所有带标签的 Docker 镜像。