Docker实战:轻松搭建Xnote笔记系统!
- 1.1 Xnote简介
- 1.2 Xnote特点
- 1.3 Xnote使用场景
- 2.1 本地环境规划
- 2.2 本次实践介绍
- 3.1 检查Docker服务状态
- 3.2 检查Docker版本
- 3.3 检查docker compose 版本
- 5.1 创建部署目录
- 5.2 编辑boot.properties文件
- 5.3 编辑docker-compose.yml文件
- 5.3 创建Xnote容器
- 5.4 检查Xnote容器状态
- 5.5 检查Xnote容器日志
- 6.1 进入Xnote初始页
- 6.2 登录Xnote
- 6.3 新建笔记标签
- 6.4 编辑笔记内容
一、Xnote介绍
1.1 Xnote简介
- Xnote简介
xnote是一款面向个人的轻量级笔记系统,提供多种维度的数据管理功能,致力于把个人从信息过载中解放出来。
1.2 Xnote特点
- 拥有丰富的数据管理能力,支持多种笔记格式以及文件管理功能
- 默认提供了一些常用的工具,同时提供扩展能力,用户可以编写各种插件满足自己的需求
- 跨平台,支持Windows、Mac、Linux三大平台,可以在云服务上部署,也可以在本地运行
- 100%自由的数据控制权,可以运行在多种数据库环境中
- 支持小规模的多用户,面向多用户的商业场景使用请谨慎
1.3 Xnote使用场景
- 个人笔记管理:xnote可以帮助个人快速记录和整理各种类型的笔记,包括文本、图片、链接等。用户可以根据需求创建不同的笔记本,将相关的笔记整理在一起,并且可以通过标签、分类等方式进行细致的管理。
- 项目管理:xnote提供了任务和标签的功能,可以用于个人或小团队的项目管理。用户可以创建任务,在任务中添加子任务、设置截止日期和优先级,还可以给任务打上标签,方便快速筛选和查找。
- 知识管理:xnote支持富文本编辑,用户可以灵活地创建和编辑自己的知识库。可以将学习笔记、技术文档、网页链接等都整理到xnote中,方便自己查阅和复习。
- 时间管理:xnote提供了提醒功能,用户可以设置提醒时间,让自己不会错过重要的事项。同时,用户还可以将待办事项与日历同步,更加高效地安排和管理时间。
- 团队协作:xnote支持多人协作,团队成员可以共享笔记本和任务,方便团队成员之间的沟通和合作。而且,xnote还提供评论和反馈的功能,让团队成员可以及时交流和讨论。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为centos7.6。
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎; 2.使用Docker部Xnote轻量级笔记系统。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
[root@jeven ~]# 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 Thu 2024-03-21 18:42:13 CST; 3min 53s ago Main PID: 43305 (dockerd) Tasks: 82 Memory: 103.6M CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
[root@jeven ~]# docker -v Docker version 20.10.17, build 100c701
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
[root@jeven ~]# docker compose version Docker Compose version v2.6.0
四、下载Xnote镜像
在华为云镜像仓库中拉取Xnote镜像
[root@jeven xnote]# docker pull swr.cn-north-4.myhuaweicloud.com/jeven/xnote Using default tag: latest latest: Pulling from jeven/xnote Digest: sha256:10a511df294788bcb8fa9f2c98bdd3a66b48ef65222347d55c1af030e131dbdf Status: Image is up to date for swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest
五、部署署Xnote应用
5.1 创建部署目录
创建部署目录
mkdir -p /data/xnote/data && cd /data/xnote
目录授权
chmod -R 777 /data/xnote/
5.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
5.3 编辑docker-compose.yml文件
编辑docker-compose.yml文件
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: - 5238:1234
5.3 创建Xnote容器
- 使用docker-compose.yaml文件创建Xnote容器
[root@jeven xnote]# docker compose up -d [+] Running 2/2 ⠿ Network xnote_default Created 0.1s ⠿ Container xnote Started 1.7s
5.4 检查Xnote容器状态
检查Xnote容器状态,确保Xnote容器正常启动。
[root@jeven xnote]# docker compose ps NAME COMMAND SERVICE STATUS PORTS xnote "python sentinel.py …" server running 0.0.0.0:5238->1234/tcp, :::5238->1234/tcp
5.5 检查Xnote容器日志
检查Xnote容器运行日志,确保Xnote服务正常运行。
docker compose logs
六、访问Xnote首页
6.1 进入Xnote初始页
访问地址:http://192.168.3.166:5238,将IP替换为自己服务器IP地址,进入到Xnote初始页。如果无法访问,则检查服务器防火墙是否设置,云服务器的安全组端口是否放行等。
6.2 登录Xnote
默认登录账号密码为admin/123456,进入Xnote首页。
6.3 新建笔记标签
首页——管理笔记本——新建笔记本,输入笔记本名称。
6.4 编辑笔记内容
点击创建笔记,编辑笔记标题。
编辑笔记内容,保存即可。
查看笔记效果
七、总结
Xnote是一款轻量级的笔记系统,可以使用Docker快速部署。它有简洁高效的页面,适合新手上手操作。在我的初步体验中,我发现Xnote页面流畅,没有卡顿现象,响应速度很快。它还提供了很好的笔记分类功能,方便我们整理和查找笔记。另外,Xnote还支持markdown笔记,这对于记录技术内容非常有帮助。如果你需要一个简单而实用的笔记系统,可以尝试使用体验一下Xnote。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
,