搭建自己的音乐平台——Navidrome

发布于 2023-02-13  481 次阅读


简介

Navidrome 是一开源的音乐服务器,可以用来自建云端音乐播放器,让你在任何地方通过浏览器或者手机来收听自己的音乐,兼容 Subsonic、Aironic 播放器。

功能介绍

  • 处理非常大的音乐收藏
  • 几乎可播放任何音频格式
  • 读取并使用你精心标记的各种元数据
  • 多用户,每个用户都有自己的播放次数、播放列表、收藏夹等
  • 资源占用率非常低
  • 多平台,在 macOS、Linux 和 Windows 上运行。还提供 Docker 镜像
  • 适用于所有主要平台的即用型二进制文件,包括 Raspberry Pi
  • 自动监控你的库的变化,导入新文件和重新加载新的元数据
  • 基于 Material UI 的主题、现代和响应式的 Web 界面
  • 与所有 Subsonic/Madsonic/Airsonic 客户端兼容
  • 在传输中进行转码,可按用户/播放器设置,支持 Opus 编码
  • 支持中文界面

安装

网上很多都是使用Docker搭建的,我不是很喜欢用Docker,所以自行摸索直接安装。其他的安装方法可以自行搜索或者参考官方文档。

更新和安装先决条件

系统推荐Ubuntu或者Debian。 确保系统是最新的并安装ffmpeg。顺便安装一个vim方便后面编辑配置文件。

apt update
apt upgrade
apt install vim ffmpeg
看到这个提示,输入y后按回车
创建目录结构

创建一个目录来存储 Navidrome 可执行文件和一个具有适当权限的工作目录。

sudo install -d -o <user> -g <group> /opt/navidrome
sudo install -d -o <user> -g <group> /var/lib/navidrome

<user>为指定的运行Navidrome的用户名,<group>为指定的运行Navidrome的用户组,由于我习惯用root账户,所以就只创建这两个文件夹好了。如果你指定的用户名就是现在正在使用的用户也可以不填。

sudo install -d /opt/navidrome
sudo install -d /var/lib/navidrome
获取 Navidrome

发布页面下载最新版本,将内容解压到可执行目录,并设置文件的权限。(将下面的 URL 替换为发布页面中的 URL):

wget https://github.com/navidrome/navidrome/releases/download/v0.47.5/navidrome_0.47.5_Linux_x86_64.tar.gz -O Navidrome.tar.gz
tar -xvzf Navidrome.tar.gz -C /opt/navidrome/

给与执行权限:

chown -R <user>:<group> /opt/navidrome
创建配置文件

/var/lib/navidrome下创建一个文件名为navidrome.toml的文件。 进入/var/lib/navidrome:

cd /var/lib/navidrome

新建文件:

vim navidrome.toml

i进入插入(也就是编辑)模式,输入以下内容:

MusicFolder = "<library_path>"

这里的<library_path>替换为你存放音乐的文件夹。如果还需要配置其他内容,也可以参考官方文档来添加。 按Esc,输入:wq保存退出。

配置系统服务

/etc/systemd/system/下创建一个文件名为navidrome.service的文件(别问我怎么创建,跟上面的方法一样),填写以下内容: 注意!别照抄,user和group需要修改为运行Navidrome的

[Unit]
Description=Navidrome Music Server and Streamer compatible with Subsonic/Airsonic
After=remote-fs.target network.target
AssertPathExists=/var/lib/navidrome

[Install]
WantedBy=multi-user.target

[Service]
User=<user>
Group=<group>
Type=simple
ExecStart=/opt/navidrome/navidrome --configfile "/var/lib/navidrome/navidrome.toml"
WorkingDirectory=/var/lib/navidrome
TimeoutStopSec=20
KillMode=process
Restart=on-failure

# See https://www.freedesktop.org/software/systemd/man/systemd.exec.html
DevicePolicy=closed
NoNewPrivileges=yes
PrivateTmp=yes
PrivateUsers=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
ReadWritePaths=/var/lib/navidrome

# You can uncomment the following line if you're not using the jukebox This
# will prevent navidrome from accessing any real (physical) devices
#PrivateDevices=yes

# You can change the following line to `strict` instead of `full` if you don't
# want navidrome to be able to write anything on your filesystem outside of
# /var/lib/navidrome.
ProtectSystem=full

# You can uncomment the following line if you don't have any media in /home/*.
# This will prevent navidrome from ever reading/writing anything there.
#ProtectHome=true

# You can customize some Navidrome config options by setting environment variables here. Ex:
#Environment=ND_BASEURL="/navidrome"
启动 Navidrome 服务

重新加载服务守护进程,启动新创建的服务,并验证它是否已正确启动。

sudo systemctl daemon-reload
sudo systemctl start navidrome.service
sudo systemctl status navidrome.service

当然你也可以先开启来测试一下,进入
至此,安装已经完成,如果服务已正确启动,请可以访问http://服务器ip:4533。
如果能打开,创建一个你的账户,整个搭建过程就结束啦!

忘了截图了,从官方文档里拿了这张图
Username填用户名
Password填密码
Confirm Password再输一遍密码
点击CREATE ADMIN就创建成功了

开始使用

注册成功后,如果界面是英文的,我们就先去改一下语言。
点击右上角头像图标,选择Personal
点击English,选择简体中文即可。

Enjoy~