当前位置: 首页 > article >正文

使用树莓派搭建音乐服务器

目录

  • 引言
  • 一、搭建Navidrome
  • 二、服务穿透
  • 三、音流配置

引言

本人手机存储空间128G,网易云音乐6个G,本就不富裕的空间更是雪上加霜,而且重点是,我根本没有听几首歌,清除缓存后,整个软件都还是占用了5个G左右,正巧,本人最近购入了一块树莓派zero 2w,秉承着不让树莓派变吃灰派的原则,所以萌生出了自己搭建音乐服务器的想法。

解决方案

使用Navidrome在树莓派搭建音乐音乐服务器,再结合音流app访问歌曲,期间为了让树莓派在公网也能访问到,所以又使用了云服务器通过frp将树莓派进行穿透,这样在局域网外也能访问了。

本人选择Navidrome的理由是它有一个非常打动我的特性。

Very low resource usage. Runs well even on simple Raspberry Pi Zero and old hardware setups

它可以跑在树莓派zero上面!!!树莓派zero 2w的内存只有512mb。

一、搭建Navidrome

本教程所有步骤都是跟着官方教程操作的

  1. 一台已经可以进行内网访问的树莓派

  2. 下载Navidrome相关脚本并上传至树莓派

注意!!!:树莓派是arm架构,所以注意下自己使用的服务的架构,如果直接使用服务器搭建,需要选择amd架构

安装相应的工具

需要安装vim和ffmpeg,已经安装了的可以跳过

sudo apt install vim ffmpeg

创建文件夹

创建完成后记得添加权限

sudo mkdir /opt/navidrome
sudo mkdir /var/lib/navidrome

解压Navidrome的压缩包

sudo tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
sudo chmod -R 777 /opt/navidrome

创建音乐库配置文件

在/var/lib/navidrome路径下创建配置文件navidrome.toml

MusicFolder = "准备存放音频文件的路径"

创建后台运行任务

在/etc/systemd/system/创建任务文件navidrome.service

[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]
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

开机自启(可选)

sudo systemctl enable navidrome.service

测试

完成上述步骤后,先进行内网访问,初次访问需要添加一个用户,账户和密码都是自定义的

image-20241006174601251

进入之后可以修改中文右上角人像->personal->langguage->简体中文

image-20241006174731518

image-20241006174637868

完成以上步骤后,现在就拥有了一个仅可在局域网下访问的音乐服务器,接下来需要将其穿透至公网,让你能够随时随地的听音乐。

二、服务穿透

此步骤只展示关键的客户端配置,详细配置步骤见此博客

使用frp将树莓派穿透到外网

frp服务端配置

[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = 1426061489
dashboard_pwd = "20011021yzkyzk"

vhost_http_port = 7002
vhost_https_port = 7003
max_pool_count = 50

token = "xxx"
tcp_mux = true

log_file = "/opt/frps/log/frps.log"
log_level = "info"
log_max_days = 3

privilege_mode = true

frp客户端配置

serverAddr = "xxx"
serverPort = 7000
auth.method = "token"
auth.token = "xxx"
loginFailExit=false
[[proxies]]
name = "远程音乐推流"
type = "http"
localIP = "127.0.0.1"
localPort = 4533
customDomains = ["xxxx"]
[log]
to = "/opt/frpc/log"
level= "info"

该配置主要就是把服务端的7002端口映射到树莓派的4533端口(4533端口就是Navidrome的默认端口),登录到frps面板(7500端口)也能看到映射的结果。

image-20241006205517349

测试

使用服务器ip:7002端口访问,成功访问到Navidrome,这儿的音乐,只要你将mp3文件上传至你navidrome.toml中配置的路径中,它就会自动的读取。

image-20241006205408021

现在在web端我们可以远程访问了,但是,本人平常使用手机听音乐的频率更高,所以,我们需要在移动端也能够访问到这些音乐。

三、音流配置

音流官网

现在手机基本上是64位的,所以下载ARM64的就行了

image-20241006210208001

下载完成后进行配置

选择Navidrome

Screenshot_2024-10-06-21-03-46-472_cn.aqzscn.stre

填写服务器ip:frp配置的端口号

image-20241006210716250

登录后进入首页,就可以看到之前上传的歌曲

Screenshot_2024-10-06-21-04-59-890_cn.aqzscn.stre

至此一步就完成了,现在我将网易云常听的歌曲全部传到树莓派中,然后音流中就会扫描,大体的功能也和平常的音乐软件差不多,主要是占空间很小很小,几乎可以忽略不计。


http://www.kler.cn/news/336594.html

相关文章:

  • 【C#生态园】构建安全可靠的身份验证:六种C# OAuth认证库全面比较
  • 数学公式编辑器免费版下载,mathtype和latex哪个好用
  • RestClientException异常
  • 代码随想录算法训练营Day26 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树
  • Spring MVC的工作原理及配置。Spring Boot的自动配置与快速开发。
  • 毕业设计——物联网设备管理系统后台原型设计
  • 数据库语句优化
  • 《Linux从小白到高手》理论篇:深入理解Linux的网络管理
  • 六、Java 基础语法(下)
  • Oracle中ADD_MONTHS()函数详解
  • Rspamd:开源垃圾邮件过滤系统
  • 基于Rational Rose 做的UML图
  • 【电路基础 · 3】实际电压源 实际电流源;两种电源的等效情况;戴维南模型 诺顿模型(自用)
  • java集合框架都有哪些
  • 51单片机的水位检测系统【proteus仿真+程序+报告+原理图+演示视频】
  • 继电器原理及应用
  • ubuntu2204操作系统使用可执行文件方式安装docker-compose记录
  • 【动态规划-最长公共子序列(LCS)】【hard】【科大讯飞笔试最后一题】力扣115. 不同的子序列
  • Python项目文档生成常用工具对比
  • Nginx03-使用