【野人音乐】把 NAS / 硬盘里的本地音乐变成自己的私有音乐服务
大家好,推荐一个我自己在做的自托管音乐库应用:野人音乐(Wildman Music)。
它适合家里有 NAS、飞牛设备、家用服务器,或者硬盘里存了很多本地音乐的人。把音乐目录挂载进去之后,野人音乐可以扫描本地歌曲,整理出歌曲、专辑、歌手、封面和歌词,然后在浏览器里直接播放。整个服务可以用 Docker 部署,数据保存在自己的机器上,不需要把音乐上传到第三方平台。
它适合什么人
- 想把本地音乐库做成一个可长期使用的 Web 播放器。
- 音乐文件散落在 NAS、硬盘或家用服务器里,想统一管理。
- 不想依赖第三方音乐平台,希望音乐和数据都留在自己设备上。
- 喜欢 Docker 私有化部署,希望部署简单、迁移方便。
界面预览
首次进入会先设置管理员账号,后续就用这个账号登录。

曲库页面支持按音乐、专辑、歌手、收藏音乐、最近播放和歌单浏览,也可以直接搜索歌曲、专辑或歌手。

播放详情页会展示封面、播放控制和歌词,比较适合桌面端边听边看。

主要功能
- 扫描本地音乐目录,自动入库歌曲信息。
- 支持歌曲、专辑、歌手多维度浏览。
- 支持搜索歌曲、专辑和歌手。
- 支持收藏音乐、最近播放、自定义歌单。
- 支持播放队列、循环播放、随机播放、单曲循环。
- 支持沉浸式播放详情页和歌词展示。
- 支持查看运行日志,方便排查扫描和服务状态。
- 前端、后端和扫描服务打包在同一个 Docker 镜像里,对外只需要一个端口。
飞牛部署
如果你用的是飞牛,可以直接在飞牛自带的 Docker 图形界面里部署。
- 打开 Docker,进入“镜像仓库”,在右上角搜索
wildman-music。

- 在搜索结果中找到
spacecraftlaunchbasewildman/wildman-music,点击右侧下载图标,标签选择 latest。

- 下载完成后进入“本地镜像”,找到
spacecraftlaunchbasewildman/wildman-music,点击右侧运行按钮。

- 在高级设置里配置端口和目录映射:
- 端口:本地端口
7200,容器端口 7200,协议选择 TCP。
- 存储位置:添加两个目录映射,一个本地配置目录映射到容器内
/config,一个本地音乐目录映射到容器内 /music。配置目录建议读写,音乐目录可以按需要选择只读或读写。
- 环境变量:建议添加
WILDMUSIC_SCAN_CONCURRENCY=2。默认扫描并发为 2,可配置范围为 1 到 4;低配设备可以设置为 1。

启动后访问:
http://你的飞牛设备IP:7200
首次进入按页面提示创建管理员账号。进入应用后,在设置里的“音乐库”填写容器内路径 /music,保存并扫描,就可以开始使用了。
Docker Hub 快速部署
如果只是想快速体验,推荐直接用 Docker Hub 镜像运行:
docker run -d \
--name wildman-music \
-p 7200:7200 \
-e WILDMUSIC_SCAN_CONCURRENCY=2 \
-v /path/to/music:/music:ro \
-v /path/to/config:/config \
--restart unless-stopped \
spacecraftlaunchbasewildman/wildman-music:latest
需要替换两个路径:
/path/to/music:宿主机上的音乐目录,例如 NAS 里的音乐文件夹。
/path/to/config:应用数据目录,用来保存账号、歌单、收藏、播放记录、设置和数据库。
默认扫描并发为 WILDMUSIC_SCAN_CONCURRENCY=2,可配置范围为 1 到 4。低配设备可以设置为 1,使用顺序扫描。
启动后访问:
http://你的设备IP:7200
如果在本机测试,也可以访问:
http://localhost:7200
Docker Compose 部署
也可以用 Compose 部署,适合后续维护和升级:
services:
wildman-music:
image: spacecraftlaunchbasewildman/wildman-music:latest
container_name: wildman-music
ports:
- "7200:7200"
environment:
PORT: "7200"
WILDMUSIC_MUSIC_PATH: /music
WILDMUSIC_DB_PATH: /config/wildman-music.db
WILDMUSIC_DIRECTORIES_PATH: /config/music-directories.json
WILDMUSIC_LOOM_SETTINGS_PATH: /config/loom-plugin.json
WILDMUSIC_PUBLIC_DIR: /app/public
WILDMUSIC_SCAN_CONCURRENCY: "2"
volumes:
- /path/to/music:/music:ro
- /path/to/config:/config
restart: unless-stopped
然后启动:
docker compose up -d
如果设备性能较弱,可以把 WILDMUSIC_SCAN_CONCURRENCY 改成 "1"。
首次使用步骤
- 启动容器后,打开
http://你的设备IP:7200。
- 第一次进入会显示“设置账号”,创建管理员账号和密码。
- 进入应用后,打开右上角设置。
- 在“音乐库”里填写服务端可访问路径,例如
/music。
- 点击“保存并扫描”,等待音乐入库完成。
- 回到“音乐”页面,就可以开始搜索、收藏、创建歌单和播放了。
注意:如果你用 Docker 部署,设置页面里填写的是容器内路径,通常是 /music,不是宿主机上的真实路径。宿主机路径是在 Docker 的 -v 或 Compose 的 volumes 里配置的。
数据保存在哪里
野人音乐会把应用数据保存在容器内的 /config,所以部署时建议一定挂载配置目录:
-v /path/to/config:/config
这样升级或重建容器时,账号、歌单、收藏、播放记录和曲库配置都可以继续保留。
音乐目录建议只读挂载:
-v /path/to/music:/music:ro
这样应用可以扫描和播放音乐,但不会修改你的原始音乐文件。
野人有话说
哈喽,大家好,我是野人,当前野人音乐刚起步功能有点弱,bug有点多,页面有点丑...有问题可以留言,看到我会适当修改完善!