ubuntu 下搭建 Leanote 笔记服务
- 2018-05-28
- 折腾
- 2019-05-29 20:22:02
leanote,蚂蚁笔记,有极客范的云笔记!前所未有的文档体验,近乎完美的平台覆盖,支持团队协同,企业级私有云。
Leanote 还是不错的,支持 Markdown 的笔记软件,还有 Linux 客户端。我在 vps 上自建了一个,采用二进制安装,安装方法大致参考 leanote binary installation on Mac and Linux (En)。
搭建步骤
下载、解压
依照官方指南,从 http://leanote.org/#download 下载、解压二进制文件,过程略。
安装 mongodb 并导入数据
在 ubuntu 上安装 mongodb 没有按照 leanote 文档的做法,而是采用软件包安装,参考:Install MongoDB Community Edition on Ubuntu:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt-get update
sudo apt-get install -y mongodb-org
sudo systemctl start mongod
sudo systemctl enable mongod
导入方法是一样的:mongorestore -h localhost -d leanote --dir PATH_TO_LEANOTE/mongodb_backup/leanote_install_data/
修改配置并试运行
conf/app.conf
里面修改下 app.secret
,64 位字符串,即可试执行启动脚本:sh bin/run.sh
,leanote 就正常运行了,在浏览器内输入ip + 端口(如 http://ip:9000
),应当可以正常访问 Leanote 服务,可通过默认账号 admin/abc123
登录。
nginx 配置
nginx 反向代理与启用 https
利用 nginx 反向代理可免端口(通过 http 的 80 或 https 的 443)访问。我是先配置好 http 访问,再通过 certbot 获取letsencrypt 证书并配置 https 。
原 http 反向代理配置:
upstream leanote {
server localhost:9000;
}
server
{
listen 80;
server_name note.s2ex.com;
location / {
proxy_pass http://leanote;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
安装 python-certbot-nginx :
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx
之后运行 sudo certbot --nginx
可自动识别 nginx 配置、获取证书并配置 https,前提是域名要预先解析到 VPS 的 ip。
配置好 https 后,还需要修改 conf/app.conf
内的 site.url
为 https 地址,否则上传图片或附件等会出错。
账号修改
除了通过 /admin/index
页面修改设置以外,还可以通过操作 mongo 数据库的方式。
删除 demo 账号
默认有个 demo 账号,可以通过操作 mongo 数据库删除:
$ mongo
> use leanote
> db.users.remove({"Username": "demo"})
修改 admin 账号
> use leanote
> db.users.updateOne({"Username": "admin"}, {$set: {"Email": "xxx@ooo.com"}})
> db.users.updateOne({"Username": "admin"}, {$set: {"Username": "whoisyourdaddy"}})
管理账号用户名修改完还需要改 conf/app.conf
里面的 adminUsername
。
服务自启动
一个简单的 leanote 服务脚本 sudo vi /etc/systemd/system/leanote.service
:
[Unit]
Description=Leanote, Not Just A Notepad!
After=syslog.target network.target mongod.service
[Service]
User=root
ExecStart=/home/ubuntu/leanote/bin/run.sh
[Install]
WantedBy=multi-user.target
之后
sudo systemctl enable leanote
sudo systemctl start leanote
如果启动失败,先确认 leanote/bin/run.sh
是否可执行:
sudo chmod +x leanote/bin/run.sh
大功告成!