开源笔记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官网:https://www.leanote.com/
- Github地址:https://github.com/leanote
- Leanote安装教程:https://github.com/leanote/leanote/wiki/leanote-binary-installation-on-Mac-and-Linux-(En)
- Leanote官方博客:http://leanote.leanote.com/
二、Leanote安装教程
准备工作:购买一台UCloud云主机,1C2G 20G系统盘、CentOS7即可满足日常需求。
2.1 注意事项
(1)为了保证数据安全,建议使用UCloud云主机时,开启数据方舟,支持12H内恢复到任意1s数据,24H内恢复到任意整点,72H内恢复任意零点。
- 注1:Markdown格式笔记文档,图片文件建议存储到UCloud US3对象存储上或者自建对象存储!!!
- 注2:普通格式笔记文档,需要参考上述连接配置,否则图片无法同步,再次打开会出现图片丢失情况!!!
(3)Leanote推荐使用markdown编辑器,图片嵌入语法:![图片名称](图片存储到US3的URL)
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新用户专属注册连接
(2)获取证书文件
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客户端
4.2 打开leanote和博客
五、数据迁移
[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文件解决办法。
下载:markdown-to-html.min.zip,将该文件上传至对象存储(例如:UCloud US3)或者自建的文件服务器上。通过代码编辑软件,编辑导出的.html文件,将以下部分内容替换成,刚才上传文件的URL。
原因:github站点服务器基本都在国外地区,部分URL国内无法正常打开或者打开非常缓慢,影响js脚本的在线执行。
作者:UStarGao
链接:https://www.starcto.com/open-sourcing/159.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2021-09-09开源Wazuh安全平台容器化部署
- 2022-05-16MySQL sql_mode参数详解
- 2021-07-17开源EyouCms博客安装教程
- 2023-05-07如何快速部署ChatGPT应用并绕开限制
- 2021-02-21Docker创建与查看容器常用参数解读