全流程教你搭建Navidrome音乐服务器
本文最后更新于 37 天前,其中的信息可能已经有所发展或是发生改变。

前言

想必大家都有听个音乐要切换3、4个音乐软件的情况吧,有些时候切了还没有用,还需要开会员;这个时候我们就需要用到Navidrome音乐服务器了;
Navidrome音乐服务器支持 docker compose 部署,界面也是简洁、美观,非常适合我这种不想折腾的懒人了

Navidrome 简介

Navidrome ⁠是一款基于 Web 的开源音乐收藏服务器和流媒体播放器。它让您可以自由地从任何浏览器或移动设备收听您的音乐收藏。它就像您的个人 Spotify!

1. 优点:

  • 处理非常大的音乐收藏
  • 播放几乎所有可用的音频格式
  • 读取并使用您精心策划的所有元数据(id3 标签)
  • 多用户,每个用户都有自己的播放次数、播放列表、收藏夹等。
  • 资源占用极低:例如:300GB 的曲库(约 29000 首歌曲)占用的 RAM 不到 50MB
  • 多平台,可在 macOS、Linux 和 Windows 上运行。还提供 Docker 镜像
  • 可立即使用的 Raspberry Pi 二进制文件和 Docker 镜像
  • 自动监控库中的变更,导入新文件并重新加载新元数据
  • 基于 Material UI 的主题化、现代化、响应式的 Web 界面,用于管理用户和浏览您的图书馆
  • 与所有 Subsonic/Madsonic/Airsonic 客户端兼容。查看已测试客户端列表⁠
  • 即时转码 / 降采样。可按用户 / 玩家设置。支持 Opus 编码
  • 集成音乐播放器

2. 缺点:

  • 暂时没找到自动获取歌词的方法 (已找到方案,可参考 Navidrome 番外,解决歌词显示问题)
  • 不支持通过界面 上传 & 删除 歌曲(后续我们会通过其他的方式实现 上传 & 删除 功能)

3. 官方演示站点:

https://demo.navidrome.org/app

4. 项目地址:

Docker Hub 地址:https://hub.docker.com/r/deluan/navidrome
Github 地址:https://github.com/navidrome/navidrome

开始搭建

1. 安装docker&docker compose

懒人一键脚本:科技lion的一键脚本 ctrl+c可直接退出脚本

1.安装docker:
	一键脚本:
		安装组件:
			Debina/Ubuntu:
				apt update -y  && apt install -y curl
			CentOS/RedHat/Fedora/AlmaLinux/Rocky Linux:
				yum update && yum install -y curl
			Alpine Linux:
				apk update && apk add curl
		运行脚本:bash <(curl -sL kejilion.sh)

	输入Y并回车以同意用户协议(同意用户协议之后可直接使用K+Enter来直接启动脚本)

脚本运行后按6+Enter之后再次按1+Enter进行docker的安装

2.安装 docker compose
	apt  install docker-compose
	安装过程中输入一次Y+Enter即可

3.检查docker&docker compose是否安装成功指令
	docker:docker --version
	docker compose:docker-compose --version

2.安装Navidrome

我们将采用 docker compose 来搭建,docker & docker compose 的安装上面已经讲过了

apt update -y ## 安装前先升级系统包

cd /home/myapp/ ## cd到你所需要安装的路径

mkdir navidrome ## 创建文件夹 
 
cd /home/myapp/navidrome ## 进入文件夹
 
nano docker-compose.yml ## 创建docker-compose.yml文件

贴一个实际我在用的 docker-compose 配置示例(可以通过 LASTFM & SPOTIFY 削刮封面图等信息)

version: "3"
services:
    navidrome:
        image: deluan/navidrome:latest
        ports:
            - "4533:4533" ## 左边可以改成自己服务器未被占用的端口
        environment:
            ## Optional: put your config options customization here. Examples(这些都是可选的):
            ND_SCANSCHEDULE: 1m
            ND_LASTFM_ENABLED:
            ND_LASTFM_APIKEY: f1d50c0e912487521b ## 修改成自己的APIKEY
            ND_LASTFM_SECRET: ca4as89d7231cf9fc9 ## 修改成自己的SECRET
            ND_SPOTIFY_ID: 36bsqd1594bd0b41bc8f9 ## 修改成自己的ID
            ND_SPOTIFY_SECRET: 48be46fcb084523a6 ## 修改成自己的SECRET
            ND_LASTFM_LANGUAGE: zh
            ND_LOGLEVEL: info
            ND_SESSIONTIMEOUT: 24h
            ND_BASEURL: ""
        volumes:
            - "./data:/data"
            - "/home/myapp/navidrome/music_data/:/music:ro" ## 冒号左边修改成自己本地的音乐文件夹路径

如果你不需要通过 LASTFM & SPOTIFY 削刮封面图等信息则使用这个

version: "3"
services:
    navidrome:
        image: deluan/navidrome:latest
        ports:
            - "4533:4533" # 左边可以改成自己服务器未被占用的端口
        environment:
            # Optional: put your config options customization here. Examples(这些都是可选的):
            ND_LOGLEVEL: info
            ND_SESSIONTIMEOUT: 24h
            ND_BASEURL: ""
        volumes:
            - "./data:/data"
            - "/home/myapp/navidrome/music_data/:/music:ro" # 冒号左边修改成自己本地的音乐文件夹路径

3. 获取 LASTFM & SPOTIFY 密钥信息

1). 获取 LASTFM 密钥信息

首先需要一个 Last.fm 免费帐户,其次你要能访问 Last.fm
转到https://www.last.fm/api/account/create 并创建一个 API 帐户。只有应用程序名称 字段是强制性的(需要魔法,不然无法进行人机验证)

提交表单后,可以从 API account Created 页面获取 API Key 和 Shared Secret

将获取的密钥信息复制到刚才的 docker-compose.yml 文件内进行替换。

2). 获取 SPOTIFY 密钥信息

在 Spotify 中创建一个免费帐户,然后按照以下步骤操作:
单击 Spotify 的开发者仪表板中的 CREATE AN APP 按钮:https://developer.spotify.com/dashboard/applications

创建完成之后进入到所创建的控制台,点击Setting ,再点击View client secret
将获取的密钥信息复制到刚才的 docker-compose.yml 文件内进行替换。

4. 运行

输入以下命令启动:
docker-compose up -d
输入 IP:4533 就可以访问了

5.配置域名

这边我使用Nginx Proxy Manger

1).安装

这边为了方便大家进行配置,所以讲一下Nginx Proxy Manger怎么安装,还是一样使用docker compose来部署

cd /home/myapp  ## cd到你要安装的路径
mkdir npm  ## 新建Nginx Proxy Manger文件夹
cd /home/myapp/npm  ## cd到npm的路径下
mkdir docker-compose.yml  ## 创建docker-compose.yml的文件


复制代码到文件中
version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

ESC :wq+enter退出编辑模式并保存

启动
docker-compose up -d

默认用户名密码

Email:[email protected]
Password:changeme

2).配置

1. 先点击Proxy Hosts
2. 点击Add Proxy Host
3. 在`Domain Name` 处填入你的域名并回车确认
4. `Forward Hostname / IP` 处填写ip地址,
    1. Navidrome与Nginx Proxy Manger在同一台服务器上:
        直接输入`127.0.0.1` ;
    2. 不在同一台服务器上:
        输入运行`Navidrome` 那台服务器的公网ip
5. 勾选`Block Common Exploits`
6. 选择SSL区域
7. `SSL Certificate` 处选择`Request a new SSL Certificate`
8. 打开`Force SSL` ,`I Agree to the Let's Encrypt Terms of Server` 
9. 点击Save 
10. 等待创建成功之后选择`Online` 后面的三个点,点击`Edit` 
11. 在`SSL` 选区将`Force SSL` 的的开关打开

6.卸载

cd /home/myapp/navidrome
docker compose down
cd ..
rm -rf /home/myapp/navidrome # 完全删除

解决音乐上传&删除问题

我们将采用 filebrowser 来管理歌曲文件,可以有效解决音乐 上传 & 删除 问题。
直接输入以下命令运行即可:

docker run -d --restart=always \
-v /home/myapp/navidrome/music_data:/srv \  # 冒号左边的文件夹路径需与 Navidrome 保持一致
-p 8003:80 \  # 冒号左边可以改成自己服务器未被占用的端口
--name filebrowser \
langren1353/filebrowser-ckplayer

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇