栏目头部广告

开源笔记Leanote解决方案

一、自建云笔记Leanote介绍

1.1 自建云笔记服务器的好处

(1)数据全在自己掌控中,不用担心被第三方服务器泄露或丢失。毕竟笔记里面的内容又私密又重要。
(2)不用被广告所打扰,不用担心收费或限制使用。
(3)动手能力强的可以自己定制云笔记的功能或界面。

1.2 使用 Leanote 的好处

(1)开源。开源即意味着免费,透明等诸多好处。
(2)支持多端笔记同步。包括移动端,pc 端(windows, linux,mac os),web 端。
(3)支持笔记直接发布为博客,方便笔记共享,公开。
(4)支持 markdown 语法。

1.3 Leanote 官网信息

二、Leanote安装教程

准备工作:购买一台UCloud云主机,1C2G 20G系统盘、CentOS7即可满足日常需求。

2.1 注意事项

(1)为了保证数据安全,建议使用UCloud云主机时,开启数据方舟,支持12H内恢复到任意1s数据,24H内恢复到任意整点,72H内恢复任意零点。

开源笔记Leanote安装教程(图1)

(2)Leanote同步图片配置!

  • 注1:Markdown格式笔记文档,图片文件建议存储到UCloud US3对象存储上或者自建对象存储!!!
  • 注2:普通格式笔记文档,需要参考上述连接配置,否则图片无法同步,再次打开会出现图片丢失情况!!!

(3)Leanote推荐使用markdown编辑器,图片嵌入语法:![图片名称](图片存储到US3的URL)

开源笔记Leanote安装教程(图3)

2.2 安装MongoDB

(1)普通部署

#下载 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

#创建 mongodb 数据目录
mkdir -p /data/db

#mongodb 加入环境变量
echo export PATH=$PATH:/root/mongodb-linux-x86_64-3.0.1/bin >>/etc/profile
source /etc/profile

#运行 mongodb
mongod --bind_ip localhost --port 27017 --dbpath /data/db/ --logpath=/var/log/mongod.log -fork

(2)容器化部署

docker run -itd -p 27017:27017  --restart=always  -v  /data/mongodbdata:/data/db -v /etc/localtime:/etc/localtime --name note_mongodb mongo:3.0

2.3 安装配置 leanote

#下载 leanote 安装包
wget https://downloads.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

#导入 leanote 初始化数据
mongorestore -h localhost -d leanote --dir /root/leanote/mongodb_backup/leanote_install_data/

#启动 leanote 服务
nohup /bin/bash /root/leanote/bin/run.sh >> /var/log/leanote.log 2>&1 &

【注】默认账号密码 admin/abc123

三、Leanote配置Https

3.1 购买USSL证书

(1)可以注册UCloud平台申请免费USSL证书:UCloud新用户专属注册连接

开源笔记Leanote安装教程(图1)

开源笔记Leanote安装教程(图2)

(2)获取证书文件

开源笔记Leanote安装教程(图3)

开源笔记Leanote安装教程(图4)

3.2 配置nginx

[root@note ~]# vim /etc/nginx/nginx.conf

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    include /etc/nginx/conf.d/*.conf;

    upstream  note.starcto.com{
        server  localhost:9000;
    }

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  note.starcto.com;
        root         /usr/share/nginx/html;

    # 强制https
        rewrite ^/(.*) https://note.starcto.com/$1 permanent;
        include /etc/nginx/default.d/*.conf;

        location / {
        proxy_pass        http://note.starcto.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;
        }

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

# Settings for a TLS enabled server.
#
     server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  note.starcto.com;

        ssl_certificate "/data/nginx/public.pem";
        ssl_certificate_key "/data/nginx/private.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
#       include /etc/nginx/default.d/*.conf;

        location / {
        proxy_pass        http://note.starcto.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;
        }
#
       error_page 404 /404.html;
        location = /404.html {
       }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

}

四、开启Leanote之旅

4.1 下载windows客户端

官网:https://www.leanote.com/

开源笔记Leanote安装教程(图5)

开源笔记Leanote安装教程(图6)

4.2 打开leanote和博客

开源笔记Leanote安装教程(图7)

开源笔记Leanote安装教程(图8)

开源笔记Leanote安装教程(图9)

五、数据迁移

[root@note ~]# mongodump -d leanote -o /opt/fullbackup/             # 备份leanote库
[root@note ~]# cd /opt/fullbackup/
[root@note fullbackup]# ll
total 4
drwxr-xr-x 2 root root 4096 Jul 17 22:13 leanote
[root@note fullbackup]# tar -cvf leanote.tar.gz leanote/

[root@note fullbackup]# scp leanote.tar.gz root@10.25.203.134:/root # 拷贝到新服务器
[root@blogs-v2 ~]# tar -xvf leanote.tar.gz                          # 解压备份
[root@blogs-v2 ~]# mongorestore -d leanote /root/leanote            # 恢复备份

常见异常与需求解决:https://github.com/leanote/leanote/wiki/QA

六、导出HTML文件

问题:导出HTML文件后,无法通过浏览器正常打开.html文件解决办法。

image.png

下载:开源笔记Leanote安装教程(图13)markdown-to-html.min.zip,将该文件上传至对象存储(例如:UCloud US3)或者自建的文件服务器上。通过代码编辑软件,编辑导出的.html文件,将以下部分内容替换成,刚才上传文件的URL。

image.png

原因:github站点服务器基本都在国外地区,部分URL国内无法正常打开或者打开非常缓慢,影响js脚本的在线执行。

作者:UStarGao
链接:https://www.starcto.com/open-sourcing/159.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`