主要介绍,如何在我们自己的个人云服务器中搭建Leanote云笔记。我的服务器为centos环境的,所以下面的操作主要是CentOS的。
其他环境下也是大同小异。只是部分配置指令会有区别。
Leanote笔记(蚂蚁笔记)是一个在线云笔记应用。也是一个开源系统。
开源网址为:
https://github.com/leanote
官网地址为:https://leanote.com/
我们搭建完毕后台服务器之后,前端可以使用官网提供的客户端,只需要将客户端访问的服务器地址修改为我们自己搭建的服务器。
Leanote环境搭建需要配置不少支持软件。下面将会按照从无到有,一步一步的介绍实现步骤。
MongoDB是一个基于分布式文件存储的高性能数据库。它支持的数据结构非常松散是类似于json和bson格式,因此可以存储比较复杂的数据类型。
我们的云笔记内容就刚好可以存储在该数据库中。
如果指令使用不熟练,可以创建一个mongodb-org.repo 文件,然后通过xftp等软件,推送到服务器的yum.repos.d文件夹中。
repo文件中的字段介绍:
打开mongod.conf 文件:
root@iZuf6c40gmjvniytagm3upZ ~]# vim /etc/mongod.conf
.NET标签下的内容进行修改为:
net:
port: 27017
bindIp: 0.0.0.0
然后保存配置文件。
我们在这一步可以知道MongoDB的端口是27017。如果不想使用这个端口,可以直接在这里进行修改。
我们安装MongoDB的时候,安装包自动会创建一个mongod.service配置文件。所以我们可以直接使用systemctl start mongod。
示例:
[root@iZuf6c40gmjvniytagm3upZ ~]# systemctl start mongod
[root@iZuf6c40gmjvniytagm3upZ ~]# systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-10-21 16:40:46 CST; 19s ago
Docs: https://docs.mongodb.org/manual
Process: 2033 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS)
Process: 2030 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 2027 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS)
Process: 2025 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS)
Main PID: 2036 (mongod)
Tasks: 24
Memory: 74.3M
CGroup: /system.slice/mongod.service
└─2036 /usr/bin/mongod -f /etc/mongod.conf
Oct 21 16:40:45 iZuf6c40gmjvniytagm3upZ systemd[1]: Starting MongoDB Database Server...
Oct 21 16:40:45 iZuf6c40gmjvniytagm3upZ mongod[2033]: about to fork child process, waiting until server is ready for connections.
Oct 21 16:40:45 iZuf6c40gmjvniytagm3upZ mongod[2033]: forked process: 2036
Oct 21 16:40:46 iZuf6c40gmjvniytagm3upZ systemd[1]: Started MongoDB Database Server.
[root@iZuf6c40gmjvniytagm3upZ ~]#
systemctl status mongod 是用来查询mongod服务的运行状态。
# 启动mongod服务
systemctl start mongod
# 停止mongod服务
systemctl stop mongod
# 重启mongod服务
systemctl restart mongod
#查看mongod服务当前状态
systemctl status mongod
#设置mongod服务开机自启动
#停止mongod服务开机自启动
systemctl disable mongod
然后,我们可以给MongoDB配置为开机自启动:systemctl enable mongod
mongodb默认没有用户的,如果为了安全性,大家可以给自己的mongodb添加一个用户。
但是我们如果只是在自己的服务器上配置,不创建用户也没有关系。
如果你创建了用户名和密码。那么在Leanote的app.conf配置文件中要添加上用户名和密码哦。否则我们的云笔记就访问不了服务器了。
注意:创建数据库账户的密码时,不要添加@,# 等特殊字符。否则leanote会连接不上数据库的。
通过wget 命令下载: wget --no-check-certificate
https://nchc.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
我下载的是2.6.1版本 连接下载地址界面:
https://sourceforge.net/projects/leanote-bin/
(PS:现在最新版本就是v2.6.1版)
t@iZuf6c40gmjvniytagm3upZ ~]# wget --no-check-certificate https://nchc.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
--2022-10-21 16:45:27-- https://nchc.dl.sourceforge.net/project/leanote-bin/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
Resolving nchc.dl.sourceforge.net (nchc.dl.sourceforge.net)... 140.110.96.69, 2001:e10:ffff:1f02::17
Connecting to nchc.dl.sourceforge.net (nchc.dl.sourceforge.net)|140.110.96.69|:443... connected.
WARNING: cannot verify nchc.dl.sourceforge.net's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
Issued certificate has expired.
HTTP request sent, awaiting response... 200 OK
Length: 21438265 (20M) [application/x-gzip]
Saving to: ‘leanote-linux-amd64-v2.6.1.bin.tar.gz’
100%[============================================================================================>] 21,438,265 5.52MB/s in 4.7s
2022-10-21 16:45:32 (4.33 MB/s) - ‘leanote-linux-amd64-v2.6.1.bin.tar.gz’ saved [21438265/21438265]
[root@iZuf6c40gmjvniytagm3upZ ~]# ls
leanote-linux-amd64-v2.6.1.bin.tar.gz
[root@iZuf6c40gmjvniytagm3upZ ~]#
我们就会在root文件夹下,看到我们刚才下载的
leanote-linux-amd64-v2.6.1.bin.tar.gz压缩文件。
执行解压缩命令:tar -zxvf
leanote-linux-amd64-v2.6.1.bin.tar.gz
[root@iZuf6c40gmjvniytagm3upZ ~]# tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
leanote/
leanote/app/
leanote/bin/
...
解押完毕后,我们就会在当前目录下看到一个leanote文件夹。
[root@iZuf6c40gmjvniytagm3upZ ~]# ls
leanote leanote-linux-amd64-v2.6.1.bin.tar.gz
[root@iZuf6c40gmjvniytagm3upZ ~]#
Leanote官方介绍,需要将leanote/conf/app.conf中的app.secret项进行修改。否则会有安全风险。
那么我们通过vim修改该文件就可以了。
[root@iZuf6c40gmjvniytagm3upZ ~]# ls
leanote leanote-linux-amd64-v2.6.1.bin.tar.gz
[root@iZuf6c40gmjvniytagm3upZ ~]# vim leanote/conf/app.conf
在打开的文件中找到:app.secret选项。
# mongdb
db.host=127.0.0.1
db.port=27017
db.dbname=leanote # required
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
# or you can set the mongodb url for more complex needs the format is:
# mongodb://myuser:mypass@localhost:40001,otherhost:40001/mydb
# db.url=mongodb://root:root123@localhost:27017/leanote
# db.urlEnv=${MONGODB_URL} # set url from env. eg. mongodb://root:root123@localhost:27017/leanote
# You Must Change It !! About Security!!
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y #
#--------------------------------
# revel config
# for dev
#-----------------------
修改成任意字符就可以:
# You Must Change It !! About Security!!
app.secret=123qweasdzxcqweasdzxc
然后执行保存操作即可。
该配置文件也决定了Leanote服务的启动端口哦。默认配置端口为9000。如果想修改们可以通过该文件进行修改
配置完毕后,就可以开始配置数据库连接和初始化了。
示例如下:
[root@iZuf6c40gmjvniytagm3upZ ~]# mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/
注意,我的leanote目录就在root文件夹下,所以这么配置的。
大家要根据实际的leanote目录所在位置,进行修改--dir 配置后的路径哦。
当日志输出 done的时候,就代表数据库已经初始化结束了。
常见的启动方法会让我们通过下面这个代码执行启动:
[root@iZuf6c40gmjvniytagm3upZ ~]# nohup bash /root/leanote/bin/run.sh > /root/leanote/run.log 2>&1 &
然后系统会打印:[1] 2667
到这里,我们就配置启动完毕了。可以通过ip+端口访问Leanote服务了。
(ps: nohup 指令标注了 。我们如果关闭了窗口,leanote也一样在后台运行 如果要关闭,按Ctrl+C 就可以了)。
我们可以在cd /etc/rc.d/init.d 文件中创建leanote的自启动脚本。
[root@iZuf6c40gmjvniytagm3upZ ~]#vim /etc/rc.d/init.d/leanote.sh
然后在该文件中添加以下内容:
#! /bin/bash
# chkconfig: 2345 90 10
cd /root/leanote/bin/
bash run.sh
上面的命令就是,切换文件到root/leanote/bin文件夹,然后执行该文件夹下的run.sh脚本。我们要根据自己的leanote安装目录进行修改路径,不要直接参考我的进行配置哦。
然后给文件配置访问权限:
[root@iZuf66egabu9wj7z7x4b2yZ ~]#chmod +x /etc/rc.d/init.d/leanote.sh
将服务脚本添加到系统启动队列:重启Linux服务后,leanote将会自动运行。如果我们不想重启,那么
[root@iZuf66egabu9wj7z7x4b2yZ init.d]#chkconfig --add leanote.sh
[root@iZuf66egabu9wj7z7x4b2yZ init.d]#chkconfig leanote.sh on
之后,我们可以通过 以下命令启动和关闭leanote服务了:
service leanote.sh start #启动服务
service leanote.sh stop #停止服务
service leanote.sh restart #重启服务
(PS:我自己的云服务器,从创建至今,就没有重启过。各种服务配置的自启动功能就没有来得及生效过哦)
配置完毕后,默认通过http://服务器ip:9000 就可以访问了。
默认管理员账户为:admin , 密码为:abc123。当我们登录成功后界面效果如下:
后面我们就可以放心操作,添加笔记了。
如果你没有域名。没有配置nginx,那么这一步可以不用了解了。我们如果有域名和nginx代理服务。
以下内容基于nginx 1.22版本 进行的配置。老版本可能有部分字段需要调整(ssl配置需要修改)
那么就可以在/etc/nginx/conf.d文件夹下,添加leanote.conf 配置文件 。
[root@iZuf6c40gmjvniytagm3upZ ~]# vim /etc/nginx/conf.d/leanote.conf
然后在打开的文件中,添加:
server {
listen 80;
server_tokens off;
server_name 你自己的访问域名地址;
# 重定向,将http请求改为https请求
return 301 https://$server_name$request_uri;
client_max_body_size 20000m;
}
server {
listen 443 ssl;
server_tokens off;
ssl_protocols TLSv1.2 TLSv1.3;
keepalive_timeout 300;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_certificate 你的SSL证书文件.pem;
ssl_certificate_key 你的SSL证书签名文件.key;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
ssl_prefer_server_ciphers on;
server_name 写上你的域名地址;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:9000;
}
}
到这里,就配置完毕了。