最近各种考试,各科都要做一些随笔。我想要能够从电脑上写笔记,然后能从手机或者其他设备上随时查看,随时记忆。国内有印象笔记、有道云笔记等笔记软件,他们完全能够符合我的要求;但考虑到个人信息等隐私在国内一文不值的价值,我还是希望把这些数据放在我自己的服务器上,自建笔记服务。Leanote这个开源笔记软件就引起了我的兴趣。
Leanote是由国人开发的笔记软件,有商业化运作。但他们在Github上有完全开源的版本,尽管已经两年多没更新,但并不影响它的使用。于是我打算在我VPS的Oneinstack LNMP环境下进行安装Leanote了。我的VPS系统是CentOS7.
准备工作
Leanote使用的数据库是Mongodb。Mongodb是一个很流行的非关系型数据库。
Oneinstack环境安装Mongodb很简单,只要执行./install.sh
按照提示选择Mondodb安装即可。设置的密码一定要记牢,下面还要用到。
安装完成后,先要对Mongodb进行一些配置,否则在后面正是安装,导入数据库的时候,报Failed: leanote.note_content_histories: error reading database: not authorized on leanote to execute
的问题。
编辑Mongodb配置文件:vim /etc/mongod.conf
要修改两个地方:
- 将net中的bindIp改为127.0.0.1,即使有防火墙也还是建议修改
- 将security中的authorization改为disabled,关闭验证功能,当然导入数据后还可以再开启,27017端口不暴露在外网就可以一直关闭。
保存后,重启Mongodb service mongod restart
下载安装
可以到Leanote Github下载并解压Leanote:https://github.com/leanote/leanote/releases/
wget http://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz/download
mv download leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -xzvf leanote-linux-amd64-v2.6.1.bin.tar.gz
rm -f leanote-linux-amd64-v2.6.1.bin.tar.gz
之后开始将Leanote的初始数据导入Mongodb,可以用pwd命令获取当前的工作目录:
mongorestore -h 127.0.0.1 -u root -p [你设置的Mongodb密码] -d leanote --dir [当前工作目录]/leanote/mongodb_backup/leanote_install_data/ --authenticationDatabase admin
出现一堆提示之后,如果没有报错信息,就导入成功啦!
之后就是对Leanote的配置,下面的内容跟官方文档基本一致了。
需要注意两点:
- leanote的配置存储在文件
conf/app.conf
中,请务必修改app.secret
一项, 在若干个随机位置处,将字符修改成一个其他的值, 否则会有安全隐患。 - 管理员的信息为:username: admin, password: abc123 (管理员, 只有该用户才有权管理后台, 请及时修改密码)
最后,运行Leanote下bin目录下的run.sh
就可以成功运行啦!
要想在外网访问,记得开放防火墙端口,用IP+端口号,或者你绑定的域名+端口号进行访问,但不推荐这么做,因为配置SSL等比较麻烦。
建议使用Nginx进行反向代理,Nginx配置文件很简单,一个location即可,建议删掉无关的配置以防止出现奇奇怪怪的问题。
server {
listen 80;
listen 443 ssl http2;
ssl_certificate [证书位置];
ssl_certificate_key [私钥位置];
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_timeout 10m;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_buffer_size 1400;
add_header Strict-Transport-Security max-age=15768000;
add_header Cache-Control 'no-cache';
server_name [你绑定的域名];
access_log off;
if ($ssl_protocol = "") { return 301 https://$host$request_uri; }
error_page 404 /404.html;
error_page 403 /403.html;
error_page 502 /502.html;
location / {
proxy_pass http://127.0.0.1:[Leanote的端口号,默认9000];
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
At least, enjoy it!
你好,我有个疑问,Oneinstack LNMP环境下安装了mysql5.7还能另外安装Mongodb吗?因为没有尝试过。
可以安装的,Mongodb和MySQL不是一种类型的数据库,用的端口号也不一样,他们两个不冲突的。
非常感谢,但是我选了为知笔记