用Leanote搭建自己的云筆記服務

之前一直使用Leanote云筆記,后來因為限流不能同步,調研了幾個其他云筆記都各有缺點,偶然間看到有用Leanote搭建云筆記服務的,就自己也搭了一個。


所需軟件

  • Golang
  • Revel
  • Leanote源碼
  • Mongodb

Golang

Golang中國下載go1.8.4.linux-amd64.tar.gz,我使用的是1.8.4

將文件下載到/home/user/下,解壓文件:

cd /home/user/
tar -xzvf go1.8.4.linux-amd64.tar.gz

/home/user/目錄下新建gopackage目錄,用來存放go的包和編譯后的文件:

mkdir /home/user/gopackage

配置環境變量, 編輯/etc/profile~/.bashrc文件,我使用的是~/.bashrc

#在文件最后添加
export GOROOT=/home/user/go
export GOPATH=/home/user/gopackage
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

之后再 source 一下修改的文件

source ~/.bashrc

查看go是否安裝成功

go version

得到

go version go1.8.4 linux/amd64

獲取Revel和 Leanote 源碼

下載leanote-all-master.zip,解壓后,將src文件夾復制到/home/user/gopackage/
使用如下命令生成revel二進制命令,稍后運行Leanote需要用到:

go install github.com/revel/cmd/revel

Leanote的源碼在/home/user/gopackage/src/github.com/leanote/leanote下。


Mongodb

下載64位 linux Mongodb 3.0.1/home/user/直接解壓即可。

為了快速使用mongodb命令, 可以配置環境變量。編輯 /etc/profile~/.bashrc 文件, 將mongodb/bin路徑加入即可

export PATH=$PATH:/home/user/mongodb-linux-x86_64-3.0.1/bin

之后任然需要source一下修改的文件。

/home/user/下新建一個目錄data用于存放Mongodb數據:

mkdir /home/user/data

用以下命令啟動mongod:

mongod --dbpath /home/user/data

這時mongod已經啟動,重新打開一個終端, 鍵入mongo進入交互程序:

> mongo
> show dbs
...數據庫列表

Mongodb安裝到此為止, 下面為Mongodb導入Leanote初始數據。


導入初始數據

leanote 初始數據在/home/user/gopackage/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data中。
輸入以下命令導入數據.

mongorestore -h localhost -d leanote --dir /home/user/gopackage/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data

現在在mongodb中已經新建了leanote數據庫.


運行Leanote

注意: 在此之前請確保Mongodb已在運行!

revel run github.com/leanote/leanote

打開瀏覽器訪問: http://localhost:9000


配置Leanote

Leanote的配置存儲在文件 conf/app.conf 中。
務必修改app.secret一項,否則會有安全隱患!
官方提供了很多配置選項,我下面就寫下我用到的幾種。


為mongodb數據庫添加用戶

mongodb初始是沒有用戶的, 這樣很不安全, 所以要為leanote數據庫新建一個用戶來連接leanote數據庫(注意, 并不是為leanote的表users里新建用戶, 而是新建一個連接leanote數據庫的用戶, 類似mysql的root用戶).

# 首先切換到leanote數據庫下
> use leanote;
# 添加一個用戶root, 密碼是abc123
> db.createUser({
    user: 'root',
    pwd: 'abc123',
    roles: [{role: 'dbOwner', db: 'leanote'}]
});
# 測試下是否正確
> db.auth("root", "abc123");
1 # 返回1表示正確

用戶添加好后重新運行下mongodb, 并開啟權限驗證. 在mongod的終端按ctrl+c即可退出mongodb.

啟動mongodb:

mongod --dbpath /home/user1/data --auth

修改 leanote/conf/app.conf:

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

為Leanote指定超級管理員帳戶(admin用戶)

Leanote默認超級管理員為admin, 且一旦不小心修改了username則不能改回. 此時可修改配置文件app.conf, 比如指定用戶test為超級管理員, 修改或/添加一行:
指定之前需要先在網頁上創建該賬戶。

adminUsername=test

導出PDF配置 wkhtmltopdf

Leanote的PDF導出使用了wkhtmltopdf, 所以需要先安裝wkhtmltopdf, 然后以管理員身份登錄Leanote管理后臺配置wkhtmltopdf路徑.

安裝wkhtmltopdf

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
cd wkhtmltopdf/bin
chmod +x wkhtmltopdf
mv wkhtmltopdf /usr/local/bin

測試是否安裝成功

wkhtmltopdf http://www.baidu.com ./baidu.pdf

導出的PDF中文會亂碼,我們需要找到windows里C:\Windows\Fonts文件夾中的宋體或者微軟雅黑字體,上傳到服務器/usr/share/fonts/目錄下即可。

配置wkhtmltopdf路徑.


其他配置請參照關于Leanote安裝/配置的一些問題
Leanote的使用教程請參照Leanote使用教程集


在PC端和Android端使用

Leanote官網可以下載相應客戶端。

PC

在登錄時選擇登錄自建服務


在下面填入你的地址


Android

使用同PC端,選擇下方的使用自定義服務器



參考資料

LeanoteWiki
程序員如何打造屬于自己的云筆記服務

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容