Total Pageviews

Saturday, 10 June 2017

搭建一款开源的云笔记 – Leanote(蚂蚁笔记)


官网 : https://leanote.com
开源:https://github.com/leanote
Leanote 也提供了云笔记服务,有免费 也有付费的。
就免费而言没有有道云笔记实在点儿(个人观点)!
当然本文主要不是介绍Leanote提供的服务,而是开源项目。

开源项目

Leanote, 不只是笔记!
特性
  • 高效笔记:Leanote 有易操作的界面, 包含一款富文本编辑器和Markdown编辑器,让您的笔记记录更轻松和高效。对高阶用户,我们还提供VimEmacs 编辑模式,助推你的写作速度更上层楼。
  • 知识管理: Leanote 灵活而强大的“笔记本-笔记-标签”系统,让它成为你个人知识管理的利器。
  • 分享: 你可以通过Leanote同好友分享知识、想法和经历, 邀请好友加入你的笔记簿,通过云端交流信息。
  • 协作: Leanote协助你与同事之间相互协作,激荡新思路,随时随地头脑风暴。
  • 博客: Leanote也可以作为你的个人博客, 把你的知识传播的更远!
其它特性
  • 支持Markdown编辑
  • 写作模式
  • VimEmacs 编辑模式
  • 支持PDF导出
  • 支持批量操作
  • 博客自定义主题, 实现高度定制化
 
Leanote云笔记产品包括: Leanote Web & Server(即本仓库), 桌面客户端, IOS, android. 4端全部开源!

部署指南

Leanote 提供非常详细的 安装说明介绍。
更多内容: https://github.com/leanote/leanote/wiki
这里说一下 二进制安装。(推荐此方法)
安装步骤:
  1. 下载 leanote 二进制版。
  2. 安装 mongodb
  3. 导入初始数据。
  4. 配置 leanote
  5. 运行 leanote
1. 下载 leanote 二进制版
由此处下载 leanote 最新二进制版
假设将文件下载到 /home/user1 目录下, 解压文件从而在 /home/user1 目录下生成 leanote目录:

mongodb 官网 下载相应系统的最新版安装包,或者从以下链接下载旧版本:
  • 64位 linux mongodb 3.0.1 下载链接: https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.1.tgz
下载到 /home/user1下, 直接解压即可:

为了快速使用mongodb命令, 可以配置环境变量。编辑 ~/.profile/etc/profile 文件, 将mongodb/bin路径加入即可:

此处实例使用了vim文本编辑器,你可以使用自己熟悉的编辑器。
/etc/profile中添加以下行,注意把用户名(user1)和相应的文件目录名(mongodb-linux-x86_64-3.0.1)替换成自己系统中的名称:

保存修改后,在终端运行以下命令使环境变量生效:

3.测试mongodb安装
先在/home/user1下新建一个目录data存放mongodb数据:

用以下命令启动mongod:

这时mongod已经启动,重新打开一个终端, 键入mongo进入交互程序:

mongodb安装到此为止, 下面为mongodb导入leanote初始数据。

4. 导入初始数据
leanote初始数据存放在 /home/user1/leanote/mongodb_backup/leanote_install_data中。
打开终端, 输入以下命令导入数据。

现在在mongodb中已经新建了leanote数据库, 可用命令查看下leanote有多少张”表”:

初始数据的users表中已有2个用户:


5. 配置leanote
leanote的配置存储在文件 conf/app.conf 中。
请务必修改app.secret一项, 在若干个随机位置处,将字符修改成一个其他的值, 否则会有安全隐患!
其它的配置可暂时保持不变, 若需要配置数据库信息, 请参照 leanote问题汇总

6. 运行leanote
注意: 在此之前请确保mongodb已在运行!
新开一个窗口, 运行:

最后出现以下信息证明运行成功:
恭喜你, 打开浏览器输入: http://ip:9000 体验leanote...
----------

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

配置好ssl证书,然后直接在nginx配置文件中粘贴进去

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

server {  
    listen 443 ssl;
    server_name  mydomain.com;

    ssl_certificate     /etc/letsencrypt/live/mydomain.com/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;
    }
}
其中把
mydomain.com
修改成自己的域名,证书位置填写正确,其他的则可以选择性修改。

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

No comments:

Post a Comment