Navidrome 干的事一句话说清:你电脑里存了一堆 MP3、FLAC,它把这些文件变成一个能在线听的音乐网站。手机、平板、电脑打开浏览器就能听,还能装 App 连。
GitHub 24200 Star,GPL-3.0,v0.64.2。Go 写的,Windows 版就是一个 73MB 的 exe,双击就跑,数据库内置 SQLite。
我搭了一遍,放进去 9 首歌,从启动到能播完整走通。启动 1.13 秒,扫描 9 首歌用了 471 毫秒。
先说个反直觉的点:它比 Plex、Jellyfin 这些媒体服务器轻太多,但功能一点都不少——多用户、播放列表、收藏、评分、歌词、分享链接,该有的都有。
Navidrome 能干什么
一句话:把你硬盘里那堆 MP3、FLAC 变成一个能在任何设备上点开就听的私人音乐站。
按用途对号入座——
- 本地音乐库没处听:手机上不想拷来拷去,浏览器打开就能播
- 替代流媒体会员:自己攒的无损资源,音质还比会员给的好
- 一家人共用:多用户,每个人有自己的播放列表和收藏
- NAS 的音乐服务:群晖、威联通上跑一个,全屋设备都能连
- 给朋友发首歌:生成分享链接,对方不用账号就能听
它不做音乐下载,也不对接网易云、QQ 音乐的曲库——只放你自己拥有的文件。
核心功能亮点
- 自动扫描媒体库:指个目录,它自己扫标签、专辑封面、时长
- 格式支持广:MP3、FLAC、AAC、OGG、WMA、APE 这些常见的都吃
- 播放列表 + 收藏 + 评分:五颗星打分,列表自己攒
- 歌词显示:内嵌歌词或者同名 .lrc 都能读
- 多用户:每人独立播放记录,互不影响
- 分享链接:把某张专辑、某首歌发给别人,带有效期
- 28 套主题:后台一键换,从亮到暗都有
- 手机端适配:浏览器打开就是移动版,也能配第三方 App
- Subsonic 兼容 API:DSub、Symfonium 这类客户端都能直连
部署:一条命令,但第一次访问有个坑
navidrome.exe --configfile ./navidrome.toml配置文件长这样:
MusicFolder = './music'
DataFolder = './data'
Port = 4533
UIWelcomeMessage = '源码湾音乐库'
DefaultTheme = 'Dark'
DefaultLanguage = 'zh-Hans'
EnableInsightsCollector = false没有 web 目录要配、没有数据库要建、没有环境变量要设。启动之后数据全部落在 data 文件夹,备份就是复制这个文件夹。
第一个坑在这里:启动后浏览器打开 http://localhost:4533/app,页面全白。
我一开始以为是 JS 报错,翻控制台什么都没有。查了半天才明白:Navidrome 的 Web UI 挂在 /app/ 下,静态资源用的是相对路径 ./assets/index-xxx.js。少那个尾斜杠,浏览器就会去请求 /assets/... 而不是 /app/assets/...,全 404。
加个斜杠就好了:http://localhost:4533/app/。这个坑官方文档里没写,但你会踩。
第一次进入:创建管理员
全新实例第一眼是这个:

三栏:用户名、密码、确认密码,然后点 CREATE ADMIN。

注意这个页面是英文的,而且改不了。我把 UIWelcomeMessage 设成中文了,但这个首次安装页用的是硬编码文案——因为这时候还没有用户,读不到任何用户偏好。
创建完之后退出,再打开登录页就变成这样了:

背景是黑胶唱片,中间是我的配置里那个「源码湾音乐库」,全中文。这才是 UIWelcomeMessage 生效的位置——普通登录页,不是首次安装页。
顺便说一句,那张黑胶背景图是从 Unsplash 随机拉的。断网环境没有背景(不影响用),想固定自己的图加一行 UILoginBackgroundUrl = '图片地址'。
主界面:专辑网格
进去长这样:

深色主题、左侧导航、专辑封面网格。侧栏分两组:专辑(全部/随机/收藏/评分榜单/最近加入/最近播放/最多播放)和艺人、歌曲、电台、分享、歌单。
点进一张专辑:

封面、专辑名、艺人、年份、歌曲数、总时长、总大小,全都自动从文件标签里读出来的。下面是操作栏:立即播放、随机播放、下一首播放、添加到播放队列、添加到歌单、分享、下载。
歌曲表格带序号、标题、艺人、时长、品质(MP3 128)、评分。
歌曲列表页是个大表格,能按任意列排序:

艺人页按专辑分组:

播放器
点播放,底部弹出一条:

左边封面 + 歌名 + 「艺人 - 专辑 - 年份」,中间进度条,右边一排控制:上一首、播放暂停、下一首、播放队列、收藏、音量、循环模式、歌词、队列、关闭。
这个播放器是第三方组件 react-jinke-music-player,移动端会自动变成全屏视图(后面有图)。
后台:用户和媒体库
点右上角头像,管理员多出几个入口。用户管理:

用户名、名称、是否管理员、上次登录、上次访问、更新时间。右上角「创建」可以加人。给家里人各开一个账号,播放记录和收藏是分开的。
媒体库:

路径、歌曲数(9)、专辑数(3)、丢失文件数、总大小、上次扫描时间。右上角三个按钮:快速扫描、完全扫描、创建。加了新歌点一下快速扫描就行,也可以让它自己监听文件夹变化(默认开)。
主题:28 套,比想象中多
这块是我最意外的。点开主题下拉,一共 28 个选项:

Auto、Light、Dark、AMusic、Catppuccin 四套配色、Dracula、Electric Purple、Extra Dark、Green、Gruvbox Dark、Ligera、Monokai、Moonbase、Nautiline、Nord、Nuclear、Nutball、Rosé Pine 三套、Spotify-ish、Squiddies Glass、Tokyo Night 两套,最后还有个「Create your own」。
切到 Light 是这样:

注意顶栏颜色也变了——每套主题不只是明暗,连主色都换了。这点比大部分自建工具用心。
移动端
手机浏览器打开,自动切响应式:

两列专辑网格,顶栏收成汉堡菜单。点开菜单:

专辑、全部、随机、收藏、评分榜单、最近加入、最近播放、最多播放、艺人、歌曲、电台、分享、歌单,全在。
专辑页:

播放之后自动进全屏播放器:

旋转的圆形唱片、大进度条、上一首/暂停/下一首,底部还有歌词、播放列表、定时关闭、收藏、队列。
但你看这张图就能发现一个问题:背景是半透明的,底下的专辑页面内容全透出来了。这是暗色主题下的样式缺陷——播放器的背景色用了带透明度的值。切到 Light 主题就没有这个问题(白色背景是不透明的)。
缺点
一、改不了站点名。 顶栏那个「Navidrome」logo 和浏览器标签页标题 <title>Navidrome</title>,全都是编译进二进制的,配置文件里没有任何选项能改。唯一能改的界面文案就是登录页那句欢迎语。你想把它做成自己的品牌站,做不到。
二、转码要自己装 ffmpeg。 启动日志里会有一行 Unable to find ffmpeg. Transcoding will fail if used。Navidrome 本身能播原生格式(MP3/FLAC/AAC 这些直接推流),但只要涉及转码——比如手机上网络差想降到低码率、或者浏览器不支持 APE/WMA——就必须要 ffmpeg.exe。得自己下载丢到目录里或者加进 PATH。
三、暗色主题下全屏播放器是半透明的。 上面那张图就是证据。底层页面内容透上来,歌名和图标混在一起,视觉上很乱。用 Light 主题或者换成别的主题能避开,但默认就是 Dark。
四、登录页背景图要联网。 默认从 Unsplash 随机拉一张。断网、内网部署、或者公司网络挡了 Unsplash,登录页就是纯色没背景。可以设 UILoginBackgroundUrl 指到自己的图,但得自己准备。
五、首次安装页是英文且不可改。 上面说过。对懂点英文的人不算事,但如果给完全不懂英文的长辈部署,第一屏会卡住。
实测环境
下载
包里有 exe + 配置模板 + 9 首示例音轨 + 完整源码 + GPL-3.0 协议 + 中文说明,双击 启动Navidrome.bat 就能跑:
上面记的这些坑,你自己走一遍也都会遇到。环境、依赖、配置、目录结构,一个都省不了。包里是我这边全部跑通之后才打的——要跳过这几步,直接拿下面这个。
示例音轨是静音的,只有标签和时长,作用是不用你先折腾音乐文件就能看到完整界面。记得换成你自己的歌。
两个小提醒:
- 建议先「转存到自己网盘」再下载——直接下载的链接容易失效,转存后就是你自己的了,随时能下;
- 手机上操作:点开链接 → 右下角「保存到网盘」→ 回夸克 App 的「我的网盘」里下载。
装之前先确认一件事:音乐文件得在本地目录里、文件名和标签别太乱(它按标签归档,标签全空的话专辑会乱成一团)。数据库内置 SQLite,不用准备。
免责声明:本项目基于 GPL-3.0 协议开源,本站仅作收集整理与技术实测分享,不提供任何商业授权。源码版权归原作者所有。请勿将本系统用于任何违法违规用途,由此产生的一切后果由使用者自行承担。如有侵权,请联系 2273962061@qq.com 删除。