Web应用 活跃维护

feishin

jeffvli/feishin

一个现代自托管音乐播放器。

10095
Stars 标星
553
Forks 分支
48
Watchers 关注
288
Open Issues
TypeScript
主要语言
GPL-3.0
开源协议
60.4 MB
仓库大小
2 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:jeffvli/feishin
git clone https://github.com/jeffvli/feishin.git
git clone git@github.com:jeffvli/feishin.git
README.md development

机器翻译正文由机器翻译自项目原始文档(英文),排版经程序统一处理,可能存在偏差,请以原项目仓库为准。

飞信


重写 Sonixd。

功能

  • MPV 播放器后台
  • 网页播放器后台
  • 现代用户界面
  • 将播放记录发送到您的服务器
  • 智能播放列表编辑器(Navidrome)
  • 支持同步和非同步歌词
  • 请求功能 或 查看任务板

截图

入门指南

桌面版(推荐)

下载最新的桌面客户端。桌面客户端是使用 Feishin 的推荐方式。它支持 MPV 和网页播放器后台,并且包含内置的歌词获取功能。

macOS 注意事项

如果您使用的是运行 macOS 12(Monterey)或更高版本的设备,请在此查看关于如何将应用程序从隔离状态中移除的说明。

为了使媒体键正常工作,系统会提示您允许 Feishin 成为受信任的辅助功能客户端。允许后,您需要重新启动 Feishin 以使隐私设置生效。

Linux 注意事项

Feishin 可在 Flathub 获取。

或者,您也可以将其作为 Appimage 安装。我们提供了一个小型安装脚本,用于下载最新的 .AppImage,使其可执行,并下载桌面环境所需的图标。最后,它会生成一个 .desktop 文件,以将 Feishin 添加到您的应用程序启动器。

只需像这样运行安装程序:

dir=/your/application/directory
curl 'https://raw.githubusercontent.com/jeffvli/feishin/refs/heads/development/install-feishin-appimage' | sh -s -- "$dir"

该脚本也有一个选项,可以添加启动参数以在原生 Wayland 模式下运行 Feishin。请注意,这在 Electron 中是实验性的,因此不被官方支持。如果你想使用它,请改为运行此命令:

dir=/your/application/directory
curl 'https://raw.githubusercontent.com/jeffvli/feishin/refs/heads/development/install-feishin-appimage' | sh -s -- "$dir" wayland-native

它还提供了一个简单的卸载程序,用于删除下载的文件:

dir=/your/application/directory
curl 'https://raw.githubusercontent.com/jeffvli/feishin/refs/heads/development/install-feishin-appimage' | sh -s -- "$dir" remove

该条目应立即显示在您的应用程序启动器中。如果没有显示,只需注销,等待10秒钟,然后重新登录。您的桌面环境也可能提供重新加载条目的方法。

网页和 Docker

访问 https://feishin.vercel.app 使用 Feishin 的托管网页版。网页版客户端仅支持网页播放器后端。

Feishin 也可以作为 Docker 镜像使用。镜像通过 ghcr.io 托管,并可在 这里 查看。您可以使用以下命令运行容器:

# Run the latest version
docker run --name feishin -p 9180:9180 ghcr.io/jeffvli/feishin:latest

# Build the image locally
docker build -t feishin .
docker run --name feishin -p 9180:9180 feishin

Docker 组合

要通过 Docker Compose 安装,请使用以下代码片段。这在 Portainer 上也适用。

services:
    feishin:
        container_name: feishin
        image: 'ghcr.io/jeffvli/feishin:latest'
        restart: unless-stopped
        environment:
            - SERVER_NAME=jellyfin # pre-defined server name
            - SERVER_LOCK=true # When true AND name/type/url are set, only username/password can be toggled
            - SERVER_TYPE=jellyfin # the allowed types are: jellyfin, navidrome, subsonic. These values are case insensitive
            - SERVER_URL= # http://address:port or https://address:port
            - REMOTE_URL= # http://address or https://address
            - LEGACY_AUTHENTICATION=false # When SERVER_LOCK is true, sets the legacy (plaintext) authentication flag for Subsonic/OpenSubsonic servers
            - ANALYTICS_DISABLED=true # Set to true to disable Umami analytics tracking
        ports:
            - 9180:9180
            # Alternatively, to restrict to only localhost, - 127.0.0.1:9180:8190

配置

  1. 启动时,你将看到一个提示,要求选择你的 MPV 可执行文件路径。如果你尚未安装 MPV,可以在这里下载,或使用操作系统支持的任何包管理器安装。输入路径后,重启应用程序。

  2. 重启应用程序后,你将被要求选择服务器。点击 Open menu 按钮并选择 Manage servers。在弹出的窗口中点击 Add server 按钮,填写所有适用的详细信息。你需要输入服务器的完整 URL,包括协议和端口(如适用)(例如 https://navidrome.my-server.com 或 http://192.168.0.1:4533)。

  • Navidrome - 为获得最佳体验,在创建服务器时请选择“保存密码”,并在 Navidrome 配置中将 SessionTimeout 设置为较大的值(例如 72 小时)。
    • Linux 用户 - 默认的密码存储使用 libsecret。也支持 kwallet4/5/6,但必须在 设置 > 窗口 > 密码/密码存储 中明确设置。
  1. 可选 - 如果你希望在子路径上托管 Feishin(而不是 /),则传入以下环境变量:PUBLIC_PATH=PATH。例如,要在 /feishin 上托管,请传入 PUBLIC_PATH=/feishin。

  2. 可选 - 要硬编码服务器 URL,请传入以下环境变量:SERVER_NAME、SERVER_TYPE(选择 jellyfin、navidrome 或 subsonic 中的一个)、SERVER_URL。为了防止用户更改这些设置,请传 SERVER_LOCK=true。仅当前三个值全部设置时,此选项才能生效。当 SERVER_LOCK=true 时,你还可以设置 LEGACY_AUTHENTICATION=true 或 LEGACY_AUTHENTICATION=false 来配置服务器的遗留认证标志(仅适用于 Subsonic/OpenSubsonic 服务器)。

  3. 可选 - 如果你的服务器使用的公网 URL 与集成应用程序内部与服务器通信所用的 URL 不同,例如单独的 Navidrome ShareURL,请将 REMOTE_URL 设置为该公网 URL。

  4. 可选 - 若要在 Docker/网页版本中禁用 Umami 分析跟踪,请设置环境变量 ANALYTICS_DISABLED=true。启用时,分析脚本将不会被加载,所有跟踪都将被禁用。

  5. 可选 - 应用设置(主题、语言、侧边栏选项等)可以在首次运行时通过环境变量覆盖。这些变量使用 FS_ 前缀(例如 FS_GENERAL_THEME=defaultDark、FS_GENERAL_LANGUAGE=de)。完整列表请参见设置环境变量文档。

常见问题

MPV 要么无法工作,要么在暂停/播放状态之间快速切换

首先要做的是检查你的 MPV 二进制文件路径是否正确。进入设置页面,重新设置路径并重启应用。如果问题仍未解决,尝试重新安装 MPV。已知可用的版本包括 v0.35.x 和 v0.36.x。v0.34.x 是已知坏的版本。

Feishin 支持哪些音乐服务器?

Feishin 支持任何实现了 Navidrome、Jellyfin 或 OpenSubsonic 兼容 API 的音乐服务器。

我在 Linux 上遇到 "找到了 SUID sandbox 辅助二进制文件,但配置不正确" 的问题

当你禁用了用户(非特权)命名空间(sysctl kernel.unprivileged_userns_clone 返回 0)时,会发生这种情况。你可以通过启用非特权命名空间,或者将 chrome-sandbox 设置为 Setuid 来解决这个问题。

chmod 4755 chrome-sandbox
sudo chown root:root chrome-sandbox

Ubuntu 24.04 特别引入了影响命名空间工作方式的重大更改。请参阅 https://discourse.ubuntu.com/t/ubuntu-24-04-lts-noble-numbat-release-notes/39890#:~:text=security%20improvements%20 以获取可能的修复方法。

我如何添加自定义主题?

在桌面应用程序上,您可以通过将 JSON 文件放入主题文件夹(设置 → 一般 → 主题 → 打开文件夹)来添加自定义主题。请参阅 自定义主题文档 了解文件格式和示例。

开发

使用 Node v23.11.0 构建和测试。

此项目基于 electron-vite 构建。

  • pnpm run dev - 启动开发服务器。
  • pnpm run dev:watch - 以监视模式启动开发服务器(用于 main / preload 的 HMR)。
  • pnpm run start - 以生产预览模式启动应用程序。
  • pnpm run build - 为桌面构建应用程序。
  • pnpm run build:electron - 构建 electron 应用程序(main、preload 和 renderer)。
  • pnpm run build:remote - 构建远程应用程序(remote)。
  • pnpm run build:web - 构建独立的网页应用程序(renderer)。
  • pnpm run package - 打包项目。
  • pnpm run package:dev - 为本地开发打包项目。
  • pnpm run package:linux - 为 Linux 本地打包项目。
  • pnpm run package:mac - 为 Mac 本地打包项目。
  • pnpm run package:win - 为 Windows 本地打包项目。
  • pnpm run publish:linux - 发布 Linux 项目。
  • pnpm run publish:linux:beta - 发布 Linux 项目(测试通道)。
  • pnpm run publish:linux-arm64 - 发布 Linux ARM64 项目。
  • pnpm run publish:linux-arm64:beta - 发布 Linux ARM64 项目(测试通道)。
  • pnpm run publish:mac - 发布 Mac 项目。
  • pnpm run publish:mac:beta - 发布 Mac 项目(测试通道)。
  • pnpm run publish:win - 为 Windows 发布项目
  • pnpm run publish:win:beta - 为 Windows 发布项目(Beta 频道)
  • pnpm run typecheck - 对项目进行类型检查
  • pnpm run typecheck:node - 使用 tsconfig.node.json 对项目进行类型检查
  • pnpm run typecheck:web - 使用 tsconfig.web.json 对项目进行类型检查
  • pnpm run lint - 对项目进行代码规范检查
  • pnpm run lint:fix - 对项目进行代码规范检查并修复代码规范错误
  • pnpm run i18next - 生成国际化文件

翻译

这个项目使用 Weblate 进行翻译。如果您想贡献翻译,请访问该链接并提交翻译。

许可证

GNU 通用公共许可证 v3.0 ©

本站来源与版权声明
  • 本文标题:feishin - 一个现代自托管音乐播放器
  • 本文链接:https://www.cn121.com/webapp/jeffvli-feishin.html
  • 原项目:jeffvli/feishin 版权归原作者 jeffvli 及贡献者所有
  • 收录信息:本站于 2026-10-08 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 GPL-3.0(查看 LICENSE 原文),本站译文为其衍生内容;使用、修改、分发请以该仓库 LICENSE 原文为准。基于本页内容形成的衍生作品, 须同样以该协议发布。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 jeffvli/feishin。
  • 翻译说明:本页正文为人工智能生成内容——由机器翻译对原项目 README 初译、经程序校验排版,可能存在错漏,请以原项目文档为准。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。