Docker一键部署Xnote:打造专属轻量级私有笔记系统
Docker一键部署Xnote打造专属轻量级私有笔记系统一、Xnote介绍1.1 Xnote简介1.2 Xnote特点1.3 Xnote使用场景二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、下载Xnote镜像五、部署署Xnote应用5.1 创建部署目录5.2 编辑boot.properties文件5.3 编辑docker-compose.yml文件5.3 创建Xnote容器5.4 检查Xnote容器状态5.5 检查Xnote容器日志六、访问Xnote首页6.1 进入Xnote初始页6.2 登录Xnote6.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。hostnameIP地址操作系统版本Docker版本jeven192.168.3.166centos 7.620.10.172.2 本次实践介绍1.本次实践部署环境为个人测试环境生产环境请谨慎2.使用Docker部Xnote轻量级笔记系统。三、本地环境检查3.1 检查Docker服务状态检查Docker服务是否正常运行确保Docker正常运行。[rootjeven ~]# 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 Thu2024-03-2118:42:13 CST;3min 53s ago Docs: https://docs.docker.com Main PID:43305(dockerd)Tasks:82Memory:103.6M CGroup: /system.slice/docker.service3.2 检查Docker版本检查Docker版本[rootjeven ~]# docker -vDocker version20.10.17, build 100c7013.3 检查docker compose 版本检查Docker compose版本确保2.0以上版本。[rootjeven ~]# docker compose versionDocker Compose version v2.6.0四、下载Xnote镜像在华为云镜像仓库中拉取Xnote镜像[rootjeven xnote]# docker pull swr.cn-north-4.myhuaweicloud.com/jeven/xnoteUsing default tag: latest latest: Pulling from jeven/xnote Digest: sha256:10a511df294788bcb8fa9f2c98bdd3a66b48ef65222347d55c1af030e131dbdf Status: Image is up todateforswr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latest五、部署署Xnote应用5.1 创建部署目录创建部署目录mkdir-p/data/xnote/datacd/data/xnote目录授权chmod-R777/data/xnote/5.2 编辑boot.properties文件编辑boot.properties文件主要修改db_driver sqlite部分定义数据库类型这里直接使用sqlite数据库。vimboot.properties# 这是系统默认配置请不要编辑# 配置项使用下划线(_)划分模块和单词除了最后一个(.type)其他地方不要使用(.)# 关于数字的说明# kb/mb/gb/tb/pb的进位是1024, k/m的进位是1000# 例如: 1kb 1024, 1k 1000# 数据存储的根目录data./data# HTTP服务的端口号port1234# 服务器根目录默认是空根路径server_home# 最小线程数min_threads15min_threads.typeint# 是否开启调试模式debugfalsedebug.typebool# 启动后是否自动打开浏览器(在桌面运行的选项)open_browserfalseopen_browser.typebool# 启动后是否播放语音提示ringtonefalseringtone.typebool# 是否强制跳转httpsforce_httpsfalseforce_https.typebool# 是否快速重载开发模式使用fast_reloadfalsefast_reload.typebool# TODO 重启的内存阈值 -1表示不重启reload_mem_threshold-1reload_mem_threshold.typeint# 定时任务开关cron_enabledtruecron_enabled.typebool# 是否开启WEBDAVwebdavfalsewebdav.typebool# 数据库驱动 {leveldb, leveldbpy, sqlite, mysql}db_driversqlite# 缓存驱动 {memory, db, redis}db_driver_cachememory# 是否开启数据库备份db_backuptruedb_backup.typebool# 是否开启数据库debug日志db_log_debugfalsedb_log_debug.typebool# 数据库备份失效时间天db_backup_expire_days5db_backup_expire_days.typeint# 是否开启数据库调试db_debugfalsedb_debug.typebool# 分析table_proxy性能(临时)db_profile_table_proxyfalsedb_profile_table_proxy.typebool# 系统日志最大长度db_sys_log_max_size10000db_sys_log_max_size.typeint# leveldb缓存配置block_cache_size16777216# 16Mblock_cache_size.typeint# leveldb的写入缓冲配置(MemTable的大小)write_buffer_size4194304# 4Mwrite_buffer_size.typeint# leveldb最大打开的文件数max_open_files1000max_open_files.typeint# lmdb配置lmdb_map_size1GB lmdb_map_size.typeint# 主从同步配置# leader: 主节点# follower: 从节点node_roleleader# 节点IDnode_idmy_node_id# 是否构建文件同步索引build_fs_sync_indexfalsebuild_fs_sync_index.typebool# 是否开启binlogbinlogfalsebinlog.typebool# binlog最大值binlog_max_size1M binlog_max_size.typeint# 是否同步文件sync_files_from_leaderfalsesync_files_from_leader.typebool# 是否同步数据库sync_db_from_leaderfalsesync_db_from_leader.typebool# 同步的轮询时间sync_interval_seconds3sync_interval_seconds.typeint# 笔记本配置笔记本的最大深度max_book_depth2max_book_depth.typeint# sqlite的journal模式默认DELETE改成WAL可以提高并发性能但是兼容性比较差sqlite_journal_modeDELETE# mysql配置还不稳定试验中mysql_databasexnote mysql_hostmysql_usermysql_passwordmysql_cloud_typemysql_pool_size10mysql_pool_size.typeint mysql_port3306mysql_port.typeint# 权限配置auth_max_session_size20# 单个用户最大会话数量auth_max_session_size.typeint# UI配置ui_show_footertrueui_show_footer.typebool5.3 编辑docker-compose.yml文件编辑docker-compose.yml文件version:3services:server:image:swr.cn-north-4.myhuaweicloud.com/jeven/xnote:latestcontainer_name:xnotevolumes:-/data/xnote/data:/xnote/data-/data/xnote/boot.properties:/config/boot/boot.sae.propertiesports:-5238:12345.3 创建Xnote容器使用docker-compose.yaml文件创建Xnote容器[rootjeven xnote]# docker compose up -d[]Running2/2 ⠿ Network xnote_default Created0.1s ⠿ Container xnote Started1.7s5.4 检查Xnote容器状态检查Xnote容器状态确保Xnote容器正常启动。[rootjeven xnote]# docker compose psNAME COMMAND SERVICE STATUS PORTS xnotepython sentinel.py …server running0.0.0.0:5238-1234/tcp, :::5238-1234/tcp5.5 检查Xnote容器日志检查Xnote容器运行日志确保Xnote服务正常运行。dockercompose 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。