华为云云耀云服务器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实例应对这种需求绰绰有余。

相关推荐
森林猿16 小时前
docker-compose-kafka 4.1.0
docker·容器·kafka
为java加瓦16 小时前
Rust 的类型自动解引用:隐藏在人体工学设计中的魔法
java·服务器·rust
安卓开发者17 小时前
鸿蒙NEXT跨设备通信:掌握URPC,实现远程程序调用
华为·harmonyos
Gss77717 小时前
Docker 容器核心知识总结
docker·容器
罗技12317 小时前
Docker 启动 Easysearch 时自定义初始密码的几种方式
运维·docker·容器
未来之窗软件服务17 小时前
操作系统应用开发(二十八)rust OIDC服务器—东方仙盟筑基期
服务器·rustdesk·仙盟创梦ide·东方仙盟
维尔切18 小时前
Nginx 反向代理与负载均衡
运维·nginx·负载均衡
知白守黑26718 小时前
反向代理和负载均衡
运维·负载均衡
杨云龙UP18 小时前
小工具大体验:rlwrap加持下的Oracle/MySQL/SQL Server命令行交互
运维·服务器·数据库·sql·mysql·oracle·sqlserver
码路工人18 小时前
附录B:kubectl 命令速查表 - Kubernetes 集群管理必备指南
docker·云原生·容器