前言
各位大佬好呀,今天推荐一款我开源的 NAS 音频播放器:AudioDock
AudioDock(声仓) 是一个基于现代 Web 技术构建的音乐和有声书一体的本地化播放器,包含桌面端、移动端、web端、小程序。以及本地化后端服务
- 多端支持 💻:包含移动端、web端、桌面端、小程序、电视端!
- 双模式无缝切换 ♻️:有声书、音乐模式一键无缝切换,记忆不同模式下的播放信息!
- 支持 docker 部署 📦:可以通过 docker 部署服务端和 web 端!
- 多用户支持 👥:支持多用户交互联动!
- 设备接力 📱:支持多设备之间无缝切换!
- 解析元数据 🖼️:如果是带元信息的歌曲,可以展示歌词、封面等信息!
项目地址:https://github.com/mmdctjj/AudioDock
正文
准备工作
首先确保自己的 NAS 可以下载 Docker 镜像。无法下载可以在后台私信我。
然后在文件目录下新增一个文件目录:audiodock。

打开这个文件目录,新建三个文件夹:music、audio、covers
music 是映射音乐的目录、audio 是映射声书的目录,covers 存放解析后封面的目录。
从 GitHub 下载的 nginx.conf 文件拖动到当前目录下。下载地址:https://github.com/mmdctjj/AudioDock
然后新建一个 docker-compose.yaml 文件,也放置在这个目录下。
此时这个文件夹是这样的:

然后打开 Docker 应用的 Compose 栏目,新建一个项目:audiodock

然后选择路径,选择刚刚新建的目录,点击确定:

此时系统提示包含一个 docker-compose.yaml 文件,我们选择确定:

然后将下面的配置文件填入编辑区即可:
version: "3.8"
services:
# 1. API 后端服务 (Node.js)
api:
platform: linux/amd64
image: mmdctjj/audiodock-api:latest
container_name: audiodock-api
# 容器内部端口 (3000) 默认对内部网络开放,无需 ports 字段映射到宿主机
# 如果要直接测试 API,可以加上 ports: - "3000:3000"
ports:
- "8859:3000"
environment:
- AUDIO_BOOK_DIR=/audio
- MUSIC_BASE_DIR=/music
- CACHE_DIR=/covers
- DATABASE_URL=file:/data/dev.db
- JWT_SECRET=/.jwt_secret # JWT 密钥
# 挂载数据文件和缓存,使用 Docker 命名卷更安全
volumes:
- /vol1/1000/有声书:/audio
- /vol1/1000/80后90后经典歌曲:/music
- ./covers:/covers
- api-db:/data
- ./.jwt_secret:/.jwt_secret
restart: unless-stopped
networks:
- audiodock-network
# 2. Web 前端服务 (Nginx) - 用于托管静态文件和反向代理
web:
platform: linux/amd64
image: mmdctjj/audiodock-web:latest
container_name: audiodock-web
ports:
- "8861:9958" # <--- 将 Web 服务的 80 端口映射到宿主机的 8080 端口
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf.d:ro
depends_on:
- api # 确保 API 容器先启动
networks:
- audiodock-network
volumes:
api-cache: # 命名卷用于缓存
api-db: # 命名卷用于 SQLite 或其他数据文件
networks:
audiodock-network:
接下来重点修改下面的几个映射路径:
volumes:
- /vol1/1000/有声书:/audio
- /vol1/1000/80后90后经典歌曲:/music
- ./covers:/covers
- api-db:/data # 保持默认
- ./.jwt_secret:/.jwt_secret # 保持默认
映射路径的查看是选中文件夹右键详细信息,可以看到具体的地址,复制即可:

最后保证服务端口映射没有重复,选中“创建项目后立即启动”,点击确定按钮即可启动服务。

等待拉取镜像创建容器,直到成功!

接下来稍等一会,等数据入库完成,后端服务占用资源减少

打开页面地址,会看到页面是这样的

输入后端服务器地址,鼠标点击页面空白区域,或者按 tab 键,会触发后端服务状态检查,绿色代表链接成功,红色代表链接错误。

输入用户名、密码登陆,或者点注册之后输入确认密码登陆并注册!

页面会刷新首页,看到是这样的首页说明完全成功了(马赛克是防止版权问题平台不过审)!

以上就是部署服务端、web端的教程!
桌面端和移动端下载
AudioDock 包含桌面端和移动端(电视端正在开发中)!
由于目前依靠万能的 Github 流水线,所以,下载的时候也需要到 release 里找到对应的安装包文件下载安装即可!

安装的时候如果遇到系统提示,点击继续安装即可,
下面是我的小米手机安装过程:
点击继续安装

点击继续安装

完成后打开会进入登陆页面,没有账号可以注册,有的话输入用户名密码登陆即可!

桌面端和移动端的功能基本一致!仅仅是 UI 显示稍有差异。

相较于桌面端,移动端多了拼音排序和侧边栏滚动过滤!
首页和库页面都可以快速切换有声书模式和音乐模式。
值得一提的是,本安装包兼容了平板布局,不管用手机还是平板,都能有最好的使用体验!

手机模式下,播放详情需要点击封面切换歌词,而平板模式下,可以同时展示封面和歌词!

作为超级实用的设备接力和同步播放功能,多端互通!

锁屏界面下,也进行了支持:

最后
欢迎大家使用 AudioDock,AudioDock 始终致力于 NAS 端最好的音频播放器,非常期待收到各位大佬的使用反馈,如果大家在使用中发现问题都可以在群里联系我!或者关注我的公众号:萌萌哒草头将军

让我们一起携手打造 NAS 端最好的音频播放器吧!我的公众号:萌萌哒草头将军


项目地址:https://github.com/mmdctjj/AudioDock