华为云云耀云服务器L实例评测|部署个人音乐流媒体服务器 navidrome

  • 一、云耀云服务器L实例介绍
    • [1.1 云服务器介绍](#1.1 云服务器介绍)
    • [1.2 产品规格](#1.2 产品规格)
    • [1.3 产品优势](#1.3 产品优势)
    • [1.4 支持镜像](#1.4 支持镜像)
  • 二、云耀云服务器L实例配置
    • [2.1 重置密码](#2.1 重置密码)
    • [2.2 服务器连接](#2.2 服务器连接)
    • [2.3 安全组配置](#2.3 安全组配置)
  • [三、部署 navidrome](#三、部署 navidrome)
    • [3.1 navidrome 介绍](#3.1 navidrome 介绍)
    • [3.2 Docker 环境搭建](#3.2 Docker 环境搭建)
    • [3.3 navidrome 部署](#3.3 navidrome 部署)
    • [3.4 navidrome 使用](#3.4 navidrome 使用)
  • 四、总结

一、云耀云服务器L实例介绍

1.1 云服务器介绍

云服务器是现代应用程序部署的理想选择。首先,云服务器提供了高度可扩展性,您可以根据需求灵活地增加或减少计算资源,这有助于节省成本和应对流量波动。其次,云服务器具备高可用性,数据备份和冗余使您的应用程序更加稳定,降低了停机时间。此外,云服务器还提供了全球分布式计算,允许您将应用程序和数据部署在全球不同的数据中心,以提供更快的访问速度和更好的用户体验。

华为云焕新推出华为云云服务器实例新品,华为云云服务器具有智能不卡顿、价优随心用、上手更简单、管理特省心这四个优点,从而帮您快速上云!

从8月底到10月中旬,参与华为云云服务器开启评测活动,可以获得54.99元的优惠券,购买 华为云云耀云服务器L实例 轻量服务器一个月仅需支付0.03元。

还有 限时秒杀专区华为云云耀云服务器L实例 每日限量抢购,优惠仅限1单,抢完即止!

1.2 产品规格

选择华为云云耀云服务器L实例配置时,一般会标注几个关键的硬件参数如下

云服务器 配置 说明
vCPU 2核 表示分配给虚拟机的虚拟中央处理器数量,影响服务器可以处理的并发任务数和性能。
内存 2GB 表示服务器分配的随机存取内存大小,影响服务器同时运行的应用程序的数量和性能。
系统盘 40GB 表示分配给服务器的硬盘空间大小,用于存储操作系统、应用程序和数据文件。
流量包 400GB 表示服务器允许的网络传输数据量,通常以每月为单位,影响服务器与外部通信的数据量。
峰值带宽 3Mbit/s 表示服务器的最大网络传输速度,通常以每秒传输的数据量为单位,影响服务器在网络通信时的传输速率。

目前暂不支持直接更换套餐升级CPU、内存规格。您可以通过如下两种升级CPU、内存规格。

  • 退订当前套餐,重新购买想要的规格套餐
  • 参考升级云耀云服务器L实例规格升级CPU、内存规格。但是通过这种方式升级规格后,您的业务将切换到弹性云服务器而非云耀云服务器L实例。

1.3 产品优势

  • 智能不卡顿:华为云擎天架构加持,软硬协同结合AI算法智能调度,为您提供优质性能。
  • 价优随心用:多种实例规格,平衡性能与成本。
  • 上手更简单:严选多款高品质镜像,经过华为云官方严格测试,覆盖七大场景,预置模板,快速搭建,安全可信。
  • 管理更省心:拓扑、资源、镜像可视化管理,业务架构透明化管理。

1.4 支持镜像

镜像 简介
系统镜像 仅包含了初始操作系统,不包含任何应用数据环境配置。选用系统镜像创建云服务器后,服务器中是一个纯净的操作系统环境。您可以根据实例的业务需求自行安装应用。
应用镜像 包含应用及相关初始化数据、应用所需的运行环境及操作系统。选用应用镜像创建云服务器后,您可以直接使用预置的应用程序,也可以根据实际的业务需求自定义应用配置。减少了应用的上传、安装等环节。

二、云耀云服务器L实例配置

2.1 重置密码

购买完成后,会短信通过你的云服务器信息,重点是公网IP地址和用户名。首先我们需要打开你的服务器控制台,完成重置密码

勾选自动重启,点击确定即可。

2.2 服务器连接

  • 方式一:使用控制台提供的VNC方式登录

  • 方式二 :使用Putty、Xshell等工具登录Linux弹性云服务器,

    a) 下载安装登录工具,例如Putty。

    b) 输入弹性公网IP。

    c) 输入用户名:root、密码,单击"确定"。

  • 方式三 :使用Linux/Mac OS系统主机登录Linux弹性云服务器。

    a) 执行连接命令。

    ssh 弹性公网IP

    例如:ssh 123.xxx.xxx.456

    b) 输入用户名:root、密码,登录服务器。

我个人习惯使用 MobaXterm 这款软件,添加SSH连接,输出公网IP、用户名和端口(默认22),连接即可。

2.3 安全组配置

安全组是一个逻辑上的分组,为同一个VPC内的云服务器提供访问策略。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。

系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组。

主要需要填写优先级(默认填1即可)、协议端口信息(一般选择你项目需要暴露的端口即可),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。

如果还不清楚可以参考文档:安全组配置示例

Navidrome 可以作为一个独立的服务器使用,它允许您使用Web浏览器浏览和收听您的音乐收藏,

通过现代化的 Web 用户界面,以及适用于 iOS 和 Android 设备的各种第三方兼容移动应用程序。

功能特点

  • 非常低的资源使用率。即使在简单的树莓派零和旧硬件设置上也能很好地运行
  • 处理非常大的音乐收藏
  • 流式传输几乎任何可用的音频格式
  • 读取和使用所有精心策划的元数据
  • 对合辑(各种艺术家专辑)和盒装(多碟专辑)的强大支持
  • 多用户,每个用户都有自己的播放次数,播放列表,收藏夹等。
  • 多平台,可在macOS,Linux和Windows上运行。还提供了 Docker 镜像
  • 即用型,官方,树莓派二进制文件和Docker镜像可用
  • 自动监控库的更改、导入新文件和重新加载新元数据
  • 基于Material UI和React-Admin的主题化,现代和响应式Web界面
  • 兼容所有亚音速/音速/空气声波客户端。有关已测试客户端的列表,请参见下文
  • 即时转码。可以按用户/玩家设置。支持作品编码
  • 翻译成 17 种语言(包括中文)
  • 完全支持播放列表,可选择自动导入文件并使其保持同步.m3u
  • 智能/动态播放列表(类似于iTunes)。
  • Scrobbling to Last.fm, ListenBrainz and Maloja (通过自定义 ListenBrainz URL)
  • 共享专辑/歌曲/播放列表的公共链接
  • 反向代理身份验证

navidrome 的设计简约,服务器轻巧、快速、独立,体验感特别好,它没有广告,不需要隔断时间就扫码登录验证,不需要VIP,支持WEB在线播放,有浏览器的地方就可以使用,随时随地轻松获取,还可以建立歌单,常见个人专属的音乐库。

3.2 Docker 环境搭建

本次服务器环境是ubuntu系统镜像,需要自己安装docker环境

服务器类别 系统镜像 内网IP地址 Docker版本 操作系统版本
云耀云服务器L实例 Ubuntu 192.168.0.168 20.10.24 Ubuntu 22.04.1 LTS

使用snap命令安装docker

bash 复制代码
root@hcss-ecs-f632:~# snap install docker
docker 20.10.24 from Canonical✓ installed

测试docker安装是否成功

bash 复制代码
root@hcss-ecs-f632:~# docker -v
Docker version 20.10.24, build 297e128

检查docker服务状态

bash 复制代码
root@hcss-ecs-f632:~# systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-09-14 14:25:21 CST; 2 days ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 30672 (dockerd)
      Tasks: 73
     Memory: 137.0M
        CPU: 2min 37.906s
     CGroup: /system.slice/docker.service

检查docker compose版本

bash 复制代码
root@hcss-ecs-f632:~# docker compose version
Docker Compose version v2.17.2
  • 下载镜像

从 docker hub 拉取 navidrome镜像,地址:https://hub.docker.com/r/deluan/navidrome

bash 复制代码
root@hcss-ecs-f632:~# docker pull deluan/navidrome
Using default tag: latest
Pulling navidrome (deluan/navidrome:latest)...
latest: Pulling from deluan/navidrome
63b65145d645: Pull complete
aeb5bd14d375: Pull complete
4f4fb700ef54: Pull complete
8bc1516e399b: Pull complete
Digest: sha256:11a24da08977ebfa4a9a71f8c878d822ffaae74a019f274a75dc6386d523da86
Status: Downloaded newer image for deluan/navidrome:latest
docker.io/deluan/navidrome:latest
  • 配置安全组

在华为云云耀云服务器L实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听4533端口,所以添加安全组为TCP:4533协议端口。

  • 启动服务

使用docker-compose方式启动,先创建文件docker-compose.yml

yml 复制代码
version: "3"
services:
  navidrome:
    image: deluan/navidrome:latest
    user: 1000:1000 # should be owner of volumes
    ports:
      - "4533:4533"
    restart: unless-stopped
    environment:
      # Optional: put your config options customization here. Examples:
      ND_SCANSCHEDULE: 1h
      ND_LOGLEVEL: info
      ND_SESSIONTIMEOUT: 24h
      ND_BASEURL: ""
    volumes:
      - "./data:/data"
      - "./music/folder:/music:ro"
  • volumes:映射容器内部文件路径到本地
  • ports:配置访问端口

如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行 docker compose up -d 即可自动拉取 navidrome映像,并创建并启动一个容器。 up 表示启动服务,-d 表示在后台执行。docker-compose down 命令用于停止和清理由 docker-compose up 启动的服务。

另外还需要给 navidrome 数据卷文件夹修改权限,否组无法正常启动

bash 复制代码
# 给data、music文件夹修改权限
sudo chmod 777 -R data/
sudo chmod 777 -R music/
bash 复制代码
root@hcss-ecs-f632:~/navidrome# docker-compose up -d
Creating network "navidrome_default" with the default driver
Creating navidrome... done
  • 检查容器状态

检查 navidrome容器状态,确保容器正常启动

bash 复制代码
root@hcss-ecs-f632:~/navidrome# docker ps
CONTAINER ID   IMAGE                                    COMMAND                  CREATED         STATUS                          PORTS                                                 NAMES
caed2acf15e3   deluan/navidrome:latest                  "/app/navidrome"         6 minutes ago   Restarting (1) 26 seconds ago                                                         navidrome_navidrome_1
  • 访问地址

内网:http://localhost:8096

外网:http://公网IP:8096

  • 访问结果

若出现此页面,则部署 navidrome server 成功。

创建管理员用户,输入用户名和密码,完成创建

点击右上角头像 - Personal - 个性化, 设置语言为简体中文

还支持多种主题风格

把音乐文件上传到数据卷music/folder文件夹下,我使用的MobaXterm终端支持SFTP文件传输,直接找到对应路径,将文件拖入即可

点击右上角折线图标,点击刷新,会自动扫描此目录下的音频文件。

并在所有中展示扫描到歌曲的信息,可以自由切换布局方式,网格或表格,还可以全局搜索音乐、筛选条件显示

点击歌曲,显示歌曲信息,支持在线播放、随机播放、下载、加入播放列表、音量调节、收藏、评分、歌词等功能。

还可以查看音乐的具体信息,这些信息都来自音频文件本身中

我们来查看下 navidrome的映射文件路径下的结构

bash 复制代码
root@hcss-ecs-f632:~/navidrome# ls
data  docker-compose.yml  music
root@hcss-ecs-f632:~/navidrome#
  • data 即为数据库和配置文件目录
  • music即为音乐音频文件目录

navidrome 支持的音频转码格式

navidrome 目前仅支持从标签中读取未同步的歌词(没有时间戳),ID3 标签中的歌词要使用的标记是"USLT",不支持常见的.lrc歌词文件。

USLT 并不是一个独立的文件或文件格式,而是音频文件中的一个 ID3 标签,用于存储歌词信息。ID3 标签是音频文件中包含元数据(如歌曲名、艺术家、专辑、歌词等)的一种标准化格式。

"USLT" 是 ID3 标签中的一种特定类型,全名是 "Unsynchronized Lyrics/Text Transcription",用于存储歌词。在这个标签中,你可以将歌曲的歌词以文本的形式存储,但不包含时间戳信息,也就是不同步的歌词。

".lrc" files are not (yet) supported, see #1421

The only thing that is supported currently, is reading unsynced lyrics (no timestamps) from tags.

Lyrics in ID3 tags shouldn't go in a frame called "LYRICS". The correct tag to use would be "USLT".

See: https://docs.mp3tag.de/mapping/#unsyncedlyrics

As far as i can see, the PR that implemented #1379 can also cope with synced lyrics (timestamps), it will just ignore the timestamps and store them as they were unsynced lyrics.

Can you please try to tag a file with lyrics in the USLT tag and see if that works?

navidrome 作为个人音乐流媒体系统的个人使用就是上面的这些了,更多的功能和配置就需要自行探索了。

四、总结

云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。云耀云服务器L实例提供丰富严选的应用镜像,实现应用一键部署,助力客户便捷高效的在云端构建电商网站、Web应用、小程序、学习环境、各类开发测试等。

而且云耀云服务器L实例使用门槛较低,如果您是正在了解云计算服务的入门用户,或是需要在服务器中部署简单应用的个人开发者、中小企业,比如部署一些轻量级的有趣的项目,那么推荐您选择云耀云服务器L实例

navidrome 作为个人音乐流媒体服务器,但是却非常低的资源使用率,即使在简单的树莓派零和旧硬件设置上也能很好地运行,官方演示服务器托管主机上配置也不高:1 核处理器、512MB 内存、10GB 磁盘空间,个人使用非常流畅,华为云云耀云服务器L实例应对这种需求绰绰有余。

相关推荐
Hacker_Oldv1 分钟前
WPS 认证机制
运维·服务器·wps
bitcsljl10 分钟前
Linux 命令行快捷键
linux·运维·服务器
ac.char13 分钟前
在 Ubuntu 下使用 Tauri 打包 EXE 应用
linux·运维·ubuntu
Youkiup40 分钟前
【linux 常用命令】
linux·运维·服务器
qq_2975046143 分钟前
【解决】Linux更新系统内核后Nvidia-smi has failed...
linux·运维·服务器
_oP_i1 小时前
.NET Core 项目配置到 Jenkins
运维·jenkins·.netcore
weixin_437398211 小时前
Linux扩展——shell编程
linux·运维·服务器·bash
小燚~1 小时前
ubuntu开机进入initramfs状态
linux·运维·ubuntu
年薪丰厚1 小时前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
小林熬夜学编程1 小时前
【Linux网络编程】第十四弹---构建功能丰富的HTTP服务器:从状态码处理到服务函数扩展
linux·运维·服务器·c语言·网络·c++·http