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版的搭建过程。
{% button #Windows版安装, Windows版 %}
{% button #Linux版安装, 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的配置极其麻烦,这里我放到另一篇文章里,{% post_link "MongoDB数据库-安装与配置" %}
测试mongodb安装
打开cmd,输入:
cd C:\MongoDB\Server\4.2\bin
mongo
行首出现> 表示进入mongo 的交互程序。此时输入:
show dbs
出现
show dbs admin 0.000GB config 0.000GB local 0.000GB
即安装成功
这个窗口可以先不要关
导入初始数据
打开新cmd, 运行以下命令
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命令时就会显示
show dbs
admin 0.000GB
config 0.000GB
leanote 0.002GB
local 0.000GB
{% note info %}
有时候leanote的数据库名字不是leanote
,而是 ir
那后面的配置文件里的数据库名字也要跟着改变
{% endnote %}
添加leanote数据库用户
像MySQL一样MongoDB也有root用户, mongodb初始是没有用户的, 这样很不安全, 所以要为leanote数据库新建一个用户来连接leanote数据库(注意, 并不是为leanote的表users里新建用户, 而是新建一个连接leanote数据库的用户, 类似数据库 表管理员).
打开cmd,进入bin目录,然后输入mongo进入数据库,再输入下面的命令
cd C:\MongoDB\Server\4.2\bin
mongo // 进入mongodb的交互程序
use leanote; // 切换到leanote数据库下,如果前面数据库名字是ir,这里也是ir
添加一个用户root, 密码是abc123
db.createUser({
user: 'root',
pwd: 'abc123',
roles: [{role: 'dbOwner', db: 'leanote'}]
});
测试下是否正确
db.auth("root", "abc123");
返回1表示正确
用户添加好后重启下mongodb服务。 (如果不会就去网上搜:重启Windows服务
)
还要修改配置文件: 修改 C:\leanote\conf\app.conf 文件
找到以下参数,并修改为你之前配置的
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
{% note info %}
如果前面数据库名字是ir,这里的db.dbname=
也是 ir
{% endnote %}
除此之外,请务必修改app.secret
一项, 在若干个随机位置处,将字符修改成一个其他的值, 否则会有安全隐患!其它的配置可暂时保持不变,或根据需要进行修改。
运行leanote
到了这一步,基本上可以宣告成功了
以 管理员权限 打开cmd,输入:
cd C:\leanote\bin
run.bat
最后出现以下信息证明运行成功:
Listening on :9000...
恭喜你, 打开浏览器输入: http://localhost:9000 体验leanote吧!
选择登录,默认管理员账号为admin,密码为abc123。登陆成功后选择右上角的后台管理,即可登录后台管理。
{% note primary 提示 %}
做到这里,leanote已经正常运行,但在电脑重启后,还需要再依次运行MongoDB server、leanote才能够正常使用,所以把 C:\leanote\bin\ 路径下的run.bat文件,创建一个快捷方式放到系统的启动里面即可,也可以放在桌面开机的时候手动启动。
如果你建在服务器上,那请自行将MongoDB服务设为自启,把Leanote启动文件配置为开机自动运行。
{% endnote %}
绑定域名
修改 C:\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换成你的域名
Linux版安装
下载
Leanote:
cd /home
wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz/download
MongoDB:
cd /home
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-5.0.6.tgz
解压Leanote压缩包
假设已将文件下载到 /home/
目录下,打开终端
,通过使用下面的命令
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 安装
{% post_link "MongoDB数据库-安装与配置" %}
导入Leanote初始数据
下面为MongoDB导入leanote初始数据。
leanote初始数据存放在/home/software/leanote/mongodb_backup/leanote_install_data
中。
重新打开一个终端, 输入以下命令导入数据。
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命令时就会显示
show dbs
admin 0.000GB
config 0.000GB
leanote 0.001GB
local 0.000GB
{% note info %}
有时候leanote的数据库名字不是leanote
,而是 ir
那后面的配置文件里的数据库名字也要跟着改变
{% endnote %}
初始数据的users
表中已有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进入数据库,再输入下面的命令
cd /home/software/mongodb-5.0.6/bin
mongo // 进入mongodb的交互程序
use leanote; // 切换到leanote数据库下,如果前面数据库名字是ir,这里也是ir
添加一个用户root, 密码是abc123
db.createUser({
user: 'root',
pwd: 'abc123',
roles: [{role: 'dbOwner', db: 'leanote'}]
});
测试下是否正确
db.auth("root", "abc123");
返回1表示正确
还要修改配置文件: 修改 /home/software/leanote/conf/app.conf
文件
找到以下参数,并修改为你之前配置的
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
{% note info %}
如果前面数据库名字是ir,这里的db.dbname=
也是 ir
{% endnote %}
除此之外,请务必修改app.secret
一项, 在若干个随机位置处,将字符修改成一个其他的值, 否则会有安全隐患!其它的配置可暂时保持不变,或根据需要进行修改。
运行leanote
到了这一步,基本上可以宣告成功了。
新开一个窗口, 运行:(注意: 在此之前请确保mongodb
已在运行!)
bash /home/software/leanote/bin/run.sh
最后出现以下信息证明运行成功:
Listening on :9000...
恭喜你完成安装, 打开浏览器输入: http://localhost:9000 体验leanote吧!
选择登录,默认管理员账号为admin,密码为abc123。登陆成功后选择右上角的后台管理,即可登录后台管理。
{% note primary 提示 %}
做到这里,leanote已经正常运行,但在电脑重启后,还需要再依次运行MongoDB、leanote才能够启动,所以可以把 Mongodb 创建一个服务项,并设为开机自启;把 leanote 设置为启动项。
{% endnote %}
绑定域名
修改 /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
脚本,输入以下内容:
#!/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
然后要备份的时候就运行一下这个脚本。
当然,最好是配置一个定时任务,运行这个脚本。我就是用宝塔的计时任务配置的。