828华为云征文|华为云Flexus云服务器X实例部署Xnote笔记应用
- 前言
- 一、Flexus云服务器X实例介绍
- 1.1 Flexus云服务器X实例简介
- 1.2 Flexus云服务器X实例特点
- 1.3 Flexus云服务器X实例使用场景
- 二、Note Mark 介绍
- 2.1 Xnote简介
- 2.2 Xnote特点
- 2.3 主要使用场景
- 三、本次实践介绍
- 3.1 本次实践简介
- 3.2 本次环境规划
- 四、购买华为云Flexus云服务器X实例
- 4.1 登录华为云
- 4.2 进入Flexus云服务器X实例购买页面
- 4.3 购买Flexus云服务器X实例配置
- 4.4 使用Xshell远程连接
- 五、检查Docker环境
- 5.1 检查操作系统版本
- 5.2 检查内核版本
- 5.3 检查Docker版本
- 5.4 检查Docker服务状态
- 5.5 检查Docker compose版本
- 六、部署Xnote应用
- 6.1 拉取Xnote镜像
- 6.2 创建部署目录
- 6.2 编辑boot.properties文件
- 6.4 编辑docker-compose.yaml文件
- 6.5 创建Xnote容器
- 6.6 检查Xnote容器状态
- 6.7 检查Xnote容器日志
- 七、访问前准备工作
- 7.1 关闭selinux和防火墙
- 7.2 Flexus云服务器X实例安全组配置
- 八、访问Xnote服务
- 8.1 访问Xnote初始页
- 8.2 登录Xnote
- 九、Xnote的基本使用
- 9.1 新建笔记本
- 9.2 新建笔记
- 9.3 查看笔记效果
- 十、使用体验与总结
前言
华为云凭借其卓越的技术实力和稳定的服务质量,已成为众多企业和开发者构建云端应用的首选平台。
Flexus云服务器X实例
作为新一代云服务器,专为中小企业和开发者量身打造,提供了强大的柔性算力和灵活的部署选项。在本文中,我们将探讨如何利用华为云Flexus云服务器X实例高效部署Xnote笔记应用,以帮助用户更好地管理和组织个人信息。
一、Flexus云服务器X实例介绍
1.1 Flexus云服务器X实例简介
- 官网地址: 华为云Flexus云服务器X实例
华为云
Flexus云服务器X实例
是新一代面向中小企业和开发者的柔性算力云服务器。它能够智能感知业务负载的变化,自动调整资源配置。这款服务器特别适用于中低负载的应用场景,例如电商直播、企业网站建设、开发测试环境、游戏服务器以及音视频服务等。X实例的设计理念旨在为用户提供更加灵活和高效的计算资源管理方式。通过智能调整,它可以更好地满足不同业务的需求,提高资源利用率。
1.2 Flexus云服务器X实例特点
-
提供丰富的公共镜像:Flexus云服务器X实例提供多种公共镜像供用户选择,方便快速部署各种应用和服务。
-
可灵活自定义vCPU内存配比:用户可以根据自己的需要灵活调整虚拟CPU和内存的配比,以满足不同场景的需求。
-
智能感知业务动态升降配:Flexus云服务器X实例能够智能感知业务的负载情况,并根据需要自动升降配,以满足业务的需求,提高系统的稳定性和性能。
-
负载范围更高:相对于Flexus应用服务器L实例,Flexus云服务器X实例能够处理更高的负载,适用于更复杂和繁忙的场景。
1.3 Flexus云服务器X实例使用场景
Flexus云服务器X实例针对不同的使用场景展现出其独特的优势:
-
电商直播:利用X实例搭建电商交易平台,可以有效应对电商市场的瞬息万变,从容处理业务压力波动,确保交易过程顺畅无阻。
-
企业建站:面向博客、论坛和企业门户等应用场景,X实例帮助企业高效传播价值信息,促进信息共享与交流,支持构建多功能传播和交互平台。
-
个人开发测试:开发者在开发和测试过程中所需的环境资源可以通过X实例便捷获取,不仅提高了搭建效率,而且降低了成本。
-
游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。
二、Note Mark 介绍
2.1 Xnote简介
Xnote
是一款面向个人用户的轻量级笔记系统,旨在通过提供多种维度的数据管理功能来帮助用户从信息过载中解脱出来。它不仅支持丰富的笔记格式和文件管理,还具备跨平台特性,可以在Windows、Mac、Linux等操作系统上运行,并且既支持云服务部署也支持本地运行。
2.2 Xnote特点
- 丰富的数据管理能力:支持多种笔记格式及文件管理功能,便于用户组织和检索信息。
- 可扩展性:默认提供了常用工具,并允许用户编写自定义插件以满足个性化需求。
- 跨平台兼容:支持Windows、Mac、Linux三大主流操作系统,确保用户在不同设备上的使用体验一致。
- 灵活的数据存储:100%自由的数据控制权,支持多种数据库环境,让用户可以根据需要选择最适合自己的存储方案。
- 多用户支持(有限):虽然支持小规模的多用户使用,但对于大规模或多用户的商业应用场景建议谨慎考虑。
2.3 主要使用场景
- 个人知识管理:适用于需要整理个人学习资料、项目文档或日常想法的用户。
- 学生与研究人员:对于经常需要记录课堂笔记、研究资料的学生和研究人员来说非常有用。
- 小型团队协作:适合小型团队内部共享信息和文档,但需注意其对多用户的支持限制。
- 远程工作者:能够轻松地在不同设备间同步笔记,非常适合经常变换工作地点的远程工作者。
- 开发者:由于其高度可定制性和支持插件开发的特点,特别受到喜欢DIY解决方案的技术爱好者的青睐。
三、本次实践介绍
3.1 本次实践简介
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为华为云Flexus云服务器X实例,使用的操作系统为Huawei Cloud EulerOS 2.0 (x86_64);
3.在Docker环境下部署Xnote笔记应用。
3.2 本次环境规划
服务器类别 | 公共镜像选择 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
华为云Flexus云服务器X实例 | openEuler | 192.168.0.169 | 26.1.3 | openEuler 22.03 LTS |
四、购买华为云Flexus云服务器X实例
4.1 登录华为云
进入华为云官网:https://activity.huaweicloud.com/,登录自己的华为云账号,进入华为云首页。
4.2 进入Flexus云服务器X实例购买页面
我们在华为云官网首页,精选推荐模块中,可以看到Flexus云服务器X实例,点击进入Flexus云服务器X实例主页。
点击页面中的“购买”选项,进入Flexus云服务器X实例购买页面。
4.3 购买Flexus云服务器X实例配置
- 镜像选择:本次实践使用openEuler作为公共镜像,请根据实际需求自定义选择合适的操作系统镜像。
- 镜像切换说明:参考的公共镜像原为Huawei Cloud EulerOS,但本次实践中已切换至openEuler。
- 基础配置参考:购买时可参考以下基础配置进行选择。
项目 | 配置说明 |
---|---|
计费模式 | 包年/包月 |
区域 | 华北—北京四,可用区:随机即可 |
实例规格 | 关闭性能模式,选择自定义,4vCPUs | 12GiB |
镜像 | 公共镜像,openEuler,版本:openEuler 2.0 Standard 64 bit (10GiB) |
应用加速 | 不加速 |
存储 | 系统盘,通用型SSD 100G |
网络 | 选择默认即可 |
安全组 | 选择默认即可 |
弹性公网IP | 选择“现在购买”,全动态BGP,带宽3Mbit/s |
云服务器名称 | 可自定义设置,这里选择默认的名称 |
登录凭证 | 自定义设置密码 |
云备份 | 暂不购买 |
- 确认配置及购买:在确认配置页面仔细检查Flexus云服务器X实例的各项设置,确保无误后点击“立即购买”,完成付款流程即可成功购买。
4.4 使用Xshell远程连接
进入华为云Flexus云服务的控制台,选择Flexus云服务器X实例,可以看到已经正在运行的Flexus云服务器X实例。
- 复制Flexus云服务器X实例的弹性公网IP地址
- 主要填写Flexus云服务器X实例的弹性公网IP地址,输入其登录用户和密码,连接即可。
五、检查Docker环境
5.1 检查操作系统版本
检查Flexus云服务器X实例的操作系统版本,本次实践选择的版本为
openEuler 22.03 LTS
[root@flexusx-51a1 ~]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"
5.2 检查内核版本
检查当前操作系统的内核版本,当前内核版本为
5.10.0-60.139.0.166.oe2203.x86_64
。
[root@flexusx-51a1 ~]# uname -r
5.10.0-60.139.0.166.oe2203.x86_64
5.3 检查Docker版本
部署该项目需要提前安装Docker环境,检查Docker版本,当前安装的Docker版本为
26.1.3
。
[root@flexusx-51a1 ~]# docker -v
Docker version 26.1.3, build b72abbb
5.4 检查Docker服务状态
检查Docker服务状态,确保Docker服务正常。
[root@flexusx-51a1 ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2024-09-23 20:27:32 CST; 12min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 18484 (dockerd)
Tasks: 10
Memory: 240.2M
CGroup: /system.slice/docker.service
└─ 18484 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
5.5 检查Docker compose版本
检查docker compose版本,当前默认安装版本为
v2.27.0
。
[root@flexusx-51a1 ~]# docker compose version
Docker Compose version v2.27.0
六、部署Xnote应用
6.1 拉取Xnote镜像
执行以下命令,拉取Xnote镜像。
[root@flexusx-51a1 ~]# docker pull swr.cn-north-4.myhuaweicloud.com/jeven/xnote
Using default tag: latest
latest: Pulling from jeven/xnote
e79bb959ec00: Pull complete
d4b7902036fe: Pull complete
1b2a72d4e030: Pull complete
d54db43011fd: Pull complete
69d473365bb3: Pull complete
7dc3a6a0e509: Pull complete
a288a79001c3: Pull complete
7d3cdae56021: Pull complete
dbf17696f820: Pull complete
de1e51aadc6c: Pull complete
cfb86fbd7fdc: Pull complete
8e3bc75cc433: Pull complete
110c6930e203: Pull complete
6ee3aff678e9: Pull complete
Digest: sha256:10a511df294788bcb8fa9f2c98bdd3a66b48ef65222347d55c1af030e131dbdf
Status: Downloaded newer image for swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest
swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest
6.2 创建部署目录
在命令行终端上,我们需要创建部署目录
/data/xnote
。
mkdir -p /data/xnote/data && cd /data/xnote
- 设置目录权限
chmod -R 777 /data/xnote/
6.2 编辑boot.properties文件
新建并编辑boot.properties文件,主要修改db_driver = sqlite部分,定义数据库类型,这里直接使用sqlite数据库。
vim boot.properties
# 这是系统默认配置,请不要编辑
# 配置项使用下划线(_)划分模块和单词,除了最后一个(.type),其他地方不要使用(.)
# 关于数字的说明
# kb/mb/gb/tb/pb的进位是1024, k/m的进位是1000
# 例如: 1kb = 1024, 1k = 1000
# 数据存储的根目录
data = ./data
# HTTP服务的端口号
port = 1234
# 服务器根目录,默认是空(根路径)
server_home =
# 最小线程数
min_threads = 15
min_threads.type = int
# 是否开启调试模式
debug = false
debug.type = bool
# 启动后是否自动打开浏览器(在桌面运行的选项)
open_browser = false
open_browser.type = bool
# 启动后是否播放语音提示
ringtone = false
ringtone.type = bool
# 是否强制跳转https
force_https = false
force_https.type = bool
# 是否快速重载(开发模式使用)
fast_reload = false
fast_reload.type = bool
# TODO 重启的内存阈值 -1表示不重启
reload_mem_threshold = -1
reload_mem_threshold.type = int
# 定时任务开关
cron_enabled = true
cron_enabled.type = bool
# 是否开启WEBDAV
webdav = false
webdav.type = bool
# 数据库驱动 {leveldb, leveldbpy, sqlite, mysql}
db_driver = sqlite
# 缓存驱动 {memory, db, redis}
db_driver_cache = memory
# 是否开启数据库备份
db_backup = true
db_backup.type = bool
# 是否开启数据库debug日志
db_log_debug = false
db_log_debug.type = bool
# 数据库备份失效时间(天)
db_backup_expire_days = 5
db_backup_expire_days.type = int
# 是否开启数据库调试
db_debug = false
db_debug.type = bool
# 分析table_proxy性能(临时)
db_profile_table_proxy = false
db_profile_table_proxy.type = bool
# 系统日志最大长度
db_sys_log_max_size = 10000
db_sys_log_max_size.type = int
# leveldb缓存配置
block_cache_size = 16777216 # 16M
block_cache_size.type = int
# leveldb的写入缓冲配置(MemTable的大小)
write_buffer_size = 4194304 # 4M
write_buffer_size.type = int
# leveldb最大打开的文件数
max_open_files = 1000
max_open_files.type = int
# lmdb配置
lmdb_map_size = 1GB
lmdb_map_size.type = int
# 主从同步配置
# leader: 主节点
# follower: 从节点
node_role = leader
# 节点ID
node_id = my_node_id
# 是否构建文件同步索引
build_fs_sync_index = false
build_fs_sync_index.type = bool
# 是否开启binlog
binlog = false
binlog.type = bool
# binlog最大值
binlog_max_size = 1M
binlog_max_size.type = int
# 是否同步文件
sync_files_from_leader = false
sync_files_from_leader.type = bool
# 是否同步数据库
sync_db_from_leader = false
sync_db_from_leader.type = bool
# 同步的轮询时间
sync_interval_seconds = 3
sync_interval_seconds.type = int
# 笔记本配置,笔记本的最大深度
max_book_depth = 2
max_book_depth.type = int
# sqlite的journal模式,默认DELETE,改成WAL可以提高并发性能,但是兼容性比较差
sqlite_journal_mode = DELETE
# mysql配置(还不稳定,试验中)
mysql_database = xnote
mysql_host =
mysql_user =
mysql_password =
mysql_cloud_type =
mysql_pool_size = 10
mysql_pool_size.type = int
mysql_port = 3306
mysql_port.type = int
# 权限配置
auth_max_session_size = 20 # 单个用户最大会话数量
auth_max_session_size.type = int
# UI配置
ui_show_footer = true
ui_show_footer.type = bool
6.4 编辑docker-compose.yaml文件
本次实践使用docker compose方式部署Xnote应用,编辑docker-compose.yaml文件,可自行修改映射端口部分。
vim docker-compose.yaml
version: "3"
services:
server:
image: swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest
container_name: xnote
volumes:
- /data/xnote/data:/xnote/data
- /data/xnote/boot.properties:/config/boot/boot.sae.properties
ports:
- 6200:1234
6.5 创建Xnote容器
执行以下命令,使用docker-compose.yaml文件创建Xnote服务。
docker compose up -d
6.6 检查Xnote容器状态
检查Xnote容器状态,确保Xnote容器正常启动。
[root@flexusx-51a1 xnote]# docker compose ps
WARN[0000] /data/xnote/docker-compose.yaml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
xnote swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest "python sentinel.py …" server 56 seconds ago Up 55 seconds 0.0.0.0:6200->1234/tcp,:::6200->1234/tcp
6.7 检查Xnote容器日志
检查Xnote容器运行日志,确保Xnote服务正常运行。
docker compose logs
七、访问前准备工作
7.1 关闭selinux和防火墙
- 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
- 停止防火墙
systemctl stop firewalld
systemctl disable firewalld
7.2 Flexus云服务器X实例安全组配置
进入Flexus云服务器X实例控制台,进行安全组规则配置。
入方向上放行6200端口,确认配置即可。
八、访问Xnote服务
8.1 访问Xnote初始页
浏览器访问地址:http://服务器IP地址:6200,将IP替换为自己云服务器弹性公网IP地址。浏览器打开后,进入Xnote初始页。
8.2 登录Xnote
默认登录账号密码为admin/123456,进入Xnote首页。
输入账号密码登录后,访问Xnote笔记服务。
九、Xnote的基本使用
9.1 新建笔记本
Xnote首页—管理笔记本—新建笔记本,输入笔记本名称。
填写笔记本名称,这里填写Linux,确定即可。
9.2 新建笔记
- 点击创建笔记
- 编辑笔记标题,自定义填写。
9.3 查看笔记效果
完成笔记编辑并保存后,我们可以查看如下所示的笔记效果。
十、使用体验与总结
通过在华为云Flexus云服务器X实例上成功部署Xnote笔记应用,我们深刻体验到了华为云平台的卓越性能和稳定性。整个部署过程简便快捷,得益于华为云提供的详尽文档和强大的技术支持,使得即便是技术背景较浅的用户也能轻松完成配置。Flexus云服务器X实例的柔性算力确保了Xnote应用在高并发访问下依然能够保持流畅运行,为用户提供高效的数据管理体验。此次实践不仅验证了华为云解决方案的可靠性和灵活性,也进一步证明了其作为中小企业及开发者首选云服务提供商的地位。
在华为云 828 B2B 企业节之际,Flexus X 实例推出重磅优惠。华为云以其顶级的云服务魅力,为企业提供卓越性能与稳定服务,无疑是业务成长的上佳之选。此刻,诚邀各界加入华为云大家庭,共同见证技术革新创造的无限可能,携手奋进,一同开创云端璀璨未来,共享科技进步带来的累累硕果。