Leanote的搭建过程与使用体验

Leanote是一款golang语言编写的开源程序,它的特色在于把博客和笔记二者的功能合二为一,既能用作知识管理,也能用来发表博客。当选中一个笔记把它设定为公开为博客,它就会出现在自己的博客中。这个特色还是很有看点的;尤其当leanote的各个平台下客户端的客户端出来后,能够在各个平台下保持统一的阅读、书写体验。尤其对一些个人的独立博客,博客发表后也需要反复编辑,这个时候用起来就很顺手。

一、使用体验

我是自己搭建的leanote,搭建好后完全没想到leanote的开源程序就是leanote.com的程序。也就是说能够注册新用户,他们拥有自己的博客主页。当直接访问域名时,打开的直接是leanote.com那样的主页,当然也可以设置为访问域名时打开页面用户为admin的博客主页。

当我打开admin blog中的一篇文章后,链接格式为domain/blog/admin/post/xxx,这样实在显得罗嗦且不利于seo,由于没有找到可以设置的地方,放弃了把leanote作为博客的欲念。leanote.com的高级用户可以绑定域名,但是必须要备案,也比较麻烦,所以博客不打算更改了。

说实在的,leanote能开发到现在这种程度很不容易,我想要去试用它当然也有它自己的一系列优点:

  1. 支持markdown呵富文本两种编写方式,还有vim、emacs两种模式可供选择。书写体验无可挑剔。
  2. 跨平台的客户端支持,目前已支持windows、linux、mac、iso,当然还有web版,不过android版目前仍在开发中。
  3. 支持代码高亮
  4. 良好的数据导入导出:支持leanote和evernote两种格式的导入和导出。还支持导出为pdf。
  5. 笔记可以方便的发表为博客。

不过我目前仅仅是把笔记迁移到leanote,放弃了博客的迁移。除了前面的文章链接格式的难以修改,主要是考虑到目前leanote还是比较小众的,小众意味着扩展功能的不完善,寻求支持的难度;而且作为博客来说功能还是有点简陋,不支持一些WordPress等一系列博客的导入等。

虽然如此,我仍然看好leanote的发展,会持续关注。不过leanote作者看起来只会写代码,不善于推广,虽然拥有一系列的高级功能但是仍然没有火起来。

二、Leanote的搭建

如果认为之前的那些问题自己都不在意,或者喜欢折腾,那么可以考虑我的安装过程来搭建leanote。我的搭建环境为Ubuntu14.04,32位版本。其中包括了完整的leanote的安装、开机启动、ssl的配置。

2-1下载leanote二进制版本

二进制就是把源码编译好的版本,不需要费时间make了。先下载Leanote 最新二进制版,直接点击自己需要的版本,之后浏览器会弹出下载窗口,复制其中下载链接,ssh连接到自己的vps,使用命令wget 粘贴下载链接。假设leanote下载到/var/www/下。则

cd /var/www/   
sudo wget 下载链接   
sudo tar -xzvf leanote-.tar.gz   

到这里,leanote的部分暂时完成了。

2-2安装mongodb

Ubuntu 下安装就是一条命令的事。直接敲入:

sudo apt-get install mongodb -y

值得一提的是,mongodb本身只有几百kb,但大概有200m大小的依赖。

2-3开启mongodb并导入数据库

sudo mkdir /var/www/leanote/data #创建文件夹   
sudo mongod --dbpath /var/www/leanote/data #启用mongodb   
mongorestore -h localhost -d leanote --dir /var/www/leanote/mongodb_backup/leanote_install_data/ #导入数据库

2-4配置leanote

请修改conf/app.confapp.secret任意一个值, 若不修改, 可能会有安全问题。

这时直接sh /var/www/leanote/bin/run.sh就能运行,出现下列信息说明运行成功。

TRACE 2013/06/06 15:01:27 watcher.go:72: Watching: /home/life/leanote/bin/src/github.com/leanote/leanote/conf/routes
Go to /@tests to run the tests.
Listening on :9000...

2-5nginx配置leanote https

先参考这里Ghost Blog启用HTTPS使用LetsEncrypt SSL证书,配置好ssl证书,然后直接在nginx配置文件中粘贴进去

server {  
    listen 80;
    server_name  yuan.ga;
    return       301 https://yearliny.com$request_uri;
}

server {  
    listen 443 ssl;
    server_name  yuan.ga;

    ssl_certificate     /etc/letsencrypt/live/yuan.ga/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yuam.ga/privkey.pem;
    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;

    access_log   /var/log/nginx/leanote.log;
    error_log    /var/log/nginx/leanote_error.log;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header HOST $http_host;
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_pass http://127.0.0.1:9000;
        proxy_redirect off;
    }
}

其中把yuan.ga修改成自己的域名,证书位置填写正确,其他的则可以选择性修改。

2-6supervisor守护leanote运行

为了避免leanote崩溃或其他情况导致的退出,所以需要维持leanote的后台运行与开机启动。操作方法如下:

sudo pat-get install supervisor #安装   
sudo vim /etc/supervisord.conf #配置文件   
#填加以下内容
[program:leanote]
command=sh /var/www/leanote/bin/run.sh   
directory=/var/www/leanote/bin   
autorestart=true   
redirect_stderr=true   

之后可以通过下面的命令控制supervisor

sudo supervisord #启动supervisor  
sudo supervisorctl reload #重新加载supervisor  
sudo supervisorctl leanote start #启动leanote

评论

《 “Leanote的搭建过程与使用体验” 》 有 7 条评论

  1. 您好,请问您还在用leanote么?我是一个新手,希望自己搭建leanote。我已经在vps中正常部署了leanote ,可以通过[域名:9000]访问。现在我希望用caddy这个程序来实现直接通过访问[域名]来直接访问leanote。我查了些资料,但是因为基础有点难理解。请问您有什么建议么。期待您的帮助,谢谢!!

    1. 你好,感谢你的来访,但对你的求助表示遗憾。我未曾使用过caddy,无力给你直接提供有用的帮助,我在那篇博文中提到的nginx是一个很好的web代理,你为什么不试一试呢?

      或许在这里可以根据我的经验对你的情况进行一点分析。你说到你可以通过“域名:9000”直接进行访问,说明你的leanote程序的代理设置为0.0.0.0:9000,0.0.0.0意味着直接对外网的开放,当你使用caddy进行代理的时候,只能代理你的localhost,所以你需要把0.0.0.0:9000改成127.0.0.1:9000。

      如果不是内网和外网的配置问题,我想你可以直接在leanote端设置成0.0.0.0:80而不使用web sever代理以达到直接通过域名访问的目的。

      这些是我全部的想法,希望能够给你提供一些帮助。

    2. 是的,实际上我这里就是用的nginx反代。

  2. 我以前也搭建过,但是感觉从使用体验来说比不上现在主流的免费产品,我自身也是个不懂技术的人,怕使用过程中遇到问题解决不了,所以放弃了。
    希望以后这个程序能够继续发展,也许以后还会关注它。

    1. 我也不懂技术,自己搭建也是折腾着玩玩,leanote作为一个笔记软件倒也是很不错的

  3. 柳木澄泉 的头像
    柳木澄泉

    我也用的caddy反向代理,发现修改app.secret之后,就不能被反向代理了,但是直接ip端口号就可以访问。请问app.secret是什么原理?需要有别的地方对应配置吗?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注