对于需要笔记的人来说,有道云笔记,大家不陌生,但是会员制、隐私问题,和360等云盘一样突然宣告不再服务的时候,相信大家都讳莫如深,如今NAS都成为了大家的私有云盘,所以想自己搭建一个私有云笔记的需求也有了起来。
蚂蚁私有云笔记由此而来,功能强大,具体介绍,大家可以去官网看:官网。
在华芸的的应用中心(AppCentral)有大佬已经在bate app中上传了基于Docker开发的leanote,我安装了几次都无法成功,数据和附件都无法管理和备份,https更是要什么nginx反向代理,我去你×××,这实在是苦恼,所以在此我选择安装linux的二进制版本和linux的Mongo数据库。
机器型号:AS7008T
ADM版本:3.4.1.R7Q6
硬件配置:
CPU:E3 1265L V3 (P4600核显)
内存:16GB DDR3L
安装包:mongodb:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz;leanote Linux二进制版:http://leanote.org/#download
工具准备:WinScp
在华芸的应用中心(AppCentral)中,已经有mongoDB数据库,安装好以后,按照介绍页面写的无法连接数据库,且长久未更新,我不用这个充满BUG的app了,谁知道什么问题可以安装的那么可以告知我;
将上面链接下载mongodb和leanote的安装包上传到华芸NAS的文件管理器中然后点击解压:
然后得到一个文件夹,里面就是数据库安装包内容。
接下来,我要把mongoDB、leanote安装到volume1中(我的volume1是单SSD,并且volume1默认是华芸NAS系统app和其它安装的默认位置,单SSD没有数据保护,如果SSD组阵列的话,就没有trim,华芸的软RAID不知道有没有trim,有高手的可以试试告诉我,所以数据库的数据文件不放在volume1中,这也是为什么我要自己手动安装的的原因,全程可控)。
打开winSCP连接到NAS(NAS需要打开SSH服务),并定位到以下目录(我不清楚自带的app安装的位置,如果你们需要安装到其他位置可以自行选择):
将刚刚解压的数据库文件复制到此目录,并且修改权限0777
在有数据保护的volume中建立mongodb和leanote的数据文件路径 ,比如我的volume3是RAID5,那么我就在文件管理中建立公共文件夹,磁盘群组选择volume3,如下图
那么路劲就是
mongodb安装位置:/usr/local/mongodb-3.0.6
leanote安装位置:/usr/local/Leanote
mongodb数据存放位置:/volume3/MyServer/mongodb
leanote数据存放位置:/volume3/MyServer/Leanote
在mongodb和leanote的数据存放位置建立一下文件夹,目录结构如下
在mongodb的数据存放位置的根目录下面建立配置文件,mongodb.conf,内容如下
- dbpath = /volume3/MyServer/mongodb/data/db #数据文件存放目录
- logpath = /volume3/MyServer/mongodb/logs/mongodb.log #日志文件存放目录
- bind_ip = 0.0.0.0 #远程访问
- port = 27017 #端口
- fork = true #以守护程序的方式启用,即在后台运行
- nohttpinterface = true
记住dbpath和logpath的路径有变动需要改成自己的,端口也是如此
在华芸的应用中心(AppCentral)安装
mongodb:
通过 ssh命令运行一下脚本
- export MONGO_HOME=/usr/local/mongodb-3.0.6
- export MONGO_DATA=/volume3/MyServer/mongodb
- $MONGO_HOME/bin/mongod --config $MONGO_DATA/mongodb.conf
脚本解析:/usr/local/mongodb-3.0.6 mongodb的安装路径
/volume3/MyServer/mongodb 为mongodb的数据存放位置
运用ssh命令,目的是进入mongodb的安装目录,这是我的方式大家可参考:
到此mongodb安装完成
还原leanote的mongodb数据库,如果你按照以上方法已经进入mongo的命令界面,那么要输入一次exit退出,再执行以下命令:
- mongorestore -h localhost -d leanote --dir /volume1/.@plugins/Leanote/mongodb_backup/leanote_install_data
脚本解析:--data表示数据库的还原路径,leanote的数据文件在安装目录下面的mongodb_backup/leanote_install_data 中
leanote:
通过winSCP进入leanote的安装目录下面的bin目录,
打开run.sh
复制除第一行的所有脚本
使用ssh命令进入安装目录下面的bin目录,执行上面的复制的脚本,如果不出意外,最后会显示:Listening on.. 0.0.0.0:9000(注意这里端口和华芸应用中心的Portainer有冲突,下面会介绍如何修改端口),
至此你可以通过IP:9000访问你的私有云博客了
想要程序开机运行可以在/usr/local/etc/init.d位置新增sh脚本,根据华芸官网的教程:http://54.222.187.52:10080/zh-cn/online/College_topic?topic=244
S99开头为开机运行(我自己总结的),99是运行的顺序,mongodb必须要在leanote前面启动,svn为S99,那么我们暂时将mongodb和leanote的开机执行脚本定义为S96mongodb.sh和S97leanote.sh
S96mongodb.sh内容就是刚刚运行mongodb的脚本
S97leanote.sh内容如下
- nohup /usr/local/Leanote/bin/run.sh >/volume3/MyServer/Leanote/log/log.log 2>log &
脚本解析:
nohup:后台运行,刚刚执行leanote的运行脚本后,断开ssh或者Ctrl+C退出命令,这时候leanote都退出运行了,这简直是反人类,并且处于这个脚本后面的开机脚本都不会正常执行,所以我们要修改一下;
/usr/local/Leanote/bin/run.sh:安装目录下的run脚本
/volume3/MyServer/Leanote/log/log.log:日志记录
现在我们还要修改leanote本身运行的脚本 /usr/local/Leanote/bin/run.sh,内容如下
- #!/bin/sh
- export GOPATH=/usr/local/Leanote/bin
- script="/usr/local/Leanote/bin/leanote-linux-amd64"
- $script -importPath github.com/leanote/leanote
支持完成,重新启动NAS后,mongodb和leanote就会自动启动了
4:leanote附件管理和https配置
附件管理:
当你在写笔记的时候上传附件,会在leanote安装目录下面生成一个files的文件夹,这就是上传附件的位置,我们的数据内容已经有mongodb保存到具有数据保护的volume3中了,但是附件还没有转移,这时候我们就要花点事件了,在上面我们已经建立了/volume3/MyServer/Leanote/files了,我们通过文件夹连接的方式在安装目录下面建立连接,这样附件就会保存到我们指定的位置了,
这样就OK了,
https配置:
打开leanote的安装目录中的conf目录里面的文件app.conf,修改:
- http.ssl=true
- http.sslcert=/volume3/Docker/ServerConfig/证书/nginx/hejianneng.top-ca-bundle.crt
- http.sslkey=/volume3/Docker/ServerConfig/证书/nginx/hejianneng.top.key
跟Portainer端口冲突修改http.port后面的端口和site.url后面的端口
重新启动就可以打开了,记住用https的方式访问
注意:windows平台安装leanote也可以用这种方式,只是还要做以下操作:
Try putting this in your app/init.go file: (Leanote文件夹下面的app文件夹下面,注意有2个 都试下)
- httpRedirectServer := &http.Server{Addr: ":6069", Handler: http.HandlerFunc(
- func(w http.ResponseWriter, r *http.Request) {
- http.Redirect(w, r, fmt.Sprintf("https://%s%s", r.Host, r.RequestURI),
- http.StatusMovedPermanently)
- })}
- go httpRedirectServer.ListenAndServe()
6069可以改成跟app.conf里面端口一样的。然后重启.
参考:https://www.jianshu.com/p/e97e9cb731cc
转载注明来源:https://hejianneng.top:6069/blog/post/5d6e599c09863d156f000000
联系客服