對于需要筆記的人來說,有道云筆記,大家不陌生,但是會員制、隱私問題,和360等云盤一樣突然宣告不再服務的時候,相信大家都諱莫如深,如今NAS都成為了大家的私有云盤,所以想自己搭建一個私有云筆記的需求也有了起來。
螞蟻私有云筆記由此而來,功能強大,具體介紹,大家可以去官網看:官網。
在華蕓的的應用中心(AppCentral)有大佬已經在bate app中上傳了基于Docker開發(fā)的leanote,我安裝了幾次都無法成功,數(shù)據和附件都無法管理和備份,https更是要什么nginx反向代理,我去你×××,這實在是苦惱,所以在此我選擇安裝linux的二進制版本和linux的Mongo數(shù)據庫。
機器型號: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數(shù)據庫,安裝好以后,按照介紹頁面寫的無法連接數(shù)據庫,且長久未更新,我不用這個充滿BUG的app了,誰知道什么問題可以安裝的那么可以告知我;
將上面鏈接下載mongodb和leanote的安裝包上傳到華蕓NAS的文件管理器中然后點擊解壓:
然后得到一個文件夾,里面就是數(shù)據庫安裝包內容。
接下來,我要把mongoDB、leanote安裝到volume1中(我的volume1是單SSD,并且volume1默認是華蕓NAS系統(tǒng)app和其它安裝的默認位置,單SSD沒有數(shù)據保護,如果SSD組陣列的話,就沒有trim,華蕓的軟RAID不知道有沒有trim,有高手的可以試試告訴我,所以數(shù)據庫的數(shù)據文件不放在volume1中,這也是為什么我要自己手動安裝的的原因,全程可控)。
打開winSCP連接到NAS(NAS需要打開SSH服務),并定位到以下目錄(我不清楚自帶的app安裝的位置,如果你們需要安裝到其他位置可以自行選擇):
將剛剛解壓的數(shù)據庫文件復制到此目錄,并且修改權限0777
在有數(shù)據保護的volume中建立mongodb和leanote的數(shù)據文件路徑 ,比如我的volume3是RAID5,那么我就在文件管理中建立公共文件夾,磁盤群組選擇volume3,如下圖
那么路勁就是
mongodb安裝位置:/usr/local/mongodb-3.0.6
leanote安裝位置:/usr/local/Leanote
mongodb數(shù)據存放位置:/volume3/MyServer/mongodb
leanote數(shù)據存放位置:/volume3/MyServer/Leanote
在mongodb和leanote的數(shù)據存放位置建立一下文件夾,目錄結構如下
在mongodb的數(shù)據存放位置的根目錄下面建立配置文件,mongodb.conf,內容如下
- dbpath = /volume3/MyServer/mongodb/data/db #數(shù)據文件存放目錄
- 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的數(shù)據存放位置
運用ssh命令,目的是進入mongodb的安裝目錄,這是我的方式大家可參考:
到此mongodb安裝完成
還原leanote的mongodb數(shù)據庫,如果你按照以上方法已經進入mongo的命令界面,那么要輸入一次exit退出,再執(zhí)行以下命令:
- mongorestore -h localhost -d leanote --dir /volume1/.@plugins/Leanote/mongodb_backup/leanote_install_data
腳本解析:--data表示數(shù)據庫的還原路徑,leanote的數(shù)據文件在安裝目錄下面的mongodb_backup/leanote_install_data 中
leanote:
通過winSCP進入leanote的安裝目錄下面的bin目錄,
打開run.sh
復制除第一行的所有腳本
使用ssh命令進入安裝目錄下面的bin目錄,執(zhí)行上面的復制的腳本,如果不出意外,最后會顯示: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的開機執(zhí)行腳本定義為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:后臺運行,剛剛執(zhí)行l(wèi)eanote的運行腳本后,斷開ssh或者Ctrl+C退出命令,這時候leanote都退出運行了,這簡直是反人類,并且處于這個腳本后面的開機腳本都不會正常執(zhí)行,所以我們要修改一下;
/usr/local/Leanote/bin/run.sh:安裝目錄下的run腳本
/volume3/MyServer/Leanote/log/log.log:日志記錄
現(xiàn)在我們還要修改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的文件夾,這就是上傳附件的位置,我們的數(shù)據內容已經有mongodb保存到具有數(shù)據保護的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
聯(lián)系客服