搭建属于自己的云笔记——leanote

Pioneer 发布于 2022-09-12 6575 次阅读


如果你想要搭建一个属于自己的云笔记的话,leanote 是一个不错的选择。leanote 除了网页版外,还提供了 windows,Android 以及 iOS 平台的客户端。不过在部署 leanote 的过程中,坑还是比较多的,下面就来记录一下,防止大家踩坑。

1. 安装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页面

2. 下载与配置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 (仅供体验使用)

3. 添加后台运行

这里使用 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

就没问题了

leanote网页版

如果需要,可以使用NGINX反代,本文就不赘述了,可以参考这篇文章

4. APP使用

官方app下载页面下载程序

以windows版本为例,

leanote登录页

选择最底部的登录自建服务,输入站点,用户名,密码即可登录

-=||=-收藏