用Navidrome搭建个人音乐站
- IT
- 2023-09-07
- 24热度
- 0评论
Navidrome支持docker、MacOS、Linux、FreeBSD,以及Windows,这使得它几乎可以安装在任何设备上。它是一个开源软件,安装和使用也非常简单,在https://www.navidrome.org/docs/上可以看到官方的文档,包括如何安装,如何配置等等。下面以Windows版本为例说明一下主要步骤。
一、安装与配置Navidrome
1、下载
需要下载3个东西:Navidrome、Shawl、ffmpeg。
Navidrome通过Github发布releases:https://github.com/navidrome/navidrome/releases
Shawl工具同样是一个开源软件,也通过Github发布:https://github.com/mtkennerly/shawl/releases
ffmpeg……你猜对了,它也是开源工具,Github发布地址:https://github.com/BtbN/FFmpeg-Builds/releases
Github需要科学访问,如果不方便,以上工具也可以从这里下载:(百度网盘) https://pan.baidu.com/s/1pRVtSdNhPg70NguF5LU0kw?pwd=1vhd
2、安装
Windows版本的Navidrome是一个单文件exe。我们将它放到任意文件夹内,假设为:
E:\Navidrome
将ffmpeg解压缩,放到任意文件夹,注意文件夹不要嵌套,确保ffmpeg目录下面有ffmpeg.exe。假设文件夹为:
E:\Navidrome\ffmpeg
将Shawl工具解压缩到任意文件夹,例如:
E:\Shawl
现在需要将它注册为系统服务。我们就用shawl工具来注册。
用管理员身份打开cmd。用以下命令切换到E:\shawl目录,并执行注册服务命令,并启动navidrome服务。
e:
cd\shawl
shawl add --name Navidrome -- "E:\navidrome\navidrome.exe" -c "E:\navidrome\navidrome.toml"
sc start Navidrome
注意路径替换为你的实际路径。
细心的朋友可能注意到,这里通过“-c xxx.toml”指定了一个配置文件。
好了,理论上这时候Navidrome已经以服务形式运行了。可以用浏览器访问:localhost:4533,不出意外的话,应该就可以打开主页了。
打开之后先不要太激动,现在只是测试一下服务能否运行。使用它还需要其他配置。
3、配置
我们在E:\Navidrome中,找到navidrome.toml文件,如果没有就用记事本手动创建一个。注意,务必将它保存为UTF-8编码(记事本就可以另存为UTF-8),否则无法正常读取。
编辑其中的内容。它可以被Navidrome在每次启动时读取,以进行个性化设置。一个典型的navidrome.toml的内容如下:
ScanSchedule = '@every 24h'
TranscodingCacheSize = '150MiB'
# IMPORTANT: Use single quotes for paths in Windows
MusicFolder = 'F:\MusicOnline'
# Set this to the path of your ffmpeg executable
FFmpegPath = 'E:\Navidrome\ffmpeg\ffmpeg.exe'
DefaultLanguage = "zh-Hans"
EnableSharing = true
UIWelcomeMessage = "欢迎周教授的朋友们!"
几个主要的设置介绍一下:
ScanSchedule表示自动扫描文件夹的时间间隔。我们常常会往文件夹中添加音频文件,有时候可能不想立即刷新,希望系统可以自动刷新。
MusicFolder,顾名思义,指明了音频文件存储位置。在Windows系统中,路径需要加上单引号。我们这里是“F:\MusicOnline”。
FFmpegPath,指定了FFmpeg工具的位置。
DefaultLanguage,可以设置为"zh-Hans",简体中文。如果不设置默认为英文。用户也可以在网页中自行设置界面语言。
EnableSharing,这个比较重要,如果需要共享音乐链接给别人,则必须设置为"True",默认是关闭Sharing的。
其他参数还有很多,详见官网:https://www.navidrome.org/docs/usage/configuration-options/
4、重启Navidrome服务以应用配置
用管理员身份打开cmd,运行:
sc stop Navidrome
sc start Navidrome
或者也可以打开“服务”(或开始菜单-运行-services.msc),找到Navidrome,右键重启。
往你的音乐文件夹(本例中的F:\MusicOnline)copy若干测试音频文件。
用浏览器打开localhost:4533,第一次进入它会引导你设置默认管理员admin的密码。
熟悉管理员设置、新增用户设置、语言设置,目录扫描,专辑和音乐列表,以及播放功能。目前共享功能虽然可以使用,但意义不大,因为网站仍然只能在本地运行。
二、设置公网访问
要实现将家里的某台电脑公网可以访问,方法有很多。例如:
1、申请公网IP,并在路由器上做端口映射
该方法如今几乎已经不行了,国内电信、联通、移动几大运营商,在主要城市均已经不支持普通家庭用户申请公网IP。而且即使给了公网IP,也不是静态IP,还需要使用诸如花生壳动态域名这样的工具动态转换。国内的动态域名服务管控也越来越严了,受制于人,不推荐。
2、VPS+Zerotier
这是我目前使用的方法。它的好处是隐私性强,依赖性弱,除了VPS之外不依赖任何第三方服务,自己就可以搞定。而且Zerotier虚拟组网后,往Navidrome服务器上copy音频文件也很方便。
如何申请VPS不再赘述,建议不要使用腾讯、阿里的VPS,可以选择国外商家开在香港、台湾、日本、新加坡的VPS。
在VPS和家里电脑上分别安装Zerotier,并Join同一个Network。
购买一个域名,并申请免费SSL(可以到OpenSSL上申请)。这一步不是必须,但推荐这样操作,毕竟SSL可以多少保护一下用户信息。
然后在VPS的IIS或Nginx上设置反向代理,令访问VPS的流量重定向到家里的Navidrome。特别需要提醒的是,要放行navidrome服务器的防火墙4533端口。
大功告成。
三、分享Music
开启公网访问后,并启用Sharing,就可以在网站里分享专辑或某首歌了。它会自动生成一个分享链接。
注意,分享链接是公开的,任何人都可以无需登录直接打开。该权限默认会保留较长时间(大概是1年)。
为了减少域名暴露,建议将分享的链接转换为二维码。通过https://classic.qrbtf.com/可以轻松转换多种样式的二维码,这个二维码的作者还在研究AI二维码,非常有意思,有兴趣的可以到他的discord频道去看看。
补充一下:整理音乐库,最好用的工具莫过于MusicTag。应该有点眼熟吧?没错,它也在上面的百度网盘里。