开源的笔记管理软件leanote搭建(leanote自建服务器)

介绍

leanote和印象笔记很像的布局和功能,但是支持markdown,有各平台客户端app,开源,自带博客,可以方便的将笔记发布成博客。可以自己部署一套去折腾一下。另外觉得这个公司内部使用的话,个人用来记录点滴收货,好东西还可以用来做发布成博客了变成知识分享,还是很有好处的。

安装

参考github的wiki:leanote二进制版详细安装教程

下载安装mongodb,选择对应的系统版本,下载解压后,将mongodb的bin目录增加到path环境变量中方便后续直接使用mongodb命令。

新建一个文件夹用于存放mongodb的数据文件,然后启动mongodb。

mkdir /home/user1/data

# 启动mongodb
mongod --dbpath /home/user1/data

测试mongodb正常运行

mongo  
> show dbs

下载leanote二进制版本,解压。

导入初始化数据

mongorestore -h localhost -d leanote --dir /home/user1/leanote/mongodb_backup/leanote_install_data/

修改leanote的配置文件conf/app.conf 要部署域名的话,修改下site.url为想要的域名即可,剩下的端口转发的事情交给nginx去处理就可以了。

要修改app.secret, 请随意修改一个值, 若不修改, 会有安全问题!

然后运行leanote/bin/run.sh启动leanote,在dns提供商设置下域名的A记录,将域名与ip对应起来。然后输入指定域名访问,即可正常访问到leanote站点。使用默认的管理员帐号admin/abc123登录后修改密码,进行相关设置。

部署到DO上面,使用自定义域名,后续需要将mongdb和leanote的启动脚本放到守护进程里面去,开机自动启动,挂掉了自动启动,才能保证自定义域名中的leanote的持续提供服务的能力。目前是使用tmux开启多个后台窗口,分别运行mongdb和leanote的。

SSL配置

刚开始配置ssl未成功,始终显示ssl证书不对,后来经排查原来是之前在这个vps上面安装过SoftEther VPN的原因,这个vpn占用了ssl的443端口,所以nginx中的ssl证书未生效。

最终的ssl配置信息: ssl.conf

server {  
    listen       443 ssl;
    server_name  abc.com;

    ssl_certificate      /usr/www/ssl/abc.crt;
    ssl_certificate_key  /usr/www/ssl/abc.key;

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

leanote.conf

server {  
    listen       80;
    server_name  abc.com;

    rewrite ^/(.*) https://abc/$1 permanent;
}

nginx.conf

 upstream abc.com {
        server 127.0.0.1:9000;
    }

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

leanote中app.conf的配置仅将site.url修改为http://abc.com ,端口未变,是通过在nginx中代理到leanote默认的9000端口的,就是上面的upstream部分的配置。

supervisor守护

使用supervisor将mongodb和leanote的启动脚本自动启动。 需要安装python的setuptools,yum install python-setuptools,然后在easy_install supervisor,即可完成supervisor的安装。

测试安装是否成功:echo_supervisord_conf

创建配置文件:echo_supervisord_conf>/etc/supervisord.conf

编辑配置文件,增加mongodb、leanote和nginx的守护配置信息。

[program:mongodb]
command=mongod --dbpath /usr/mgdata  
directory=/usr/share/mongodb3.0.6/bin  
autorestart=true  
redirect_stderr=true

[program:nginx]
command=nginx  
autorestart=true  
redirect_stderr=true

[program:leanote]
command=sh /usr/leanote/bin/run.sh  
directory=/usr/leanote/bin  
autorestart=true  
redirect_stderr=true  

启动、重新加载配置文件,启动守护

supervisord

supervisorctl reload

supervisorctl start all  

此时直接start all时会提示mongodb和leanote启动失败,nginx启动成功,是因为mongodb和leanote已经启动了,我们回到tmux窗口,将mongodb和leanote停止,然后再执行supervisorctl start all命令即可完成守护和重启所有的程序,此时能看到mongodb和leanote启动成功。