简介
这是一个类似于 Spotify / Apple Music 的一款音乐播放软件,同时也能让你更简单的与朋友 / 家人分享你的歌曲和歌单。
相关链接:
部署
DockerCompose 方式部署
docker-compose.yml 文件内容如下:
services:
navidrome:
image: deluan/navidrome:latest
user: 1000:1000 # 运行用户UID:GID,你需要根据你的音乐库权限进行调整
ports:
- 4533:4533 # Web / API 访问端口
restart: unless-stopped
environment:
# Navidrome 配置项,如何设置请参照参数设置
- ND_LOGLEVEL=info
volumes:
- "/path/to/data:/data" # Navidrome 数据保存路径
- "/path/to/your/music/folder:/music:ro" # 音乐库路径参数设置
Navidrome 有两种设置模式,分别是通过环境变量设置和通过配置文件设置。一般通过环境变量即可完成配置,若通过配置文件进行配置则需要在应用程序运行目录提供navidrome.toml 文件,或者通过环境变量ND_CONFIGFILE来指定一个路径加载外部配置文件。
基础配置
ND_CONFIGFILE
外部配置文件路径
默认值:"./navidrome.toml"
ND_MUSICFOLDER(在配置文件中:MusicFolder)
音乐库路径,可以为制度文件夹
默认值:"./music"
ND_DATAFOLDER(在配置文件中:DataFolder)
Navidrome 数据保存路径
默认值:"./data"
ND_CACHEFOLDER(在配置文件中:CacheFolder)
缓存数据(转码、元数据封面图等)保存路径
默认值:"<DataFolder>/cache"
ND_LOGLEVEL(在配置文件中:LogLevel)
日志等级,可用选项: error, warn, info, debug, trace
默认值:"info"
ND_ADDRESS(在配置文件中:Address)
绑定地址,可以为 IPv4 或 IPv6,支持 Unix Socket 如 unix:/path/to/file
默认值:0.0.0.0 和 :: (绑定全部IP)
ND_BASEURL(在配置文件中:BaseUrl)
设置 BaseURL,在使用反向代理时很有用,示例: /music, https://music.example.com
默认值:Empty
ND_PORT(在配置文件中:Port)
监听端口
默认值:4533
ND_ENABLEINSIGHTSCOLLECTOR(在配置文件中:EnableInsightsCollector)
允许收集使用数据以优化产品体验
默认值:true高级配置
ND_ALBUMPLAYCOUNTMODE(在配置文件中:AlbumPlayCountMode)
设置专辑播放次数计算方式,设为"normalized"时用专辑播放次数除以专辑音轨数后的结果作为专辑播放次数
默认值:"absolute"
ND_AUTHREQUESTLIMIT(在配置文件中:AuthRequestLimit)
在 AuthWindowLength 时间单一IP允许的最大登录失败次数,设为0时禁用登录频率限制
默认值:5
ND_AUTHWINDOWLENGTH(在配置文件中:AuthWindowLength)
登录频率限制时间窗口,与上一项搭配使用实现“阻止20s内登录失败5次的IP继续访问此服务器”
默认值:"20s"
ND_AUTOIMPORTPLAYLISTS(在配置文件中:AutoImportPlaylists)
是否自动导入 .m3u 播放列表
默认值:true
ND_DEFAULTPLAYLISTPUBLICVISIBILITY(在配置文件中:DefaultPlaylistPublicVisibility)
将导入的播放列表自动设为所有用户可访问的播放列表
默认值:false
ND_ARTISTARTPRIORITY(在配置文件中:ArtistArtPriority)
歌手/演奏家图像来源
默认值:artist.*, album/artist.*, external
ND_COVERARTPRIORITY(在配置文件中:CoverArtPriority)
专辑/音轨封面图来源,embedded 代表从音频文件内嵌标签数据搜索
默认值:cover.*, folder.*, front.*, embedded, external
ND_COVERJPEGQUALITY(在配置文件中:CoverJpegQuality)
专辑/音轨封面图质量
默认值:75
ND_DEFAULTDOWNSAMPLINGFORMAT(在配置文件中:DefaultDownsamplingFormat)
当客户端请求转码时所使用的转码格式(若指定 maxBitrate 则可不指定格式)
默认值:opus
ND_DEFAULTLANGUAGE(在配置文件中:DefaultLanguage)
默认系统语言,简体中文设为 zh-Hans(注意大小写敏感)
默认值:"en"
ND_DEFAULTTHEME(在配置文件中:DefaultTheme)
默认 Web 界面主题
默认值:Dark
ND_ENABLEARTWORKPRECACHE(在配置文件中:EnableArtworkPrecache)
是否启用音乐库新增音乐文件时预加载图像(若不启用则在读取到对应歌曲/专辑时才会加载其图像)
默认值:true
ND_ENABLECOVERANIMATION(在配置文件中:EnableCoverAnimation)
Web 界面音乐播放时的封面旋转动画
默认值:true
ND_ENABLEDOWNLOADS(在配置文件中:EnableDownloads)
是否允许从 Web 界面下载音乐/专辑/播放列表,建议关闭
默认值:true
ND_ENABLEEXTERNALSERVICES.(在配置文件中:EnableExternalServices)
启用外部拓展集成,包括匿名数据收集以及自动更换登录界面背景,建议禁用
默认值:true
ND_ENABLEFAVOURITES(在配置文件中:EnableFavourites)
是否允许从 Web 界面星标或收藏 歌曲/专辑/艺术家
默认值:true
ND_ENABLEGRAVATAR(在配置文件中:EnableGravatar)
启用 Gravatar 用户头像,需要用户填写邮件地址,建议禁用
默认值:false
ND_ENABLELOGREDACTING(在配置文件中:EnableLogRedacting)
记录日志时对用户敏感信息(如 token 或密码等)进行脱敏处理
默认值:true
ND_ENABLEMEDIAFILECOVERART(在配置文件中:EnableMediaFileCoverArt)
当播放器请求音轨封面时,设置为 true 返回音轨封面,为 false 时返回专辑封面
默认值:true
ND_ENABLEREPLAYGAIN(在配置文件中:EnableReplayGain)
允许 Web 界面使用播放增益,建议禁用
默认值:true
ND_ENABLESHARING(在配置文件中:EnableSharing)
允许创建分享链接
默认值:false
ND_ENABLESTARRATING(在配置文件中:EnableStarRating)
是否在 Web 界面启用5星评分机制
默认值:true
ND_ENABLETRANSCODINGCONFIG(在配置文件中:EnableTranscodingConfig)
允许在 Web 界面修改转码设置
默认值:false
ND_ENABLEUSEREDITING(在配置文件中:EnableUserEditing)
允许一般用户修改自己的用户信息以及修改密码
默认值:true
ND_FFMPEGPATH(在配置文件中:FFmpegPath)
ffmpeg 可执行文件路径,如果你要使用特定版本的 ffmpeg 或者 Navidrome 报错无法定位系统 ffmpeg 时可设置此项
默认值:Empty (search in the PATH)
ND_GATRACKINGID(在配置文件中:GATrackingID)
设置 Google Analytics 信息,格式必须为 UA-XXXXXXXX
默认值:Empty (disabled)
ND_HTTPSECURITYHEADERS_CUSTOMFRAMEOPTIONSVALUE(在配置文件中:HTTPSecurityHeaders.CustomFrameOptionsValue)
设置 X-Frame-Options,如"SAMEORIGIN",按需设置
默认值:"DENY"
ND_IGNOREDARTICLES(在配置文件中:IgnoredArticles)
自动索引禁用词列表,比如以“%”或一些奇葩符号开头的音乐/专辑名可以在这里禁用他们防止他们出现在快速索引列表里
默认值:"The El La Los Las Le Les Os As O A"
ND_IMAGECACHESIZE(在配置文件中:ImageCacheSize)
媒体图像缓存大小,设为0时禁用媒体图像缓存
默认值:"100MB"
ND_JUKEBOX_ENABLED(在配置文件中:Jukebox.Enabled)(注意,关于点唱机模式请参阅 https://www.navidrome.org/docs/usage/jukebox/)
是否启用点唱机模式,即在服务器端播放音频(你可以把 Navidrome 接入家庭音响来远程遥控播放音乐)
默认值:false
ND_JUKEBOX_ADMINONLY(在配置文件中:Jukebox.AdminOnly)
(点唱机模式相关)默认只有管理员可以在服务器端播放音乐,禁用此项则所有用户都可以在服务器端播放音乐
默认值:true
Jukebox.Devices(此项只能使用配置文件设置,不能通过环境变量设置)
(点唱机模式相关)服务器端可用的音频设备列表
默认值:Empty(自动检测)
ND_JUKEBOX_DEFAULT(在配置文件中:Jukebox.Default)
(点唱机模式相关)如果服务器端可用音频设备存在多个,则需在此配置要默认使用的播放设备
默认值:Empty (auto detect)
ND_LASTFM_ENABLED(在配置文件中:LastFM.Enabled)
是否启用 Last.fm 集成
默认值:true
ND_LASTFM_APIKEY(在配置文件中:LastFM.ApiKey)
Last.fm API Key,默认为空不启用
默认值:Empty
ND_LASTFM_SECRET(在配置文件中:LastFM.Secret)
Last.fm API Secret,默认为空不启用
默认值:Empty
ND_LASTFM_LANGUAGE(在配置文件中:LastFM.Language)
Last.fm 电台语言选项
默认值:"en"
ND_LISTENBRAINZ_ENABLED(在配置文件中:ListenBrainz.Enabled)
是否启用 ListenBrainz(在线音乐元数据库)集成
默认值:true
ND_LISTENBRAINZ_BASEURL(在配置文件中:ListenBrainz.BaseURL)
设置 ListenBrainz(在线音乐元数据库)的地址,如果你有自建类似服务比如 Maloja 则可以在此设置。
默认值:https://api.listenbrainz.org/1/
ND_MAXSIDEBARPLAYLISTS(在配置文件中:MaxSidebarPlaylists)
设置 Web 界面侧边栏最大能显示的播放列表数,该数字过大可能会影响 Web 界面性能。
默认值:100
ND_MPVPATH(在配置文件中:MPVPath)
(点唱机模式相关)mpv 可执行文件路径
默认值:Empty (search in PATH)
ND_MPVCMDTEMPLATE(在配置文件中:MPVCmdTemplate)
(点唱机模式相关)调用 mpv 的命令行模板
默认值:mpv --audio-device=%d --no-audio-display --pause %f --input-ipc-server=%s
ND_PASSWORDENCRYPTIONKEY(在配置文件中:PasswordEncryptionKey)
密码加密密钥
默认值:-
ND_PLAYLISTSPATH(在配置文件中:PlaylistsPath)
搜索并自动导入播放列表的路径,可以是文件夹或资源路径,路径必须是相对于 MusicFolder 的才能识别
默认值:".:**/**" (meaning MusicFolder and all its subfolders)
ND_PREFERSORTTAGS(在配置文件中:PreferSortTags)
允许使用 Sort_* 标签来在 Web 界面中对歌曲进行排序
默认值:false
ND_PROMETHEUS_ENABLED(在配置文件中:Prometheus.Enabled)
启用 Prometheus 性能数据监测
默认值:false
ND_PROMETHEUS_METRICSPATH(在配置文件中:Prometheus.MetricsPath)
Prometheus 性能数据监测端点
默认值:"/metrics"
ND_RECENTLYADDEDBYMODTIME(在配置文件中:RecentlyAddedByModTime)
使用文件的“修改时间”进行排序生成“最近添加”歌单,设置为否则使用 Navidrome 导入时间进行排序
默认值:false
ND_REVERSEPROXYUSERHEADER(在配置文件中:ReverseProxyUserHeader)
通过反代访问时,若使用三方身份登录时的用户身份识别字段设置,参照 https://www.navidrome.org/docs/usage/security/#reverse-proxy-authentication
默认值:"Remote-User"
ND_REVERSEPROXYWHITELIST(在配置文件中:ReverseProxyWhitelist)
通过反代访问 Navidrome 时反代服务器白名单列表,格式为使用英文逗号分隔的CIDR,不设置默认为 “deny all”
默认值:Empty
ND_SCANNER_EXTRACTOR(在配置文件中:Scanner.Extractor)
元数据解析实现,可以使用 taglib 或者 ffmpeg
默认值:"taglib"
ND_SCANNER_GENRESEPARATORS(在配置文件中:Scanner.GenreSeparators)
类型标签分隔符设置,如果音乐存在类型标签则多个类型是使用什么作为分隔的
默认值:";/,"
ND_SCANNER_GROUPALBUMRELEASES(在配置文件中:Scanner.GroupAlbumReleases)
专辑分组策略,true 则将同艺术家+专辑名的专辑分组为同一张专辑,false 将会识别发行日期,若不同发行日期将会分成独立的专辑
默认值:false
ND_SCANSCHEDULE(在配置文件中:ScanSchedule)
音乐库新增文件扫描时间计划,格式为 cron 表达式,设为0时禁用新增文件扫描
默认值:"@every 1m"
ND_SEARCHFULLSTRING(在配置文件中:SearchFullString)
启用按字搜索,默认按词搜索
默认值:false
ND_SESSIONTIMEOUT(在配置文件中:SessionTimeout)
会话时间,当用户会话无活动指定时间后注销会话
默认值:"24h"
ND_SHAREURL(在配置文件中:ShareURL)
用于分享时的服务器地址
默认值:Empty (使用服务器地址)
ND_SMARTPLAYLISTREFRESHDELAY(在配置文件中:SmartPlaylistRefreshDelay)
只能播放列表的自动刷新间隔
默认值:"5s"
ND_SPOTIFY_ID(在配置文件中:Spotify.ID)
Spotify Clietn ID,需要从 Spotify 获取艺术家图像时设置
默认值:Empty
ND_SPOTIFY_SECRET(在配置文件中:Spotify.Secret)
Spotify Client Secret,需要从 Spotify 获取艺术家图像时设置
默认值:Empty
ND_SUBSONICARTISTPARTICIPATIONS(在配置文件中:SubsonicArtistParticipations)
当查询指定艺术家的专辑时,包括该艺术家参演的专辑(如 V.A. 这种一群人合作发行的专辑)
默认值:false
ND_TLSCERT(在配置文件中:TLSCert)
TLS certificate 文件路径,需要包含 signature chain
默认值:Empty (disable TLS)
ND_TLSKEY(在配置文件中:TLSKey)
TLS key 文件路径
默认值:Empty (disable TLS)
ND_TRANSCODINGCACHESIZE(在配置文件中:TranscodingCacheSize)
转码缓存大小,设置0禁用转码缓存
默认值:"100MB"
ND_UILOGINBACKGROUNDURL(在配置文件中:UILoginBackgroundUrl)
自定义登陆界面背景图像,可设置为链接
默认值:随机 Unsplash.com 图像,如果之前禁用了外部集成则只会使用内置图像
ND_UIWELCOMEMESSAGE(在配置文件中:UIWelcomeMessage)
在登录界面显示欢迎信息
默认值:Empty
ND_UNIXSOCKETPERM(在配置文件中:UnixSocketPerm)
Unix Socket 文件权限,一般无需设置
默认值:"0660"使用
Web UI
访问 http://[Navidrome服务器IP]:[端口号] ,打开的Web UI界面。
Navidrome服务器IP:如果没有指定网络模式,则是NAS主机的IP地址。
端口号:docker-compose.yml 文件中“ports”配置项对应的前面的端口号。
初次登录会让用户输入初始化管理员的用户名和密码,下次登录时使用该账号登录。

目录结构
通常 docker-compose.yml 文件配置项下"/path/to/your/music/folder:/music:ro" 中 /path/to/your/music/folder 为Navidrome音乐库存储目录,音乐库的目录标准结构如下:
根目录
- 艺术家A
- 专辑A
- 专辑B
- 艺术家B
- 专辑A
- 专辑B*用户也可以不按这标准,Navidrome会搜索对应目录并解析专辑
相关软件
MusicBrainz Picard - 音乐专辑刮削软件
1.使用上,先点击①处“添加文件夹”或“添加文件”,选择需要刮削的音乐文件。添加的待刮削的文件会显示在左侧列表“未识别出簇的文件”下。
a. 如果音乐文件比较杂,则可以直接右击“未识别处簇的文件”节点选择扫描或者点击③处“扫描”按钮,软件会自动开始刮削。

b. 如果音乐文件属于某个专辑,则可以在④处输入专辑名,点击右边搜索按钮查找专辑信息,双击选择分数较高的专辑,然后再扫描,准确率会高点。

2. 扫描完成后,在界面下面的信息处检查刮削结果是否正确。

3.没问题,则右击专辑,点击“保存”按钮保存刮削结果到原始音乐文件。

音流 - 跨平台音乐播放器1
Feishin - 跨平台音乐播放器2
ncmdump-gui - .ncm网易云音乐格式音乐文件转换成mp3
使用上很简单,单独添加.ncm文件或者添加网易云的下载目录,然后选择转换后的文件是保存到“源文件所在目录”或者“自定义保存目录”,最后点击“开始处理”,进行转换。

备注
文章参考:https://zhuanlan.zhihu.com/p/16371526999