828华为云征文|华为云Flexus云服务器X实例之openEuler系统下部署joplin笔记工具
- 前言
- 一、Flexus云服务器X实例介绍
- 1.1 Flexus云服务器X实例简介
- 1.2 Flexus云服务器X实例特点
- 1.3 Flexus云服务器X实例使用场景
- 二、Joplin介绍
- 2.1 Joplin简介
- 2.2 Joplin主要特点
- 三、本次实践介绍
- 3.1 本次实践简介
- 3.2 本次环境规划
- 四、远程连接华为云Flexus云服务器X实例
- 4.1 购买Flexus云服务器X实例
- 4.2 查看Flexus云服务器X实例状态
- 4.3 使用Xshell远程连接
- 五、检查Flexus云服务器X实例系统环境
- 5.1 检查操作系统版本
- 5.2 检查内核版本
- 5.3 检查Docker版本
- 5.4 检查Docker服务状态
- 5.5 检查Docker compose版本
- 六、部署Joplin应用
- 6.1 下载Joplin相关镜像
- 6.2 创建部署目录
- 6.3 编辑docker-compose.yaml文件
- 6.4 创建Joplin容器
- 6.5 查看Joplin容器状态
- 6.6 查看Joplin容器日志
- 七、访问前准备工作
- 7.1 设置防火墙与selinux
- 7.2 Flexus云服务器X实例安全组配置
- 八、访问Joplin服务端首页
- 8.1 访问Joplin-server初始页
- 8.2 登录Joplin-server
- 九、Joplin客户端配置
- 9.1 下载Joplin客户端软件
- 9.2 运行Joplin客户端
- 9.3 同步配置工作
- 9.4 查看同步状态
- 十、本地编辑笔记
- 10.1 新建笔记本
- 10.2 新建笔记
- 10.3 编辑笔记内容
- 10.4 同步笔记内容
- 10.5 Joplin服务端查看同步记录
- 十一、使用体验与总结
前言
作为 IT 技术人员,在工作与学习中,云服务器的使用频率极高。华为云 Flexus 云服务器 X 实例
便是一款性能卓越且性价比高的云服务器之选。将 Joplin 笔记部署于其上,能极大地提高工作效率,让我们随时记录笔记与文章,极为方便。选择华为云 Flexus 云服务器 X 实例,便意味着开启无限可能。本次实践聚焦于在华为云 Flexus 云服务器 X 实例的 openEuler 系统下部署 joplin 服务端,从而轻松实现与本地客户端的数据同步。
一、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实例便捷获取,不仅提高了搭建效率,而且降低了成本。
-
游戏服务器:适用于搭建游戏后台服务器,强大的计算能力可以轻松应对大量玩家同时在线的情况,同时支持平滑扩容,快速应对玩家数量增长的需求,以及提供出色的网络加速能力以提升用户体验。
二、Joplin介绍
2.1 Joplin简介
Joplin
是一款免费且开源的笔记和待办事项管理应用程序,能够高效地整理和处理大量的笔记。所有笔记都采用 Markdown 格式编写,既可以在应用程序内部轻松编辑,也可以通过外部文本编辑器进行修改。Joplin 提供强大的搜索功能,使用户能够快速找到所需的笔记内容,并支持对笔记进行复制、标记和修改,确保信息管理既灵活又便捷。
2.2 Joplin主要特点
-
多平台支持:无论是在桌面还是移动设备上,Joplin 都能提供一致的用户体验,确保跨设备无缝切换。
-
Web Clipper:允许用户一键保存网页上的内容,包括文章、图片甚至是整个页面的截图,方便快捷地收集信息。
-
Markdown 支持:笔记以 Markdown 格式存储,方便编辑和阅读,便于保持笔记的清晰结构。
-
高度可定制:用户可以通过插件和主题来个性化设置界面,甚至自行开发扩展,满足不同用户的特定需求。
-
离线优先:数据默认保存在本地设备上,确保即使没有网络连接也能访问笔记,保障了笔记的随时可用性。
-
加密同步:通过支持 Nextcloud、Dropbox、OneDrive 以及 Joplin Cloud 等云服务,实现安全的数据同步,并提供端到端加密选项保护用户隐私。
-
全文搜索:内置的搜索功能让用户能够迅速定位到任何一条笔记,提高查找效率。
-
导入导出灵活性:不仅支持从 Evernote 导入包含格式化内容、资源及元数据在内的笔记,还接受纯 Markdown 文件的导入,方便迁移和备份。
三、本次实践介绍
3.1 本次实践简介
1.本次实践为个人测试学习环境,旨在快速部署应用,生产环境请谨慎;
2.本次实践环境为云华为云Flexus云服务器X实例,使用的操作系统为openEuler 22.03 LTS;
3.本次实践在Docker环境下部署Joplin笔记工具。
3.2 本次环境规划
服务器类别 | 公共镜像选择 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
华为云Flexus云服务器X实例 | openEuler | 192.168.0.169 | 26.1.3 | openEuler 22.03 LTS |
四、远程连接华为云Flexus云服务器X实例
4.1 购买Flexus云服务器X实例
进入华为云官网:https://activity.huaweicloud.com/,登录自己的华为云账号,进入华为云首页。
- 可参考以下基础配置,进行购买:
1.计费模式:包年/包月,这里选择此模式;
2.区域:华北—北京四,可用区:随机即可;
3.实例规格:关闭性能模式,选择自定义,4vCPUs | 12GiB;
4.镜像:公共镜像,Huawei Cloud EulerOS,版本,Huawei Cloud EulerOS 2.0 Standard 64 bit(10GiB);
5.应用加速:这里选择不加速;
6.存储:系统盘,通用型SSD100G;
7.网络:选择默认即可;
8.安全组:选择默认即可;
9.弹性公网IP:选择“现在购买”,全动态BGP,带宽3Mbit/s;
10.云服务器名称:可自定义设置,这里选择默认的名称;
11.登录凭证:自定义设置密码;
12.云备份:暂不购买;
其余配置默认即可。
- 确认配置及购买
在确认配置页面,检查Flexus云服务器X实例的各项配置是否正确。检查完毕后,点击“立即购买”。付款完毕后,华为云Flexus云服务器X实例购买成功。
4.2 查看Flexus云服务器X实例状态
进入华为云Flexus云服务的控制台,选择Flexus云服务器X实例,可以看到已经正在运行的Flexus云服务器X实例。
4.3 使用Xshell远程连接
- 复制Flexus云服务器X实例的弹性公网IP地址
- 主要填写Flexus云服务器X实例的弹性公网IP地址,输入其登录用户和密码,连接即可。
五、检查Flexus云服务器X实例系统环境
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.109.0.136.oe2203.x86_64
。
[root@flexusx-51a1 ~]# uname -r
5.10.0-60.109.0.136.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 Sun 2024-09-08 14:54:37 CST; 1 day 9h ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 1264 (dockerd)
Tasks: 1751
Memory: 1.0G
CGroup: /system.slice/docker.service
├─ 1264 /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
六、部署Joplin应用
6.1 下载Joplin相关镜像
执行以下命令,拉取Joplin相关镜像,包括
postgres
和joplin/serve
r镜像。
docker pull joplin/server:latest
docker pull postgres:16
6.2 创建部署目录
- 创建项目部署目录
/data/joplin
。
mkdir -p /data/joplin//data/postgres && cd /data/joplin
- 设置目录权限
chmod -R 777 /data/joplin
6.3 编辑docker-compose.yaml文件
本次使用docker compose方式部署,需要新建及编辑docker-compose.yaml文件。在部署文件中,可以自定义修改宿主机映射端口等信息,注意防止端口冲突。变量APP_BASE_URL中的IP地址替换为自己华为云Flexus云服务器X实例的弹性公网IP地址。
vim docker-compose.yaml
# This is a sample docker-compose file that can be used to run Joplin Server
# along with a PostgreSQL server.
#
# Update the following fields in the stanza below:
#
# POSTGRES_USER
# POSTGRES_PASSWORD
# APP_BASE_URL
#
# APP_BASE_URL: This is the base public URL where the service will be running.
# - If Joplin Server needs to be accessible over the internet, configure APP_BASE_URL as follows: https://example.com/joplin.
# - If Joplin Server does not need to be accessible over the internet, set the APP_BASE_URL to your server's hostname.
# For Example: http://[hostname]:22300. The base URL can include the port.
# APP_PORT: The local port on which the Docker container will listen.
# - This would typically be mapped to port to 443 (TLS) with a reverse proxy.
# - If Joplin Server does not need to be accessible over the internet, the port can be mapped to 22300.
version: '3'
services:
db:
image: postgres:16
volumes:
- ./data/postgres:/var/lib/postgresql/data
ports:
- "5432:5432"
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=joplin
- POSTGRES_USER=joplin
- POSTGRES_DB=joplin
app:
image: joplin/server:latest
depends_on:
- db
ports:
- "22300:22300"
restart: unless-stopped
environment:
- APP_PORT=22300
- APP_BASE_URL=http://192.168.0.169:22300 #更改为云服务器的弹性公网IP地址
- DB_CLIENT=pg
- POSTGRES_PASSWORD=joplin
- POSTGRES_DATABASE=joplin
- POSTGRES_USER=joplin
- POSTGRES_PORT=5432
- POSTGRES_HOST=db
- 相关变量解释:
环境变量 | 服务 | 作用 |
---|---|---|
POSTGRES_PASSWORD | db | PostgreSQL数据库的密码,设置为joplin 。 |
POSTGRES_USER | db | PostgreSQL数据库的用户名,设置为joplin 。 |
POSTGRES_DB | db | PostgreSQL中要创建的数据库名称,设置为joplin 。 |
DB_CLIENT | app | Joplin Server使用的数据库客户端类型,这里指定为pg (PostgreSQL)。 |
POSTGRES_PASSWORD | app | 与上面db 服务中的POSTGRES_PASSWORD 相同,用于连接到数据库。 |
POSTGRES_DATABASE | app | 与上面db 服务中的POSTGRES_DB 相同,指定要连接的数据库名。 |
POSTGRES_USER | app | 与上面db 服务中的POSTGRES_USER 相同,指定数据库用户名。 |
POSTGRES_PORT | app | 指定PostgreSQL服务的端口号,设置为5432 。 |
POSTGRES_HOST | app | 指定PostgreSQL服务的主机名或IP地址,在Docker Compose中为主服务名db 。 |
APP_PORT | app | Joplin Server监听的端口,设置为22300 。 |
APP_BASE_URL | app | Joplin Server的基URL,应更改为实际运行时的云服务器弹性公网IP地址。 |
6.4 创建Joplin容器
执行以下命令,快速创建Joplin容器。
[root@flexusx-51a1 joplin]# docker compose up -d
WARN[0000] /data/joplin/docker-compose.yaml: `version` is obsolete
[+] Running 3/3
✔ Network joplin_default Created 0.0s
✔ Container joplin-db-1 Started 0.2s
✔ Container joplin-app-1 Started 0.3s
6.5 查看Joplin容器状态
检查Joplin容器状态,确保Joplin容器正常启动。
[root@flexusx-51a1 joplin]# docker compose ps
WARN[0000] /data/joplin/docker-compose.yaml: `version` is obsolete
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
joplin-app-1 joplin/server:latest "tini -- yarn start-…" app 6 minutes ago Up 6 minutes 0.0.0.0:22300->22300/tcp, :::22300->22300/tcp
joplin-db-1 postgres:16 "docker-entrypoint.s…" db 6 minutes ago Up 6 minutes 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
6.6 查看Joplin容器日志
检查Joplin容器日志,确保Joplin服务正常运行。
docker compose logs |grep 22300
七、访问前准备工作
7.1 设置防火墙与selinux
- 执行以下命令,关闭防火墙。
systemctl stop firewalld && systemctl disable firewalld
- 如果想要开启防火墙,则需要在防火墙上放行cockpit服务。
sudo firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload
- 关闭selinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
7.2 Flexus云服务器X实例安全组配置
进入Flexus云服务器X实例控制台,进行安全组规则配置。在安全组入方向规则上,放行22300端口。
八、访问Joplin服务端首页
8.1 访问Joplin-server初始页
浏览器访问地址:http://弹性公网IP地址:22300,将IP替换为自己服务器IP地址。浏览器打开后,进入Joplin服务端初始页。
8.2 登录Joplin-server
输入默认的账号密码:
初始张海:admin@localhist
初始密码:admin
九、Joplin客户端配置
9.1 下载Joplin客户端软件
我们直接从Github下载即可,地址:https://github.com/laurent22/joplin/releases/tag/v3.0.15。我们本次下载的是免安装版
JoplinPortable.exe
,直接下载到本地Windows电脑。
9.2 运行Joplin客户端
下载完毕后,直接双击打开Joplin客户端,即可使用。
9.3 同步配置工作
上方菜单栏,选择工具—选项——同步,进入同步设置界面。
同步目标选择:Joplin服务器 ;
Joplin服务器URL:http://弹性公网IP地址:22300/,将IP替换为自己云服务器的IP地址;
Joplin 服务器邮箱:Joplin 服务器的登录账号,这里默认为admin@localhost;
Joplin 服务器密码:Joplin 服务器的登录密码,这里默认为admin ;
其余配置默认,选择应用确认即可。
9.4 查看同步状态
同步相关设置完毕后,在Joplin客户端的左下角会出现已完成的提示。如果同步连接失败,这里会提示报错。
十、本地编辑笔记
10.1 新建笔记本
选择左侧栏笔记旁边的“+”号,新建笔记本,填写笔记本名称,这里填写Linux。
10.2 新建笔记
在刚新建的笔记本中,选择“新建笔记”,进入文本编辑器内。
10.3 编辑笔记内容
默认的编辑器为markdown格式,可以切换富文本编辑器。编辑笔记内容,右侧可以实时预览。
10.4 同步笔记内容
点击左下角的同步选项,将笔记内容同步到Joplin服务端。
10.5 Joplin服务端查看同步记录
登录Joplin服务端,选择items,可以看到数据同步记录。
十一、使用体验与总结
在本次实践中,我们不仅顺利地在
华为云Flexus云服务器X实例
上部署了Joplin应用,而且整个过程展现了华为云卓越的技术实力和服务质量。华为云Flexus X实例以其出色的性价比、强劲的计算能力和稳定的服务,在部署和运行Joplin的过程中提供了坚实的基础支持。无论是网络的稳定性还是操作的流畅度,都超出了我们的预期,确保了高效的工作流程。此外,华为云的安全保障措施也让我们在使用过程中倍感安心。总体而言,选择华为云Flexus X实例作为部署平台,使得Joplin的应用体验达到了一个新的高度,充分体现了华为云在云服务领域的强大竞争力。
借着华为云 828 B2B 企业节的强劲势头,赶紧来探寻 Flexus X 实例的诱人优惠吧,尽情体会技术与创新的美妙融合。无论是高性能计算,还是智能监控,每一处细节都展现着华为云对品质的执着坚守与不懈追求。加入华为云这个大家庭,绝非仅仅是一次技术上的提升,而是朝着未来坚定迈出的重要一步。让我们并肩前行,共同铸就云端的崭新辉煌!