Feishin
Sonixd的重写版本。
特性
截图
入门指南
桌面版(推荐)
下载最新的桌面客户端。桌面客户端是使用Feishin的推荐方式。它同时支持MPV和网页播放器后端,并内置歌词获取功能。
MacOS注意事项
如果您使用的设备运行macOS 12(Monterey)或更高版本,请查看此处了解如何从隔离区移除应用程序的说明。
要使媒体键正常工作,系统会提示您允许Feishin成为受信任的辅助功能客户端。允许后,您需要重启Feishin以使隐私设置生效。
网页版和Docker
访问https://feishin.vercel.app使用Feishin的托管网页版。网页客户端仅支持网页播放器后端。
Feishin 也可以作为 Docker 镜像使用。镜像托管在 ghcr.io
上,可以在这里查看。您可以使用以下命令运行容器:
# 运行最新版本
docker run --name feishin -p 9180:9180 ghcr.io/jeffvli/feishin:latest
# 在本地构建镜像
docker build -t feishin .
docker run --name feishin -p 9180:9180 feishin
Docker Compose
要通过 Docker Compose 安装,请使用以下代码片段。这也适用于 Portainer。
version: '3'
services:
feishin:
container_name: feishin
image: 'ghcr.io/jeffvli/feishin:latest'
environment:
- SERVER_NAME=jellyfin # 预定义服务器名称
- SERVER_LOCK=true # 当设为 true 且名称/类型/URL 已设置时,只能切换用户名/密码
- SERVER_TYPE=jellyfin # navidrome 也可以
- SERVER_URL= # http://地址:端口
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=America/Los_Angeles
ports:
- 9180:9180
restart: unless-stopped
配置
-
启动时,您将看到提示选择 MPV 二进制文件的路径。如果您尚未安装 MPV,可以在这里下载,或使用您操作系统支持的任何包管理器安装。输入路径后,重启应用程序。
-
重启应用程序后,系统会提示您选择服务器。点击"打开菜单"按钮并选择"管理服务器"。在弹出窗口中点击"添加服务器"按钮,填写所有适用的详细信息。您需要输入服务器的完整 URL,包括协议和端口(如果适用)(例如
https://navidrome.my-server.com
或http://192.168.0.1:4533
)。
- Navidrome - 为获得最佳体验,创建服务器时选择"保存密码",并在 Navidrome 配置中将
SessionTimeout
设置为更大的值(例如 72h)。- Linux 用户 - 默认密码存储使用
libsecret
。也支持kwallet4/5/6
,但必须在设置 > 窗口 > 密码/密钥存储中明确设置。
- Linux 用户 - 默认密码存储使用
-
可选 - 如果您想在子路径(非
/
)上托管 Feishin,请传入以下环境变量:PUBLIC_PATH=PATH
。例如,要在/feishin
上托管,传入PUBLIC_PATH=/feishin
。 -
可选 - 要硬编码服务器 URL,请传入以下环境变量:
SERVER_NAME
、SERVER_TYPE
(jellyfin
或navidrome
之一)、SERVER_URL
。要防止用户更改这些设置,传入SERVER_LOCK=true
。只有在设置了前三个值时才能设置此项。
常见问题
MPV 不工作或在暂停/播放状态之间快速切换
首先要检查 MPV 二进制路径是否正确。导航到设置页面,重新设置路径并重启应用程序。如果问题仍未解决,请尝试重新安装 MPV。已知可用的版本包括 v0.35.x
和 v0.36.x
。v0.34.x
是已知的有问题版本。
Feishin 支持哪些音乐服务器?
Feishin 支持任何实现 Navidrome 或 Jellyfin API 的音乐服务器。目前不支持 Subsonic API。这可能会在新的 Subsonic API 确定后添加。
在 Linux 上遇到 "The SUID sandbox helper binary was found, but is not configured correctly" 问题
这是因为您禁用了用户(非特权)命名空间(sysctl kernel.unprivileged_userns_clone
返回 0)。您可以通过启用非特权命名空间或将 chrome-sandbox
设为 Setuid 来解决此问题。
chmod 4755 chrome-sandbox
sudo chown root:root chrome-sandbox
开发
使用 Node v16.15.0
构建和测试。
本项目基于 electron-react-boilerplate v4.6.0 构建。
翻译
本项目使用 Weblate 进行翻译。如果您想贡献,请访问该链接并提交翻译。