私人云笔记 Leanote 服务端搭建指南 让自己的笔记无处不在

  • A+
所属分类:教程指南

私人云笔记 Leanote 服务端搭建指南  让自己的笔记无处不在

  之前一直用 Google Keep 来同步笔记,但是由于那道长城砖头导致必须挂梯子才能同步,紧急情况需要同步时略麻烦,于是改用自己的 NAS 同步笔记,但是 NAS 导出的备份格式不通用,数据丢失后恢复起来不方便也不安全,一番折腾后决定找个开源云笔记服务端来搭建,在自己可控的范围内同步笔记总归是安全的。

  这款开源云笔记叫作 Leanote(中文名“蚂蚁笔记”),横跨 Windows、MacOS、Android、iOS、Linux 多平台,支持富文本和 Markdown 文本格式,自由度非常之高,你可以让笔记内容玩出新花样来。除了主打的笔记同步、编辑功能外,还支持开设博客,展示你公开的笔记内容。博客这功能见仁见智,我主要对它的云同步和笔记编辑功能比较满意。总体来说 Leanote 使用起来挺顺手,手机端 App 即开即用,搭建了稳定的服务端后非常适合日常记事。

  下面将服务端搭建的步骤分享出来,给需要使用私人云笔记的筒子们。废话不多说,直接开始教程。

安装前准备工作

  1. 基础:首先你要有最最最基本的网站搭建和 Linux 基础,否则不建议你看下去。
  2. 域名:去注册个域名,不贵,阿里云注册一个域名首年几十块 RMB。
  3. VPS:可以买个国外的 VPS,服务、速度、稳定、价格都比较均衡的国外 VPS 一个月最多也不会超 100 RMB。Linode、Vultr、DigitalOcean 这几个比较稳定,都可以试试,哪个便宜挑哪个。

安装 VPS 环境

  如何买 VPS 就不多说了,百度一下就知道。直接开始讲搭建 VPS 环境。这里推荐用 lnmp(Linux + Nginx + MySQL + PHP),搭建 Leanote 配置起来会轻松一些。

  这里是 lnmp 的官方安装教程 #点我进入#,按照官方的步骤安装即可。SSH 工具推荐用 XShell,FTP 工具推荐用 WinSCP

  lnmp 安装过程中,先选择安装 Nginx(方便后面更改 Leanote 的 SSL 配置),MySQL 建议选择默认版本 5.5.48。PHP 版本根据你买的 VPS 配置定,有 1G 或以上内存的可以选择 5.6 或以上版本,个人建议选 5.6.22。后面的步骤跟着提示一路往下走,直至安装完成。

  下面的步骤会用到一些工具,例如 wget,如果你的系统没有的话,可以直接安装,例如 CentOS 用命令 yum install ** 安装,Debian、Ubuntu 用命令 apt-get install ** 安装。

了解 Leanote 服务端

  Leanote 服务端是用 golang 编写的,官方文档中说明需要用 revel Web 框架来运行服务端,使用的是 MongoDB 数据库,因此我们要在 VPS 中配置好 golang、revel 环境和 MongoDB 数据库。

  如上面所说,把 Leanote 丢到虚拟空间里运行不太现实,而且不利于后面开启 https 访问,所以下面还是按部就班继续安装。

  总结就以下几个步骤:

  1. 安装 golang 环境
  2. 下载 revel Web 框架和 Leanote 源码
  3. 安装 MongoDB 数据
  4. 初始化数据库
  5. 配置 Leanote 服务端
  6. 运行 Leanote 服务端
  7. 配置开机启动
  8. 配置 https
  9. 下载客户端
  10. 安装 golang 环境

      用 XShell 连接 VPS,进入 /root(进入 /root 目录是个人习惯,你也可以进入其它目录进行安装,本文以 /root 目录为例讲解)。用 wget 命令下载 golang 源码。进入 golang 官网,点击官网中的 “Getting Started → Download Go → Linux” 获得下载链接,然后用 wget 命令下载源码包。截止到本文发出为止,golang 最新版本是 1.8,就输入下面的命令:

    wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz

    解压

    tar -xzvf go1.3.1.linux-amd64.tar.gz

    创建文件夹 gopackage 用于存放 golang 的程序包

    mkdir gopackage

    编辑 /etc/profile 配置文件,添加 golang 环境变量

    vi /etc/profile
    按 i 键进入编辑模式,将下面的环境变量加入 profile,完成后按 Esc 键,然后输入 :wq! 后敲回车保存(我是在 /root 目录安装的,如果你选择的是其它目录,要自己更改变量中的路径):

    export GOROOT=/root/go
    export GOPATH=/root/gopackage
    export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

    输入命令使环境变量生效:

    source /etc/profile

    输入命令检查 golang 是否安装成功:

    go version

    若安装成功,则会显示 golang 版本号。

    获取 revel 源码

    安装 git 工具。若是 CentOS,输入如下命令:

    yum install -y git

    若是 Debian/Ubuntu ,输入如下命令:

    sudo apt-get install git-core mercurial openssh-server openssh-client

    输入命令下载 revel Web 框架源码,下载速度视网络情况而定,可能时间有点长,耐心等待:

    go get github.com/revel/cmd/revel

    获取 Leanote 源码

      上面已经创建了 gopackage 文件夹用于存放程序源码包,因此我们只需要下载好 revel 和 Leanote 服务端的源码包,然后解压放入 gopackage 文件夹即可。

    接上面的步骤,当前处于 /root 目录,进入 gopackage 文件夹:

    cd gopackage

    下载 Leanote 服务端源码(若命令下载不成功的话,可以手动下载后用 FTP 工具上传到 gopackage 文件夹):

    wget https://github.com/leanote/leanote-all/archive/master.zip

    解压:

    unzip leanote-all-master.zip

    将解压出来的 leanote-all-master 文件夹内的 src 文件夹移到 gopackage 文件夹内:

    mv /root/gopackage/leanote-all-master/src /root/gopackage

    Leanote 服务端的源码文件在目录 /root/gopackage/src/github.com/leanote/leanote 中。以后要修改页面效果的话进入这个目录查找相应的文件进行修改。

    安装 MongoDB 数据库

      目前 MongoDB 数据库有 2.x 和 3.x 两类版本,个人建议选择 3.x 版,版本用新不用旧。下面以安装 3.x 版为例讲解。

    回到 /root 目录:

    cd ~

    创建 mongodb 文件夹,用与存放 MongoDB 数据库源码和数据库文件:

    mkdir mongodb

    进入 mongodb 文件夹,下载 MongoDB 数据库源码并解压:

    cd mongodb
    wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.1.tgz
    tar -xzvf mongodb-linux-x86_64-3.0.1.tgz

    编辑 /etc/profile 配置文件,添加 MongoDB 数据库的环境变量:

    vi /etc/profile

    按 i 键进入编辑模式,将下面的环境变量加入 profile,完成后按 Esc 键,然后输入 :wq! 后敲回车保存:

    export PATH=$PATH:/root/mongodb/mongodb-linux-x86_64-3.0.1/bin

    输入命令使环境变量生效:

    source /etc/profile

    创建一个用于存放数据库的文件夹:

    mkdir data

    #运行数据库(切入后台运行):

    nohup mongod --dbpath /root/mongodb/data 2>&1 &

    初始化数据库

      由于我们安装的是 MongoDB 3.x 版本,因此要输入对应 3.x 版本的命令来初始化数据库:(我是在 /root 目录安装的,如果你选择的是其它目录,要自己更改命令中的路径)

    mongorestore -h localhost -d leanote --dir /root/gopackage/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data

    配置 Leanote 服务端

    进入 Leanote 服务端配置文件 app.conf 所在的目录:

    cd ~
    cd gopackage/src/github.com/leanote/leanote/conf

    编辑 app.conf 配置文件,按照下面的标注修改,完成后按 Esc 键,然后输入 :wq! 后敲回车保存(如果不想用 vi 修改的话,可以用 FTP 工具打开配置文件进行修改):

    vi app.conf

    # 访问端口 可以自定义
    http.port=9000
    # 访问域名
    site.url=http://
    # 管理员用户名(默认用户名admin,密码abc123)
    adminUsername=admin
    # MongoDB 数据库配置
    db.host=127.0.0.1
    db.port=27017
    db.dbname=leanote
    db.username= #自定义数据库帐户
    db.password= #自定义数据库帐户密码
    mongodb://root:root123@localhost:27017/leanote
    # app密钥 必须要自己修改 随便改成任意大小写字母加数字组合
    app.secret=OIJiokioHoIOHUY072893bhJHui765GHjkgjJK8989GVghUIY788

      另外,建议增加一个数据库帐户,开启数据库帐户验证,否则会有安全隐患。我们安装的是 3.x 版 MongoDB,用下面的命令创建数据库帐户,然后将帐户填到上面的配置里(db.username 和 db.password 这两项)。

    #进入 MongoDB 数据库命令模式

    mongo

    #切换至 leanote 数据库

    use leanote

    #将 root 和 abc123 改成您想要的帐户名和密码

    db.addUser("root", "abc123");{"_id" : ObjectId("53688d1950cc1813efb9564c"),"user" :"root","readOnly" : false,"pwd" : "e014bfea4a9c3c27ab34e50bd1ef0955"}

    #测试帐户是否添加成功以及密码是否正确,返回数值 1 即表示成功

    db.auth("root", "abc123");

    运行 Leanote 服务端

    输入命令运行 Leanote 服务端(切入后台运行):

    nohup revel run github.com/leanote/leanote 2>&1 &

    域名绑定 VPS 主机 IP,解析完成后即通过域名可正常访问 Leanote 首页

    配置开机启动

      虽然通过命令让 Leanote 进程进入后台运行了,但是一旦重启还是要手动开启,略麻烦,这时可以自己新建 *.sh 脚本文件,将命令写入脚本文件里,然后在 rc.local 配置文件中运行 *.sh 脚本文件就能实现开机启动 Leanote 服务端。

    可以参考我的 *.sh 写法:

    #!/bin/bash
    nohup mongod --dbpath /root/mongodb/data --auth 2>&1 &
    nohup revel run github.com/leanote/leanote 2>&1 &
    sstr=$(echo -e $str)
    echo "$sstr"

    若脚本文件命名为 run.sh,且存放在 /root/gopackage 目录里,可以编辑 rc.local 配置文件:

    vi /etc/rc.local

    加入下面的命令然后保存即可:

    source /etc/profile
    /root/gopackage/run.sh

    配置 https

      既然是私人云笔记,加密传输数据肯定是有必要的,不然笔记里若保存了一些帐号的话可能会有安全隐患。在 Nginx 下只需要修改下配置文件就可以实现 https 访问 Leanote。另外你要先申请好 SSL 证书,这个要自己解决,可以去腾讯云或阿里云申请免费的 SSL 证书,很简单,百度一下就有相应的教程。申请到 SSL 证书后,共有 *.crt、*.key 两个文件,可以用 FTP 工具上传到 VPS(目录你自己定)。然后按照下面的步骤修改配置即可。

    修改 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf,将下面的配置加入 http {} 内:

    #leanote_https
      upstream xxx.com { #xxx.com替换成你的域名
         server *.*.*.*:9000; #此处填写主机 IP 或域名
      }
      server
      {
        listen 80;
        server_name xxx.com; #xxx.com替换成你的域名
        rewrite ^/(.*) https://xxx.com/$1 permanent; ##xxx.com替换成你的域名
        location / {
          proxy_pass http://xxx.com; #xxx.com替换成你的域名
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
      }
      server
      {
          listen 443;
          server_name xxx.com; #xxx.com替换成你的域名
          ssl_certificate /root/xx/xx/ssl.crt; #此处填写 ssl 证书的路径
          ssl_certificate_key /root/xx/xx/ssl.key; # 此处填写 ssl 证书密钥的路径
         location / {
          proxy_pass http://xxx.com; #xxx.com替换成你的域名
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
      }

    输入命令重启 lnmp 即可生效:

    lnmp restart

    访问 https://你的域名 即可打开 Leanote 主页。

    下载客户端

    此处为隐藏的内容!
    发表评论并刷新,才能查看

    若还有其它疑问,可以到 github 上向作者提交 Issues。

iKira

发表评论

您必须才能发表评论!

目前评论:17   其中:访客  17   博主  0

    • avatar zjj990411 0

      这个笔记软件用着不错

      • avatar chasel 0

        看看kehuduan

        • avatar ylqjgm 0

          看看客户端

          • avatar ling 0

            看看客户端

            • avatar dawang 0

              客户端哦

              • avatar wenhao 0

                这就是我需要的,太感谢分享了

                • avatar pc_ymm 1

                  谢谢分享

                  • avatar gyw2502289251 3

                    谢谢

                    • avatar yanwuning 0

                      准备试一下,希望能成功!

                      • avatar gzjerry 0

                        谢谢大神的分享,准备试验。

                        • avatar ridd1ot 0

                          感谢分享

                          • avatar kent 0

                            谢谢大神的教程,看了收益匪浅,这两天就试试手,希望一步到位 :grin:

                            • avatar lianzhihao 0

                              加油!!!

                              • avatar yomean 0

                                正在尝试,希望一次成功

                                • avatar JimXon 0

                                  可不可以搭在 Windows Server 2008 R2 上

                                  • avatar chongjiehe 1

                                    大大复出了,顶一个~\(≧▽≦)/~