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

news2024/11/18 9:36:50

华为云云耀云服务器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实例配置时,一般会标注几个关键的硬件参数如下

云服务器配置说明
vCPU2核表示分配给虚拟机的虚拟中央处理器数量,影响服务器可以处理的并发任务数和性能。
内存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实例Ubuntu192.168.0.16820.10.24Ubuntu 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实例应对这种需求绰绰有余。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1062944.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全志ARM926 Melis2.0系统的开发指引⑦

全志ARM926 Melis2.0系统的开发指引⑦ 编写目的11. 调屏11.1. 调屏步骤简介11.1.1. 判断屏接口。11.1.2. 确定硬件连接。11.1.3. 配置显示部分 sys_config.fex11.1.3.1. 配置屏相关 IO 11.1.4. Lcd_panel_cfg.c 初始化文件中配置屏参数11.1.4.1. LCD_cfg_panel_info11.1.4.2. L…

网课搜题 小猿题库多接口微信小程序源码 自带流量主

多接口小猿题库等综合网课搜题微信小程序源码带流量主,网课搜题小程序, 可以开通流量主赚钱 搭建教程1, 微信公众平台注册自己的小程序2, 下载微信开发者工具和小程序的源码3, 上传代码到自己的小程序 源码下载:https://download.csdn.net/download/m0_…

【C语言经典100例题-70】求一个字符串的长度(指针)

代码 使用指针来遍历字符串&#xff0c;直到遇到字符串结尾的空字符\0为止&#xff0c;统计字符数量即为字符串长度。 #include<stdio.h> #define n 20 int getlength(char *a) {int len 0;while(*a!\0){len;a;}return len; } int main() {char *arr[n] { 0 };int l…

软技能继续挑战网络安全领域

根据 ISACA 的一份新报告&#xff0c;新的网络安全调查结果指出了网络安全专家缺乏的领域&#xff0c;其中人际技能、云计算和安全措施是网络安全专家最突出的技能缺陷。 59% 的网络安全领导者表示他们的团队人手不足。50% 的受访者表示有非入门级职位的职位空缺&#xff0c;而…

多媒体应用设计师

1.多媒体技术基础 1.1.媒体与技术 1.1.媒体 维基百科&#xff1a;传播信息载体 国际电信联盟&#xff08;ITU-T&#xff09;&#xff1a;感知、表示、存储和传输的手段和方法。 两层含义&#xff1a;存储信息的实体&#xff0c;媒质。传递信息载体&#xff0c;媒介。 1.2.国…

使用Python优雅的绘制甘特图

简介 Gantt图表是一种条形图&#xff0c;用于描绘项目进度。图表在垂直轴上列出要执行的任务&#xff0c;在水平轴上列出时间间隔。图中水平条的宽度显示每个活动的持续时间。在Python中&#xff0c;我们可以使用Plotly库来创建和展示Gantt图表。 基础的Gantt图表 首先&…

beego-简单项目写法--路径已经放进去了

Beego案例-新闻发布系统 1.注册 后台代码和昨天案例代码一致。,所以这里面只写一个注册的业务流程图。 **业务流程图 ** 2.登陆 业务流程图 登陆和注册业务和我们昨天登陆和注册基本一样&#xff0c;所以就不再重复写这个代码 但是我们遇到的问题是如何做代码的迁移&…

计算机专业毕业设计项目推荐12-志愿者管理系统(Spring+Js+Mysql)

志愿者管理系统&#xff08;SpringJsMysql&#xff09; **介绍****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及模式&#xff0c;在编写的过程…

[NISACTF 2022]join-us - 报错注入无列名注入

点击登录&#xff0c;找到注入点 这种框&#xff0c;可以直接爆破关键字&#xff0c;看是否拦截&#xff0c;也可以手动尝试&#xff0c;发现、union、and、or、substr、database等关键字都拦截了 1、学到了&#xff1a;可以用数据库中不存在的表名或者不存在的自定义函数名爆…

面试高频手撕算法 - 01背包系列

1. 前言 为什么要专门去搞一下这个背包问题呢 ? 因为作者已经在两场面试中吃了这个亏, 尤其是在面深信服的测开岗的时候, 一面的难度适中, 加上面试官也没为难我, 侥幸让我过了. (以下是一面问题) 二面的时候, 主要问了项目和手撕算法. 当时项目个人觉得面的还不错, 因为本人是…

Mac下docker安装MySQL8.0.34

学习并记录一下如何用docker部署MySQL 在Docker中搜索并下载MySQL8.0.x的最新版本 下载好后&#xff0c;在Images中就可以看到MySQL的镜像了 通过下面的命令也可以查看docker images启动镜像&#xff0c;使用下面的命令就可以启动镜像了docker run -itd --name mysql8.0.34 -…

java项目log4j2单独为某个类配置日志文件

在项目中&#xff0c;一般都是把日志记录到一个日志文件中。 对应的log4j2.xml内容如下图所示&#xff1a;只有一个RollingFile节点&#xff0c;整个系统只会生成一个log日志文件。 生成的日志文件如下图&#xff1a; 当系统不断扩大&#xff0c;业务越来越复杂&#xff0c;所…

spark on hive

需要提前搭建好hive&#xff0c;并对hive进行配置。 1、将hive的配置文件添加到spark的目录下 cp $HIVE_HOME/conf/hive-site.xml $SPARK_HOME/conf2、开启hive的hivemetastore服务 提前创建好启动日志存放路径 mkdir $HIVE_HOME/logStart nohup /usr/local/lib/apache-hi…

阶段五-Day02-jQuery

一、jQuery入门 1. 定义和特点 目前最流行的JavaScript函数库之一&#xff0c;对JavaScript进行了封装。 并不是一门新语言&#xff0c;而是将常用的、复杂的JavaScript操作进行函数化封装&#xff0c;封装后可以直接调用&#xff0c;大大降低了使用JavaScript的难度&#xf…

Dism软件安装指南:优化Windows系统的必备利器

主旨 有没有发现&#xff0c;自己的电脑时间一长&#xff0c;是不是就会变得越来越慢&#xff0c;越来越卡&#xff0c;当你去网上查资料的时候&#xff0c;都是说什么磁盘碎片清理&#xff0c;禁止程序自启动什么的&#xff0c;不是说这些方式没用&#xff0c;反而很有用&…

四、【选区】

文章目录 为什么使用选区&#xff1f;选区的用途&#xff1a;抠图、修图、调色、合成等怎么对选区进行操作&#xff1f;1.如何建立选区并对选区进行建立?2.加选和减选与交叉选区&#xff1f;3.选区前先调整羽化值: 为什么使用选区&#xff1f; 是我们在一个图片里面选中一个区…

基于Java的培训学校课程资源网站设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

gin 框架的 JSON Render

gin 框架的 JSON Render gin 框架默认提供了很多的渲染器&#xff0c;开箱即用&#xff0c;非常方便&#xff0c;特别是开发 Restful 接口。不过它提供了好多种不同的 JSON Render&#xff0c;那么它们的区别是什么呢&#xff1f; // JSON contains the given interface obje…

5分钟入门卷积算法

大家好啊&#xff0c;我是董董灿。 深度学习算法中&#xff0c;尤其是计算机视觉&#xff0c;卷积是无论如何都绕不过去的槛。 初学者看到这个算法后&#xff0c;很多是知其然不知其所以然&#xff0c;甚至不知道这个算法是做什么的&#xff0c;或者很疑惑&#xff0c;为什么…

Mysql数据库 3.SQL.DDL语句

DDL数据库基本操作 查询所有数据库 show databases; 创建数据库 create database[if not exists]数据库名[default charset 字符集][collate 排序规则] 判断如果已经存在就加入[if not exists] 删除数据库 drop database [if exists] 数据库名 使用数据库 use 数据库名;…