华为云云耀云服务器L实例评测|部署个人音乐流媒体服务器 navidrome
- 一、云耀云服务器L实例介绍
- 1.1 云服务器介绍
- 1.2 产品规格
- 1.3 产品优势
- 1.4 支持镜像
- 二、云耀云服务器L实例配置
- 2.1 重置密码
- 2.2 服务器连接
- 2.3 安全组配置
- 三、部署 navidrome
- 3.1 navidrome 介绍
- 3.2 Docker 环境搭建
- 3.3 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
3.1 navidrome 介绍
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在线播放,有浏览器的地方就可以使用,随时随地轻松获取,还可以建立歌单,常见个人专属的音乐库。
- 官网:https://www.navidrome.org/
- Github:https://github.com/navidrome/navidrome
3.2 Docker 环境搭建
本次服务器环境是ubuntu系统镜像,需要自己安装docker环境
服务器类别 | 系统镜像 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
云耀云服务器L实例 | Ubuntu | 192.168.0.168 | 20.10.24 | Ubuntu 22.04.1 LTS |
使用snap
命令安装docker
root@hcss-ecs-f632:~# snap install docker
docker 20.10.24 from Canonical✓ installed
测试docker
安装是否成功
root@hcss-ecs-f632:~# docker -v
Docker version 20.10.24, build 297e128
检查docker
服务状态
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
版本
root@hcss-ecs-f632:~# docker compose version
Docker Compose version v2.17.2
3.3 navidrome 部署
- 下载镜像
从 docker hub 拉取 navidrome镜像,地址:https://hub.docker.com/r/deluan/navidrome
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
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 数据卷文件夹修改权限,否组无法正常启动
# 给data、music文件夹修改权限
sudo chmod 777 -R data/
sudo chmod 777 -R music/
root@hcss-ecs-f632:~/navidrome# docker-compose up -d
Creating network "navidrome_default" with the default driver
Creating navidrome... done
- 检查容器状态
检查 navidrome容器状态,确保容器正常启动
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 成功。
3.4 navidrome 使用
创建管理员用户,输入用户名和密码,完成创建
点击右上角头像 - Personal - 个性化
, 设置语言为简体中文
还支持多种主题风格
把音乐文件上传到数据卷music/folder
文件夹下,我使用的MobaXterm
终端支持SFTP
文件传输,直接找到对应路径,将文件拖入即可
点击右上角折线图标,点击刷新
,会自动扫描此目录下的音频文件。
并在所有
中展示扫描到歌曲的信息,可以自由切换布局方式,网格或表格,还可以全局搜索音乐、筛选条件显示
点击歌曲,显示歌曲信息,支持在线播放、随机播放、下载、加入播放列表、音量调节、收藏、评分、歌词等功能。
还可以查看音乐的具体信息,这些信息都来自音频文件本身中
我们来查看下 navidrome的映射文件路径下的结构
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实例
应对这种需求绰绰有余。