简介

这是一个类似于 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

github网址

使用上很简单,单独添加.ncm文件或者添加网易云的下载目录,然后选择转换后的文件是保存到“源文件所在目录”或者“自定义保存目录”,最后点击“开始处理”,进行转换。

备注

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