前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux CentOS 7 搭建自己的Leanote云笔记

Linux CentOS 7 搭建自己的Leanote云笔记

作者头像
zinyan.com
发布2022-12-07 17:32:35
1.9K0
发布2022-12-07 17:32:35
举报
文章被收录于专栏:zinyan

1. 介绍

主要介绍,如何在我们自己的个人云服务器中搭建Leanote云笔记。我的服务器为CentOS环境的,所以下面的操作主要是CentOS的。

其他环境下也是大同小异。只是部分配置指令会有区别。

Leanote笔记(蚂蚁笔记)是一个在线云笔记应用。也是一个开源系统。

开源网址为:https://github.com/leanote

官网地址为:https://leanote.com/

我们搭建完毕后台服务器之后,前端可以使用官网提供的客户端,只需要将客户端访问的服务器地址修改为我们自己搭建的服务器。

客户端支持:网页,手机App,微信版等

2. 搭建MongoDB

Leanote环境搭建需要配置不少支持软件。下面将会按照从无到有,一步一步的介绍实现步骤。

2.1 安装MongoDB

MongoDB是一个基于分布式文件存储的高性能数据库。它支持的数据结构非常松散是类似于json和bson格式,因此可以存储比较复杂的数据类型。

我们的云笔记内容就刚好可以存储在该数据库中。

  1. 配置MongoDB的yum源地址:
代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]# vim /etc/yum.repos.d/mongodb-org.repo
  1. 在打开的New File文件中,配置如下内容:
代码语言:javascript
复制
[mongodb-org]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

如果指令使用不熟练,可以创建一个mongodb-org.repo 文件,然后通过xftp等软件,推送到服务器的yum.repos.d文件夹中。

repo文件中的字段介绍:

  • name #名称
  • baseurl #获得下载的路径
  • gpkcheck=1 #表示对从这个源下载的rpm包进行校验;
  • enable=1 #表示启用这个源。
  • gpgkey #gpg验证
  1. 更新yum数据: 让我们配置的repo文件生效。 如下所述,新增了mongodb-org 配置。
代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]# yum list
   
Loaded plugins: fastestmirror
Determining fastest mirrors
base                                                                | 3.6 kB  00:00:00    
epel                                                                | 4.7 kB  00:00:00    
extras                                                              | 2.9 kB  00:00:00    
mongodb-org                
  1. 下载Mongodb 输入命令:yum install mongodb-org -y
代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]# yum install mongodb-org -y
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package mongodb-org.x86_64 0:3.6.23-1.el7 will be installed
--> Processing Dependency: mongodb-org-mongos = 3.6.23 for package: mongodb-org-3.6.23-1.el7.x86_64

...
...
...
...

Installed:
mongodb-org.x86_64 0:3.6.23-1.el7                                                                                                  

Dependency Installed:
mongodb-org-mongos.x86_64 0:3.6.23-1.el7   mongodb-org-server.x86_64 0:3.6.23-1.el7   mongodb-org-shell.x86_64 0:3.6.23-1.el7  
mongodb-org-tools.x86_64 0:3.6.23-1.el7    

Complete!
[root@iZuf6c40gmjvniytagm3upZ ~]#

直到最后输出 Complete就代表安装成功了。 安装步骤很简单,下面就开始配置MongoDB数据库。

2.2 配置MongoDB

打开mongod.conf 文件:

代码语言:javascript
复制
root@iZuf6c40gmjvniytagm3upZ ~]# vim /etc/mongod.conf 

将net标签下的内容进行修改为:

代码语言:javascript
复制
net:
  port: 27017    
  bindIp: 0.0.0.0 

然后保存配置文件。

我们在这一步可以知道MongoDB的端口是27017。如果不想使用这个端口,可以直接在这里进行修改。

2.3 启动MongoDB

我们安装MongoDB的时候,安装包自动会创建一个mongod.service配置文件。所以我们可以直接使用systemctl start mongod

示例:

代码语言:javascript
复制
[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服务的运行状态。

代码语言:javascript
复制
# 启动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

2.4 配置MongoDb 用户

mongodb默认没有用户的,如果为了安全性,大家可以给自己的mongodb添加一个用户。

但是我们如果只是在自己的服务器上配置,不创建用户也没有关系。

如果你创建了用户名和密码。那么在Leanote的app.conf配置文件中要添加上用户名和密码哦。否则我们的云笔记就访问不了服务器了。

注意:创建数据库账户的密码时,不要添加@# 等特殊字符。否则leanote会连接不上数据库的。

3. 搭建Leanote服务

3.1 下载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版)

代码语言:javascript
复制
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

代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]# tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
leanote/
leanote/app/
leanote/bin/
...

解押完毕后,我们就会在当前目录下看到一个leanote文件夹。

代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]# ls
leanote  leanote-linux-amd64-v2.6.1.bin.tar.gz
[root@iZuf6c40gmjvniytagm3upZ ~]# 

3.2 修改app.conf配置

Leanote官方介绍,需要将leanote/conf/app.conf中的app.secret项进行修改。否则会有安全风险。

那么我们通过vim修改该文件就可以了。

代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]# ls
leanote  leanote-linux-amd64-v2.6.1.bin.tar.gz
[root@iZuf6c40gmjvniytagm3upZ ~]# vim leanote/conf/app.conf 

在打开的文件中找到:app.secret选项。

代码语言:javascript
复制
# 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
#-----------------------

修改成任意字符就可以:

代码语言:javascript
复制
# You Must Change It !! About Security!!
app.secret=123qweasdzxcqweasdzxc

然后执行保存操作即可。

该配置文件也决定了Leanote服务的启动端口哦。默认配置端口为9000。如果想修改们可以通过该文件进行修改

3.3 初始化Leanote数据库

配置完毕后,就可以开始配置数据库连接和初始化了。

示例如下:

代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]# mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/

注意,我的leanote目录就在root文件夹下,所以这么配置的。

大家要根据实际的leanote目录所在位置,进行修改--dir 配置后的路径哦。

当日志输出 done的时候,就代表数据库已经初始化结束了。

3.4 启动Leanote服务

常见的启动方法会让我们通过下面这个代码执行启动:

代码语言:javascript
复制
[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的自启动脚本。

代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]#vim /etc/rc.d/init.d/leanote.sh

然后在该文件中添加以下内容:

代码语言:javascript
复制
#! /bin/bash
# chkconfig: 2345 90 10

cd /root/leanote/bin/
bash run.sh

上面的命令就是,切换文件到root/leanote/bin文件夹,然后执行该文件夹下的run.sh脚本。我们要根据自己的leanote安装目录进行修改路径,不要直接参考我的进行配置哦。

然后给文件配置访问权限:

代码语言:javascript
复制
[root@iZuf66egabu9wj7z7x4b2yZ ~]#chmod +x /etc/rc.d/init.d/leanote.sh

将服务脚本添加到系统启动队列:重启Linux服务后,leanote将会自动运行。如果我们不想重启,那么

代码语言:javascript
复制
[root@iZuf66egabu9wj7z7x4b2yZ init.d]#chkconfig --add leanote.sh
[root@iZuf66egabu9wj7z7x4b2yZ init.d]#chkconfig leanote.sh on 

之后,我们可以通过 以下命令启动和关闭leanote服务了:

代码语言:javascript
复制
service leanote.sh start #启动服务

service leanote.sh stop #停止服务

service leanote.sh restart #重启服务

(PS:我自己的云服务器,从创建至今,就没有重启过。各种服务配置的自启动功能就没有来得及生效过哦)

4. 访问云笔记

配置完毕后,默认通过http://服务器ip:9000 就可以访问了。

默认管理员账户为:admin , 密码为:abc123。当我们登录成功后界面效果如下:

后面我们就可以放心操作,添加笔记了。

5. 配置nginx 反向代理

如果你没有域名。没有配置nginx,那么这一步可以不用了解了。我们如果有域名和nginx代理服务。

以下内容基于nginx 1.22版本 进行的配置。老版本可能有部分字段需要调整(ssl配置需要修改)

那么就可以在/etc/nginx/conf.d文件夹下,添加leanote.conf 配置文件 。

代码语言:javascript
复制
[root@iZuf6c40gmjvniytagm3upZ ~]# vim /etc/nginx/conf.d/leanote.conf

然后在打开的文件中,添加:

代码语言:javascript
复制
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;
            }
}

到这里,就配置完毕了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 zinyan 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 介绍
  • 2. 搭建MongoDB
    • 2.1 安装MongoDB
      • 2.2 配置MongoDB
        • 2.3 启动MongoDB
          • 2.4 配置MongoDb 用户
          • 3. 搭建Leanote服务
            • 3.1 下载Leanote
              • 3.2 修改app.conf配置
                • 3.3 初始化Leanote数据库
                  • 3.4 启动Leanote服务
                  • 4. 访问云笔记
                  • 5. 配置nginx 反向代理
                  相关产品与服务
                  云数据库 MongoDB
                  腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档