如果你想要搭建一个属于自己的云笔记的话,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
添加环境变量并启动
nano /etc/profile
export PATH=$PATH:/usr/local/mongodb/bin
source /etc/profile
mkdir /usr/local/mongodb/data
mongod --dbpath /usr/local/mongodb/data
如果看到
[initandlisten] waiting for connections on port 27017
就说明启动成功了,留在这里启动着,重新开启一个ssh页面
二、下载与配置leanote
首先在官方下载地址下载你的环境适合的程序
例如
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'}]})
应当看见
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "dbOwner",
"db" : "leanote"
}
]
}
验证一下
db.auth("root", "abc123");
如果看到
1
说明成功了,此时按Ctrl+Z退出
这里经常容易出现的一个问题是,遇到报错
TypeError: db.addUser is not a function
这是因为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
就说明成功了
这里容易出现的几个报错
如果看见
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 (仅供体验使用)
三、添加后台运行
这里使用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
进程配置会读取/etc/supervisor/conf.d目录下的*.conf配置文件,因此在这里添加mongodb的配置文件
nano /etc/supervisor/conf.d/mongodb.conf
写入
[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"
接着添加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"
注意这里的LEANOTE_PATH换为你的leanote路径
授予权限
sudo chmod 777 /var/run
sudo chmod 777 /etc/supervisor
启动supervisor
supervisord
重新加载配置
supervisorctl reload
就没问题了
如果需要,可以使用NGINX反代,本文就不赘述了,可以参考这篇文章
四、APP使用
在官方app下载页面下载程序
以windows版本为例,
选择最底部的登录自建服务,输入站点,用户名,密码即可登录