面向个人的轻量级笔记系统Xnote

什么是 Xnote ?

Xnote 是一款面向个人的轻量级笔记系统,提供多种维度的数据管理功能,致力于打造面向个人的安全、可扩展的知识库,支持笔记、待办、文件管理等多种功能,帮助你管好每一份数据,把个人从信息过载中解放出来。

官方 demo 体验地址: https://1k5u680558.goho.co/

测试账号 user01/123456, user02/123456

这个界面让老苏产生这不是个笔记,而是个论坛的错觉

构建镜像

如果你不想自己构建,可以跳过,直接阅读下一章节

Dockerfile 是官方提供的,但是并没有找到编译好的镜像文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
FROM python:3.7.2

COPY config/requirements.txt ./

RUN pip install --upgrade pip

# install required packages
RUN pip install -r requirements.txt

# set timezone
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

COPY . .

CMD ["python", "sentinel.py", "app.py", "--config", "config/boot/boot.sae.properties"]

构建镜像和容器运行的基本命令如下👇

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 下载代码(国内用户)
git clone https://gitee.com/xupingmao/xnote.git

# 下载代码(国外用户)
git clone https://github.com/xupingmao/xnote.git

# 进入目录
cd xnote

# 修改 config/requirements.txt 文件,增加一行 mysql-connector>=2.2.9

# 构建镜像
docker build -t wbsu2003/xnote:v2 .

# 运行容器
docker run -d \
--name xnote \
-p 1234:1234 \
-v $(pwd)/data:/data \
-v $(pwd)/boot.properties:/config/boot/boot.sae.properties \
wbsu2003/xnote:v2

前期准备

设置文件 boot.properties

Xnote 在启动运行时,需要用到配置文件 boot.properties,能设置的参数比较多,最完整的设置可以请看 https://gitee.com/xupingmao/xnote/blob/master/config/boot/boot.default.properties 文件,但实际应用时不需要设置这么多

举个例子,如果我们要使用 SQlite 做数据库,boot.properties 的内容只要一行就行:

1
2
# 这个配置项只设置数据库驱动,这样无需安装任何第三方库就能启动
db_driver = sqlite

建数据库

app.py源代码看,Xnote 是支持使用 MySQL 做数据库,但似乎写死了 3306 端口,所以群晖自带的数据库只能使用 MariaDB 5 了(如果你同时安装了 MariaDB 5MariaDB 10 的话)

在 phpMyAdmin 中创建了名为 xnote 的数据库

为了便于说明,我们假设数据库密码为 123456

boot.properties 会复杂一点,除了数据库驱动外,还需要增加一些设置,内容如下:

1
2
3
4
5
6
7
8
9
10
11
# 设置数据库驱动
db_driver = mysql

# mysql配置
mysql_database = xnote
mysql_host = 192.168.0.197
mysql_user = xnote
mysql_password = 123456
mysql_cloud_type =
mysql_pool_size = 20
mysql_pool_size.type = int

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 wbsu2003 ,找到 wbsu2003/xnote,版本选择 latest

docker 文件夹中,创建一个新文件夹 xnote,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/xnote/data /data 存放数据等
docker/xnote/boot.properties /config/boot/boot.sae.properties 设置文件

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
1234 1234

默认没有对外暴露端口

需要点 + 号进行添加

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建文件夹 xnote 和 子目录
mkdir -p /volume2/docker/xnote/data

# 进入 xnote 目录
cd /volume2/docker/xnote

# 将 boot.properties 放入当前目录

# 运行容器
docker run -d \
--name xnote \
-p 1234:1234 \
-v $(pwd)/data:/data \
-v $(pwd)/boot.properties:/config/boot/boot.sae.properties \
wbsu2003/xnote:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
version: '3'

services:
xnote:
image: wbsu2003/xnote:latest
container_name: xnote
restart: unless-stopped
ports:
- 1234:1234
volumes:
- ./data:/data
- ./boot.properties:/config/boot/boot.sae.properties

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 xnote 和 子目录
mkdir -p /volume2/docker/xnote/data

# 进入 xnote 目录
cd /volume2/docker/xnote

# 将 docker-compose.yml 和 boot.properties 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:1234 就能看到主界面

登录

初始化的管理员账号是 admin,默认密码是 123456

用管理员账号登录成功后的主界面,虽然还是空空如也,但是已经有了分类

进入相应的分类就可以开始创建

后台里可以看到系统信息

麻雀虽小五脏俱全

参考文档

xnote: 致力于打造面向个人的安全、可扩展的知识库,支持笔记、待办、文件管理等多种功能,帮助你管好每一份数据。
地址:https://gitee.com/xupingmao/xnote

xupingmao/xnote: 个人知识库+工具箱
地址:https://github.com/xupingmao/xnote