🎵 AudioDock(声仓):音乐 + 有声书,一个 App 全搞定,NAS 党的音频神器来了!

AudioDock

各位老铁们好啊!好久不见~~👋

问你们一个问题:你的 NAS 里是不是躺着一大堆音乐有声书,但每次想听的时候,都要在好几个 App 之间来回切换?

听音乐用一个播放器,听有声书又要换另一个,手机、电脑、平板各自为政,进度不同步,封面不显示,歌词也没有……

这种割裂感,真的太难受了!😩

今天给大家安利一个我最近挖到的宝藏开源项目——AudioDock声仓!⚡️ 一款把音乐和有声书合二为一的本地化播放器,多端同步、颜值在线、功能能打,NAS 党和本地音频收藏家直接闭眼看!


🏷️ 一、AudioDock 是个啥?

AudioDock,中文名声仓,是一款基于现代 Web 技术构建的音乐 + 有声书一体化本地播放器

它最大的亮点就是:一套系统,两种模式,全端覆盖

不管是听周杰伦的专辑,还是追《三体》有声书,AudioDock 都能一站式搞定,而且两种模式可以一键无缝切换,还会分别独立记忆播放进度,完全不会乱!

目前支持的平台:

  • 💻 桌面端(Windows / macOS / Linux)
  • 📱 移动端(iOS / Android)
  • 🌐 Web 端(浏览器直接访问)
  • 📺 小程序 & 电视端(开发中)

一套服务,全家桶覆盖,这才叫真正的多端同步!

AudioDock


🏷️ 二、核心功能拆解

1. 双模式无缝切换 ♻️:音乐 & 有声书,一个都不少

这是 AudioDock 最让我眼前一亮的功能。

以前我们听音乐和听有声书完全是两套体验——有声书要记章节和进度,音乐要管专辑、歌手、歌单……

AudioDock 把两种模式整合在一起,却又互不干扰。切到有声书模式,它记住你上次听到哪;切回音乐模式,你的歌单和进度也原封不动。

这个设计,是真的懂用户!👍


2. 多端数据源支持 🔌:Emby、Jellyfin、Navidrome 全接入

已经在用 Emby 或 Jellyfin 管理媒体库的老铁,不用重新折腾!

AudioDock 直接支持接入这些主流媒体服务器作为数据源,你的音乐库和有声书库可以直接导入,省去重复建库的麻烦。

同时还支持:

  • strm 文件入库
  • WebDAV 数据源入库

云盘里的音频、NAS 上的文件,统统可以接进来,真正做到「一个入口,管理所有音频」。


3. 元数据解析 🖼️:歌词、封面、专辑信息一个不少

本地音乐最头疼的就是封面不显示、歌词没有、专辑信息乱七八糟。

AudioDock 支持解析音频文件内嵌的元数据,如果你的音乐文件本身带有完整 ID3 标签,它能自动展示:

  • 🎵 歌词(支持滚动显示)
  • 🖼️ 专辑封面
  • 👤 艺术家信息
  • 💿 专辑分类

听歌的仪式感,直接拉满!


4. 多端同步 & 设备接力 📱:换个设备,无缝继续

这个功能对我来说简直是刚需!

在公司用电脑听到一半,回家拿起手机,AudioDock 能直接从上次进度继续播放。不管是音乐还是有声书,进度全部本地同步。

更厉害的是设备接力功能——支持多设备之间无缝切换,有点像 AirPlay 那味儿,但完全本地化,数据不出家门。


5. 多用户支持 👥:全家共享,各自独立

家里多人共用一套 NAS?

AudioDock 支持多用户,每个人有独立的播放记录、收藏列表和播放进度,互不干扰。老爸听评书,老妈听广场舞歌曲,你听 Lo-Fi,完全不会串!


6. 桌面歌词 & 系统交互 🖥️:沉浸式听歌体验

桌面端还支持桌面歌词显示,就像网易云音乐那种悬浮歌词效果,工作时也能优雅看着歌词飘过。

同时支持系统媒体控制交互,耳机上的播放/暂停/切歌按键都能正常使用,体验非常原生。


🏷️ 三、功能完整度一览

功能 Web/桌面端 移动端
音乐/有声书模式切换
播放器功能
歌词展示
专辑、艺术家
聚合搜索
多端同步
播放记录 & 收藏
桌面歌词
云盘聚合
迷你播放器
TTS 生成有声书 开发中 开发中

整体完成度相当高,而且作者还在持续迭代更新!


🏷️ 四、部署教程:Docker 一键搞定!

作为 NAS 玩家,Docker 部署肯定是首选!AudioDock 提供了完整的 Docker Compose 配置,跟着步骤走,10 分钟轻松部署!

第一步:准备 docker-compose.yml

把下面内容复制到你的 NAS 上,保存为 docker-compose.yml

services:
  audiodock-api:
    image: docker.1ms.run/mmdctjj/audiodock-api:latest
    container_name: audiodock-api
    restart: unless-stopped
    network_mode: bridge
    ports:
      - "6080:3000"
    environment:
      - AUDIO_BOOK_DIR=/audio
      - MUSIC_BASE_DIR=/music
      - CACHE_DIR=/covers
      - DATABASE_URL=file:/data/dev.db
      - JWT_SECRET=/.jwt_secret
    volumes:
      - /share/media3/audio:/audio
      - /share/media3/music:/music
      - /share/Container/audiodock/covers:/covers
      - /share/Container/audiodock/data:/data
      - /share/Container/audiodock/.jwt_secret:/.jwt_secret
  audiodock-web:
    image: docker.1ms.run/mmdctjj/audiodock-web:latest
    container_name: audiodock-web
    restart: unless-stopped
    network_mode: bridge
    ports:
      - "6081:9958"
    volumes:
      - /share/Container/audiodock/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
    depends_on:
      - audiodock-api

⚠️ 注意:记得把 /share/Container/audiodock/covers/share/Container/audiodock/data/share/Container/audiodock/.jwt_secret/share/media3/audio/share/media3/music 改成你 NAS 上实际的目录和音频文件路径!

第二步:配置 nginx.conf 文件

接下来需要在 NAS 上创建 nginx.conf 配置文件(路径对应上面 docker-compose.yml 里的 /share/Container/audiodock/nginx/nginx.conf),这个文件主要负责 AudioDock 前端页面的静态资源缓存和后端 API 接口的代理转发,确保前端能正常访问后端服务。

将以下内容完整复制到 nginx.conf 文件中:

worker_processes 1;

events { worker_connections 1024; }

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       9958;
        server_name  localhost;

        # 1. 静态文件 (前端 SPA)
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
            
            # 针对 index.html: 永远不缓存,确保用户总是获取最新版本
            if ($request_filename ~* ^.*?.(html|htm)$) {
                add_header Cache-Control "no-store, no-cache, must-revalidate";
            }

            # 针对静态资源 (JS/CSS/Images): 长期缓存,因为文件名带有 hash
            if ($request_filename ~* ^.*?.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$) {
                add_header Cache-Control "public, max-age=31536000, immutable";
            }

            try_files $uri $uri/ /index.html;
        }

        # 2. 可选代理:仅在后端地址配置时使用
        location /api/ {
            # 把NAS_IP改为你自己NAS的IP
            set $backend "http://NAS_IP:6080"; 

            # 去掉 /api 前缀
            rewrite ^/api/(.*)$ /$1 break;

            proxy_pass $backend;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection 'upgrade';
            proxy_set_header Host $host;
            proxy_cache_bypass $http_upgrade;
        }
    }
}

关键配置说明

  1. 静态资源缓存:对 HTML 文件禁用缓存,保证每次访问都是最新页面;对 JS/CSS/图片等资源设置长期缓存,提升加载速度。
  2. API 代理:将前端的 /api 开头请求转发到后端 API 服务(需把 NAS_IP 替换为你 NAS 的实际 IP 地址),解决跨域问题。

第三步:启动服务

docker-compose up -d

第四步:访问

打开浏览器,访问 http://你的NAS_IP:9958,先注册账号,然后登录,刷新页面就能看到你的音频库了!

就这么简单!🎉

AudioDock

AudioDock


⏬ 网盘下载

下载链接:https://pan.baidu.com/s/1U9TUgTEMKmrdPMJxSUVsZw?pwd=gc5s
提取码:gc5s
复制这段内容后打开百度网盘手机App,操作更方便哦


🏷️ 总结

AudioDock(声仓)对我来说,解决了一个长期存在的痛点——本地音频管理太分散

音乐和有声书终于可以在一个地方统一管理,多端同步、设备接力、元数据解析……这些功能叠加在一起,体验真的不输那些商业 App。

更重要的是,数据完全本地化,不依赖任何云服务,隐私安全有保障。对 NAS 党来说,这简直是量身定制!

如果你也有一堆本地音频资源,强烈推荐上手试试 AudioDock!Docker 部署超简单,折腾成本极低,收益却很高。


宝子们,如果觉得这篇文章有用,记得点赞 + 在看,让更多 NAS 玩家发现这个宝藏项目!有问题或者已经用上的,评论区见!💖

高等精灵实验室

原创文章,作者:诺多,如若转载,请注明出处:https://www.huluohu.com/posts/2054/

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
🦞 我不是肥妞,我只是一份OpenClaw 企业微信插件安装与配置保姆级教程
上一篇 2026年2月7日 08:30
🦞 QClaw+ClawBot:微信上人人都能零门槛领养的入口级AI小龙虾!
下一篇 2026年3月25日 08:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注