现在听歌看起来比以前方便了,实际用起来反而经常有点割裂,就比如熊猫喜欢的歌手周杰伦,我10级号Svip7的网易云不能听,歌曲版权分散在几个App里不说,想给其他人分享一首歌,还得先确认对方到底装没装这个软件、有没有会员。
而作为NAS玩家,遇到这种事情,第一反应通常都差不多,反正照片、电影、小说甚至KTV都能自己搭,那音乐播放器为什么不能也塞进 NAS?传统的Navidrome、Jellyfin更适合管理本地曲库,但前提是自己先准备好音乐文件,还要长期整理歌手、专辑、封面和歌词。

而熊猫最近发现的了HollyMusic,一套自部署的在线音乐聚合播放器,直接兼容洛雪音乐自定义音源,可以在NAS上聚合不同来源,同时把账号、收藏、歌单和播放历史留在自己的服务器里。
项目预览
HollyMusic的完成度比熊猫一开始想的高不少,PC和手机都有单独适配,搜索、收藏、播放历史、歌词和歌单这些基础功能基本齐全。

它支持LX Music自定义源API2.0.0,原本手里已有的洛雪.js音源很多都能直接复用,不需要重新找一套资源,至于音源,如果有需求可以和熊猫免费PY一下,只需要一个关注、点赞就行。

HollyMusic支持服务端音频缓存和HTTP Range,暂停、恢复、拖动进度这些操作都比较完整,多用户还可以共享缓存,缓存达到容量限制后会自动清理旧文件,不用担心一直把NAS硬盘塞满。

项目支持多用户,每个人的收藏、歌单和播放历史互相隔离,很适合部署一次给家里人一起用。移动端支持PWA,配置HTTPS以后可以直接添加到桌面,锁屏和通知栏也能控制播放。另外它还兼容Subsonic协议,可以接DSub、Ultrasonic等第三方客户端。

为了与时俱进,项目把AI也安排上了,配置OpenAI兼容接口后可以用自然语言辅助生成歌单,不过这个属于附加玩法,不配置也不影响正常听歌。

除此之外,如果你的音源支持,那么除了在线播放,其实该项目也是支持下载的,且在支持的情况下,可以直接下载flac格式的Hi-Res歌曲文件。
项目部署
项目已经提供Docker镜像,所以NAS上直接用Docker Compose最方便,打开NAS的Compose,随后新建复制以下内容:
♾️ text 代码:services:
app:
image: ghcr.milu.moe/redcath/hollymusic:latest
container_name: holly-music
ports:
- "3099:3000"
env_file:
- .env
environment:
- NODE_ENV=production
- DATABASE_URL=file:./prisma/data/music.db
- ENABLE_FILE_CACHE=true
- AUDIO_CACHE_DIR=/app/.cache/audio-cache
- AUDIO_CACHE_QUOTA_GB=10
volumes:
- ./custom-sources:/app/custom-sources
- ./config:/app/config
- ./prisma_data:/app/prisma/prisma/data
- ./cache_data:/app/.cache
- ./app_logs:/app/logs
restart: unless-stopped
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s这里默认使用3099端口,如果已经被其他服务占用,修改前面的宿主机端口即可。
接着极空间用户可以直接选择点击添加.env,这里需要输入AUTH_SECRET,这个值可以直接用AI生成。

项目的默认用户名为admin,首次创建项目会在日志中生成密码,且这个密码只会展示一次,需要记住然后登录之后马上改掉。

直接打开容器日志搜索password也可以。
写在最后
HollyMusic并不是Navidrome这类本地音乐服务器的替代品,两者适合的人不一样,手里已经有完整FLAC曲库,喜欢自己整理音乐,那本地音乐库依然更合适。
但如果平时更喜欢“搜到就听”,又希望收藏、歌单和账号数据掌握在自己手里,那HollyMusic这套在线音源+自建音乐服务的思路确实挺适合NAS,不过项目仅供学习交流使用并不提供内置音源。
以上便是本次分享的全部内容了。如果你觉得还算有趣或对你有所帮助,不妨点赞收藏,最后也希望能得到你的关注,咱们下期见!

panda