搭建属于自己的云笔记——leanote
如果你想要搭建一个属于自己的云笔记的话,leanote 是一个不错的选择。leanote 除了网页版外,还提供了 windows,Android 以及 iOS 平台的客户端。不过在部署 leanote 的过程中,坑还是比较多的,下面就来记录一下,防止大家踩坑。
# 一、安装 MongoDB
注意,这里一定要安装官方测试过的 MongoDB 的版本,如果无脑安装新版,最后你会发现 leanote 根本连不上。
直接下载安装官方使用的 3.0.1 版本吧
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.1.tgz
tar -xzvf mongodb-linux-x86_64-3.0.1.tgz -C /usr/local
mv /usr/local/mongodb-linux-x86_64-3.0.1 /usr/local/mongodb
2
3
添加环境变量并启动
nano /etc/profile
export PATH=$PATH:/usr/local/mongodb/bin
source /etc/profile
mkdir /usr/local/mongodb/data
mongod --dbpath /usr/local/mongodb/data
2
3
4
5
如果看到
[initandlisten] waiting for connections on port 27017
就说明启动成功了,留在这里启动着,重新开启一个 ssh 页面
# 二、下载与配置 leanote
首先在官方下载地址 (opens new window)下载你的环境适合的程序
例如
wget https://onboardcloud.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
解压
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
向 MongoDB 中还原数据
mongorestore -h localhost -d leanote --dir leanote/mongodb_backup/leanote_install_data/
为了安全起见,需要添加一个账户,执行
mongo
在控制台中继续执行,其中 user 是用户名,pwd 是密码
use leanote;
db.createUser({user:'root',pwd:'abc123',roles: [{role: 'dbOwner', db: 'leanote'}]})
2
应当看见
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "dbOwner",
"db" : "leanote"
}
]
}
2
3
4
5
6
7
8
9
验证一下
db.auth("root", "abc123");
如果看到
1
说明成功了,此时按 Ctrl+Z 退出
这里经常容易出现的一个问题是,遇到报错
TypeError: db.addUser is not a function
2
3
这是因为 V3 版本后将 addUser 废弃了,你可能用的是旧的指令,请使用
db.createUser({user:'root',pwd:'abc123',roles: [{role: 'dbOwner', db: 'leanote'}]})
就不会出现问题
此时回到前面启动 mongod 的那个 ssh 界面,Ctrl+C 中断掉,重新执行
mongod --dbpath /usr/local/mongodb/data --auth
接下来对 leanote 的配置文件进行一些修改,找到 leanote 安装目录下的 /conf/app.conf
在文件中注意以下几个地方
- 找到 app.secret,为了安全性,务必更改
- 找到 db.username,更改为前面 MongoDB 中添加的用户名
- 找到 db.password,更改为前面 MongoDB 中添加的密码
再多提醒一句,你添加的值和后面的 #注释间,务必要至少有一个空格,不要连在一起了
进入 leanote 目录下的 bin 目录,例如
cd leanote/bin
bash run.sh
#如果看到
Listening on.. 0.0.0.0:9000
2
3
4
5
6
7
就说明成功了
这里容易出现的几个报错
如果看见
panic: no reachable servers
首先检查 MongoDB 是否正常启动,可以敲 mongo 指令看能否正常进入
如果一切都没有问题,那么还有一种可能就是,你安装的 MongoDB 版本太新了,这个 leanote 他就是连不上。。。
如果看见
panic: server returned error on SASL authentication step: Authentication failed.
说明你启动 MongoDB 的时候没有加上 --auth 参数,请关闭 mongo 后重新执行
mongod --dbpath /usr/local/mongodb/data --auth
此时打开 http://ip:9000 就能访问 leanote 了。
程序默认有两个用户
user1 username: admin, password: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码)
user2 username: demo@leanote.com, password: demo@leanote.com (仅供体验使用)
2
# 三、添加后台运行
这里使用 supervisor 来守护进程
首先关掉之前 ssh 中开启的 mongodb
安装 supervisor
apt install supervisor
更改 supervisor 配置
nano /etc/supervisor/supervisord.conf
#将
[include]
files = /etc/supervisor/conf.d/*.conf
#改为
[include]
files = /etc/supervisor/conf.d/*.conf /etc/supervisor/example.ini
2
3
4
5
6
进程配置会读取 /etc/supervisor/conf.d 目录下的 *.conf 配置文件,因此在这里添加 mongodb 的配置文件
nano /etc/supervisor/conf.d/mongodb.conf
2
写入
[program:mongodb]
directory=/usr/local/mongodb/bin
command=/usr/local/mongodb/bin/mongod --dbpath /usr/local/mongodb/data --auth
autostart=true
autorestart=true
startretries=10
redirect_stderr=true
stdout_logfile=/usr/local/mongodb/supervisor.log
environment=ASPNETCORE_ENVIRONMENT="Development"
2
3
4
5
6
7
8
9
接着添加 leanote
nano /etc/supervisor/conf.d/leanote.conf
写入
[program:leanote]
directory=YOUR_LEANOTE_PATH/bin
command=bash run.sh
autostart=true
autorestart=true
startretries=10
redirect_stderr=true
stdout_logfile=/root/leanote/supervisor.log
environment=ASPNETCORE_ENVIRONMENT="Development"
2
3
4
5
6
7
8
9
注意这里的 LEANOTE_PATH 换为你的 leanote 路径
授予权限
sudo chmod 777 /var/run
sudo chmod 777 /etc/supervisor
2
启动 supervisor
supervisord
重新加载配置
supervisorctl reload