leanote蚂蚁笔记-私人云笔记服务器搭建

leanote蚂蚁笔记·

目前在知识管理/笔记类软件领域有强大的印象笔记 (Evernote)、微软(OneNote)、国产的(为知笔记)、(有道云笔记)以及(讯飞语记)等都是非常优秀的产品,但总有一部分人会觉得“把自己的笔记放在别人兜里,心里不踏实”。
我一开始用的也是讯飞语记,刚开始还不懂,只是被它的语音识别和云同步所吸引。后来懂的越来越多,愈发觉得自己的一些笔记还是不要放别人的数据库里。碰巧,在阿里云的一篇学习文章里,我发现了leanote,于是乎,我也就进入了私人云笔记时代!

个人对leanote的理解:
简约、免费、开源、支持 Markdown 语法,支持程序代码高亮、笔记历史记录、支持笔记分享协作、将笔记发布成博客、云同步、多终端兼容(Windows、Mac、iOS、Linux、Android),最关键的:搭建私人云笔记。

介绍·

Leanote, 不只是笔记!

Leanote 蚂蚁笔记是一款国产的在线网页版云笔记软件,集知识管理、笔记、分享、博客功能于一身,界面简约但功能不简单!

该项目采用 Golang+MongoDB 开发,现已完全开源并能免费使用。普通用户可以直接使用 Leanote 提供的公共服务,也可以自行搭建属于自己或公司局域网内的私有云笔记平台。

特性

  • 高效笔记:Leanote 有易操作的界面, 包含富文本编辑器和Markdown编辑器,让您的笔记记录更轻松和高效。对高阶用户,还提供Vim和Emacs编辑模式,助推你的写作速度更上层楼。
  • 知识管理: Leanote 灵活而强大的“笔记本-笔记-标签”系统,让它成为你个人知识管理的利器。
  • 分享: 你可以通过Leanote同好友分享知识、想法和经历, 邀请好友加入你的笔记簿,通过云端交流信息。
  • 协作: Leanote协助你与同事之间相互协作,激荡新思路,随时随地头脑风暴。
  • 博客: Leanote也可以作为你的个人博客, 把你的知识传播的更远!

其它特性

  • 支持Markdown编辑
  • 写作模式
  • Vim 及 Emacs 编辑模式
  • 支持PDF导出
  • 支持批量操作
  • 博客自定义主题, 实现高度定制化

leanote·

下载准备·

搭建leanote需要,leanote本体和MongoDB数据库支持。

首先,是leanote官方下载地址MongoDB官方下载地址,用这个可以马上使用到最新的产品。

然后,如果大家不想那么麻烦的去官方那里下载,或者官方链接已经丢失,可以私聊我获取文件。

写在前面·

这里,我将介绍Windows版和Linux版的搭建过程。

Windows版 Linux版

Windows版安装·

1、将下载的文件里面的leanote-windows-amd64-v2.6.1.bin.tar.gz文件解压到C盘(本文默认解压到了 C:\leanote)。
2、运行mongodb-windows-x86_64-4.4.2-signed.msi进行安装(本文默认解压到了 C:\MongoDB\Server\4.2)。
接下来的MongoDB的配置极其麻烦,这里我放到另一篇文章里,MongoDB数据库 安装与配置


测试mongodb安装·

打开cmd,输入:

1
2
cd C:\MongoDB\Server\4.2\bin
mongo

行首出现> 表示进入mongo 的交互程序。此时输入:

show dbs

出现

1
2
3
4
>show dbs
>admin 0.000GB
>config 0.000GB
>local 0.000GB

即安装成功

这个窗口可以先不要关

导入初始数据·

打开新cmd, 运行以下命令

1
2
cd C:\MongoDB\Server\4.2\bin
mongorestore -h localhost -d leanote --dir C:\leanote\mongodb_backup\leanote_install_data

出现 “499 document(s) restored successfully. 0 document(s) failed to restore.” 表示结束,这样就完成了数据的导入

在刚才没关闭的窗口里,你再次使用show dbs命令时就会显示

1
2
3
4
5
show dbs
admin 0.000GB
config 0.000GB
leanote 0.002GB
local 0.000GB

有时候leanote的数据库名字不是leanote,而是 ir那后面的配置文件里的数据库名字也要跟着改变

添加leanote数据库用户·

像MySQL一样MongoDB也有root用户, mongodb初始是没有用户的, 这样很不安全, 所以要为leanote数据库新建一个用户来连接leanote数据库(注意, 并不是为leanote的表users里新建用户, 而是新建一个连接leanote数据库的用户, 类似数据库 表管理员).

打开cmd,进入bin目录,然后输入mongo进入数据库,再输入下面的命令

1
2
3
cd C:\MongoDB\Server\4.2\bin
mongo // 进入mongodb的交互程序
use leanote; // 切换到leanote数据库下,如果前面数据库名字是ir,这里也是ir

添加一个用户root, 密码是abc123

1
2
3
4
5
db.createUser({
user: 'root',
pwd: 'abc123',
roles: [{role: 'dbOwner', db: 'leanote'}]
});

测试下是否正确

1
db.auth("root", "abc123");

返回1表示正确

用户添加好后重启下mongodb服务。 (如果不会就去网上搜:重启Windows服务


还要修改配置文件: 修改 C:\leanote\conf\app.conf 文件

找到以下参数,并修改为你之前配置的

1
2
3
4
5
db.host=127.0.0.1
db.port=27017
db.dbname=leanote # required
db.username=`root` # if not exists, please leave blank
db.password=`abc123` # if not exists, please leave blank

如果前面数据库名字是ir,这里的db.dbname= 也是 ir

除此之外,请务必修改app.secret一项, 在若干个随机位置处,将字符修改成一个其他的值, 否则会有安全隐患!其它的配置可暂时保持不变,或根据需要进行修改。

运行leanote·

到了这一步,基本上可以宣告成功了
管理员权限 打开cmd,输入:

1
2
cd C:\leanote\bin
run.bat

最后出现以下信息证明运行成功:

Listening on :9000…

恭喜你, 打开浏览器输入: http://localhost:9000 体验leanote吧!

选择登录,默认管理员账号为admin,密码为abc123。登陆成功后选择右上角的后台管理,即可登录后台管理。

提示

做到这里,leanote已经正常运行,但在电脑重启后,还需要再依次运行MongoDB server、leanote才能够正常使用,所以把 C:\leanote\bin\ 路径下的run.bat文件,创建一个快捷方式放到系统的启动里面即可,也可以放在桌面开机的时候手动启动。

如果你建在服务器上,那请自行将MongoDB服务设为自启,把Leanote启动文件配置为开机自动运行。

绑定域名·

修改 C:\leanote\conf\app.conf 文件里的

1
2
http.port=80
site.url=http://localhost:9000

输入http://localhost:9000,假设ip地址是111.111.111.111,把localhost换成你的IP地址111.111.111.111即可,如果有域名,也可以把localhost换成你的域名

Linux版安装·

下载·

Leanote:

1
2
3
cd /home

wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz/download

MongoDB:

1
2
3
cd /home

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-5.0.6.tgz

解压Leanote压缩包·

假设已将文件下载到 /home/ 目录下,打开终端,通过使用下面的命令

1
2
3
4
5
6
7
cd /home

tar -xzvf leanote-linux-amd64-v2.6.1.bin.tar.gz

mkdir -p /home/software

mv /home/leanote /home/software/leanote

解压文件,从而在 /home/software 目录下生成 leanote目录

Mongodb 安装·

MongoDB数据库 安装与配置

导入Leanote初始数据·

下面为MongoDB导入leanote初始数据。

leanote初始数据存放在/home/software/leanote/mongodb_backup/leanote_install_data中。

重新打开一个终端, 输入以下命令导入数据。

1
mongorestore -h localhost -d leanote --dir /home/software/leanote/mongodb_backup/leanote_install_data/

出现 “499 document(s) restored successfully. 0 document(s) failed to restore.” 表示结束,这样就完成了数据的导入

当你再次使用show dbs命令时就会显示

1
2
3
4
5
6
show dbs

admin 0.000GB
config 0.000GB
leanote 0.001GB
local 0.000GB

有时候leanote的数据库名字不是leanote,而是 ir那后面的配置文件里的数据库名字也要跟着改变

初始数据的users表中已有2个用户:

1
2
user1 username: admin, password: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码)
user2 username: demo@leanote.com, password: demo@leanote.com (仅供体验使用)

添加leanote数据库用户·

像MySQL一样MongoDB也有root用户, mongodb初始是没有用户的, 这样很不安全, 所以要为leanote数据库新建一个用户来连接leanote数据库(注意, 并不是为leanote的表users里新建用户, 而是新建一个连接leanote数据库的用户, 类似数据库 表管理员).

打开终端,进入bin目录,然后输入mongo进入数据库,再输入下面的命令

1
2
3
cd /home/software/mongodb-5.0.6/bin
mongo // 进入mongodb的交互程序
use leanote; // 切换到leanote数据库下,如果前面数据库名字是ir,这里也是ir

添加一个用户root, 密码是abc123

1
2
3
4
5
db.createUser({
user: 'root',
pwd: 'abc123',
roles: [{role: 'dbOwner', db: 'leanote'}]
});

测试下是否正确

1
db.auth("root", "abc123");

返回1表示正确


还要修改配置文件: 修改 /home/software/leanote/conf/app.conf文件

找到以下参数,并修改为你之前配置的

1
2
3
4
5
db.host=127.0.0.1
db.port=27017
db.dbname=leanote # required
db.username=root # if not exists, please leave blank
db.password=abc123 # if not exists, please leave blank

如果前面数据库名字是ir,这里的db.dbname= 也是 ir

除此之外,请务必修改app.secret一项, 在若干个随机位置处,将字符修改成一个其他的值, 否则会有安全隐患!其它的配置可暂时保持不变,或根据需要进行修改。

运行leanote·

到了这一步,基本上可以宣告成功了。

新开一个窗口, 运行:(注意: 在此之前请确保mongodb已在运行!)

1
bash /home/software/leanote/bin/run.sh

最后出现以下信息证明运行成功:

Listening on :9000…

恭喜你完成安装, 打开浏览器输入: http://localhost:9000 体验leanote吧!
选择登录,默认管理员账号为admin,密码为abc123。登陆成功后选择右上角的后台管理,即可登录后台管理。

提示

做到这里,leanote已经正常运行,但在电脑重启后,还需要再依次运行MongoDB、leanote才能够启动,所以可以把 Mongodb 创建一个服务项,并设为开机自启;把 leanote 设置为启动项。

绑定域名·

修改 /home/software/leanote/conf/app.conf 文件里的

http.port=80
site.url=http://localhost:9000

输入http://localhost:9000,假设ip地址是111.111.111.111,把localhost换成你的IP地址111.111.111.111即可,如果有域名,也可以把localhost换成你的域名

leanote备份·

笔记的备份还是非常有必要的,我曾经发生过mongodb崩溃、Leanote崩溃、服务器崩溃等等问题,虽然基本上都救回来了,但如果有备份的话,那一切都会更简单一点。

新建一个leanote_backup.sh脚本,输入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash

# 获得当前的时间
currentTime=$(date +%Y%m%d%H%M%S)

mkdir -p /home/data/leanote_backup/new
mkdir -p /home/data/leanote_backup/old

mv /home/data/leanote_backup/new/leanote_* /home/data/leanote_backup/old

# mongodb备份命令
mongodump -h 127.0.0.1:27017 -d leanote -o /home/data/leanote_backup

# 压缩为tar.gz文件
tar -zcvf /home/data/leanote_backup/new/leanote_${currentTime}.tar.gz /home/data/leanote_backup/leanote

# 删除30天前的备份文件
# 类型匹配查找 -type ,f 为普通文件,d 为目录,l 为链接
find /home/data/leanote_backup/old/ -mtime +30 -type f -name "*.tar.gz" -exec rm -rf {} \;

# 删除leanote备份文件夹
rm -rf /home/data/leanote_backup/leanote

然后要备份的时候就运行一下这个脚本。

当然,最好是配置一个定时任务,运行这个脚本。我就是用宝塔的计时任务配置的。