IGNORANT

服务器上部署LeaNote

折腾原因

由于市场上的笔记软件有各种各样的收费套餐,对于穷逼来说是难以承受的,免费版功能又被阉割得厉害。比如印象笔记的上传限制,有道的各种广告插入等。
并且有着多平台同步的需求,本来很喜欢OneNote,无论是设计还是跨平台性,都很不错,但是同步速度慢得让人无法忍受,有时直接同步失败。
最后注意到国内开源的LeaNote,而且支持部署到自己的服务器,轻量跨Windows、IOS、Android、Linux等,还带有博客系统,笔记可以直接上传到博客。这样我就可以在手机上、Ipad上瞎写笔记了。可惜的是没有为Ipad定制的手写笔模式,不过问题不大。

下载所需软件包

需要下载:

服务器环境:Centos7 64bit

wget https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz
wget https://github.com/leanote/leanote-all/archive/master.zip
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.9.tgz

配置Golang以及MongoDB环境

tar xzvf go1*.gz 得到的go文件夹放于/opt/note/
mkdir /opt/note/gopackage用来存放go的包和编译后的文件。

tar xzvf mongodb-linux-x86_64-4.0.9.tgz直接放/opt/note/

配置环境变量
分别运行如下命令:

export GOROOT=/opt/note/go
export GOPATH=/opt/note/gopackage
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export PATH=$PATH:/opt/note/mongodb-linux-x86_64-4.0.9/bin

执行go version,若返回版本号则环境配置成功。

获取Revel和Leanote源码

unzip master.zip得到的src复制到/opt/note/gopackage/
使用如下命令生成revel二进制命令,稍后运行Leanote需要用到:

go install github.com/revel/cmd/revel

生成的源码在/opt/note/gopackage/src/github.com/leanote/leanote

配置MongoDB数据库

mkdir /opt/note/data新建一个目录data用于存放Mongodb数据
启动MongoDB:

mongod --dbpath /opt/note/data

然后另开终端,输入:

mongo
> show dbs

显示已有数据库列表

导入初始数据

leanote 初始数据在/opt/note/gopackage/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data中。
输入以下命令导入数据:

mongorestore -h localhost -d leanote --dir /opt/note/gopackage/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data

运行Leanote

注意: 在此之前请确保Mongodb已在运行!

revel run github.com/leanote/leanote

添加用户

为mongodb数据库添加用户
mongodb初始是没有用户的, 这样很不安全, 所以要为leanote数据库新建一个用户来连接leanote数据库(注意, 并不是为leanote的表users里新建用户, 而是新建一个连接leanote数据库的用户, 类似mysql的root用户).

mongo
> use leanote;
> db.createUser({
    user: 'root',
    pwd: 'abc123',
    roles: [{role: 'dbOwner', db: 'leanote'}]
});

测试下是否正确:

> db.auth("root", "abc123");
1 # 返回1表示正确

结束之前的终端,重新运行下mongodb, 并开启权限验证.

mongod --dbpath /opt/note/data --auth

修改配置

修改/opt/note/gopackage/src/github.com/leanote/leanote/conf/app.conf:

http.addr=0.0.0.0 # listen on all ip addresses
#http.port=9000
http.port=88

site.url=http://note.woyun.ink
#http://localhost:9000 # or http://x.com:8080, http://www.xx.com:9000

# admin username
adminUsername=root

# mongdb
db.host=127.0.0.1
db.port=27017
db.dbname=leanote # required
db.username=root # if not exists, please leave it blank
db.password=abc123 # if not exists, please leave it blank

利用Apache设定笔记域名

apache配置中添加:

<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName yourdomain.com 
ProxyPass / http://localhost:88/
ProxyPassReverse / http://localhost:88/
</VirtualHost>

其中注意域名:yourdomain.com,和转发端口号:88
应分别与site.url,http.port对应
并且域名应已经解析到服务器上!

一键运行脚本

生成可执行文件
生成go编译后的可执行文件:

cd /opt/note
# build leanote, 在当前目录生成了leanote二进制文件
go build -o ./leanote github.com/leanote/leanote/app/tmp

开机自启
/opt/note/中新建autostart.sh脚本:

export GOROOT=/opt/note/go
export GOPATH=/opt/note/gopackage
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export PATH=$PATH:/opt/note/mongodb-linux-x86_64-4.0.9/bin
nohup mongod --dbpath /opt/note/data --auth >/dev/null 2>&1 &
nohup /opt/note/leanote -importPath=github.com/leanote/leanote -runMode=prod -port=88 >/dev/null 2>&1 &

添加执行权限chmod +x autostart.sh
/etc/rc.local中添加:

/opt/note/autostart.sh

添加执行权限chmod +x rc.local
然后reboot...

服务器重启后可以打开网址:yourdomain.com,以admin,abc123登录。

备份还原MongoDB

mongo备份

mongodump -h localhost -d leanote -o .

mongo还原

mongorestore -h localhost -d leanote --dir /home/czm/leanote/

其他

修改favicon

cd /opt/note/gopackage/src/github.com/leanote/leanote
find ./ -name favicon.ico
替换相应的favicon.ico即可

参考

https://blog.csdn.net/sinat_29963957/article/details/84836436
http://blog.leanote.com/post/shenweiyan/ecs-leanote
https://www.denry.cn/archives/leanote.html
https://oldcat.me/blog/post/oldcat/Leanote-%E5%AE%89%E8%A3%85%E7%AC%94%E8%AE%B0
http://leanote.leanote.com/post/how-to-run-leanote-without-revel

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »