云计算百科
云计算领域专业知识百科平台

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

目录

  • 引言
  • 一、搭建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

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

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

  • 下载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

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

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 使用树莓派搭建音乐服务器
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!