FreeBSD下架设LeaNote私有云笔记

LeaNote大家应该都知道吧,一款开源的云笔记程序,使用Go语言编写,功能也很强大,具有跨平台的强大适应性!

目前网上已经有了很多的云笔记系统,比如LeaNote的官网蚂蚁笔记、印象笔记、为知笔记等等,可大多云笔记都是有免费和收费的区别,而免费版的功能相对较少,或免费版有时间限定。

对于康康这样的小穷人来说,能够在现有的基础上自己架设一部自己的私有云笔记,且支持Win、Linux、手机等多平台公用的,那是很有用的,于是康康就选择了自己架设一个云笔记平台。

前期准备

要架设私有云笔记,首先需要有一台能够在外部访问的服务器或VPS,这里康康就用自己的VPS来架设。

LeaNote使用Go语言编写,且Go语言版本不能低于1.7,那VPS上就必须要先安装Go语言。

当然,若您的VPS系统是Linux或Windows系统,也可以直接使用官方提供的二进制版本,这样就无需再安装Go语言。

不过由于康康的是FreeBSD系统,而官方并没有相关二进制编译文件,所以得自己进行架构编译。

安装Go语言

按照康康之前的文章更改FreeBSD的软件源,接着就是进行安装了。

FreeBSD 11.1软件源中Go语言已经支持到了1.10版本,符合LeaNote要求,直接运行安装即可:

pkg install go

安装完成后已自动设置了相应的环境变量,可以直接运行命令查看:

go env

GOPATH的路径为/root/go,所以咱们的Go代码都得构建在这里。

构建代码

若没有安装git,请先安装git:

pkg install git

构建相关代码

go get github.com/revel/cmd/revel
go get github.com/leanote/leanote/app

Git拉取构建

如果直接使用go get方法可能会有点慢,如果VPS在国内,甚至会出现golang.org/x/net等无法拉取的问题,这时可以直接使用Git进行拉取构建。

首先要明确一个问题,在Go语言中,GOPATH目录下,所有代码按照一定的格式进行保存,比如golang.org/x/net,保存的路径为:$GOPATH/src/golang.org/x/net,也就是按照域名路径保存在$GOPATH下的src中。

那我们就可以很方便的进行代码拉取了!

mkdir -p $GOPATH/src/github.com/revel
cd $GOPATH/src/github.com/revel
git clone https://github.com/revel/cmd.git

这样就把github.com/revel/cmd的代码全部拉取下来了,不过相关的依赖还没有拉取,咱们接着来。

go install $GOPATH/src/github.com/revel/cmd/revel

这时会报错,提示缺少什么依赖,按照提示以刚才的方法进行拉取,一直重复到不出现错误为止。

github.com/leanote/leanote也以相同的方式进行拉取。

revel编译

LeaNote依赖于revel进行启动,咱们要把revel编译一下。

go install $GOPATH/src/github.com/revel/cmd/revel

编译成功后在$GOPATH/bin下会出现一个revel的可执行文件,这就表明咱们编译成功了。

MongoDB安装

LeaNote依赖于MongoDB数据库系统,要想运行LeaNote,则必须安装MongoDB数据库,FreeBSD下安装也非常简单:

pkg install mongodb
sysrc mongod_enable="YES"
service mongod start

接着导入数据库文件:

mongorestore -h localhost -d leanote --dir /$GOPATH/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data/

这时会导入一个leanote数据库,咱们查看一下:

mongo
show dbs

可以看到存在了leanote数据库了!

程序配置

LeaNote默认的配置也许并不适合咱们的需求,咱们打开app.conf文件进行相关的修改配置:

ee $GOPATH/src/github.com/leanote/leanote/conf/app.conf

按照文件说明进行修改即可。

平台运行

目前该操作的都已经OK了,剩下直接运行即可:

cd $GOPATH/bin
./revel run github.com/leanote/leanote

如果没有更改过端口的话,这时访问http://ip:9000就可以看到LeaNote已经架设成功了!

修改管理员

LeaNote有两种方式进行管理员数据修改,一种是直接修改数据库,一种是登录到后台后进行数据修改,这里康康选择直接使用数据库修改。

mongo
use leanote
db.users.update(
    {"Username":"admin"},
    {"Username":"kangkang","Email":"admin@usebsd.com"}
)

删除多余的demo用户:

mongo
use leanote
db.users.remove({"Username":"demo"})

去掉revel依赖运行

LeaNote虽说需要依赖于revel来运行,但其实也不是必须的,咱们可以通过编译二进制来去掉这个依赖:

cd $GOPATH/src/github.com/leanote/leanote/bin
GOOS=freebsd GOARCH=amd64 go build -o leanote github.com/leanote/leanote/app/tmp

这时会在$GOPATH/src/github.com/leanote/leanote/bin下生成一个leanote可执行文件。

接下来咱们把相关的文件进行拷贝,直接弄到Web目录中,这里康康使用的目录为:/www/note

mkdir -p /www/note/app
mkdir -p /www/note/conf
mkdir -p /www/note/bin
cp -r $GOPATH/src/github.com/leanote/leanote/app/views /www/note/app
cp $GOPATH/src/github.com/leanote/leanote/bin/leanote /www/note/bin
cp $GOPATH/src/github.com/leanote/leanote/conf/app.conf /www/note/conf/app.conf
cp $GOPATH/src/github.com/leanote/leanote/conf/routes /www/note/conf/routes
cp -r $GOPATH/src/github.com/leanote/leanote/messages /www/note/
cp -r $GOPATH/src/github.com/leanote/leanote/public /www/note/

全部操作完成后,咱们运行LeaNote的命令就修改为:

/www/note/bin/leanote -importPath=github.com/leanote/leanote -runMode=prod -port=9000

使用Nginx作为前端服务

如果直接使用LeaNote进行运行访问,需要在域名处输入端口号,这样非常不方便,而且功能也没有Nginx强大,故此咱们再继续!

由于康康是在现有VPS中进行架设,Nginx早就已经安装过了,所以就不再进行安装,没有安装过的朋友可以直接使用如下命令进行安装:

pkg install nginx

这里直接给出Nginx的配置内容:

server {
        listen 80;
        server_name note.usebsd.com;
        access_log /www/wwwlogs/note_nginx.log combined;
        index index.html index.htm index.php;
        root /www/wwwroot/note;

        location / {
                root /www/wwwroot/note;
                proxy_pass http://127.0.0.1:9000/;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
                expires 30d;
                access_log off;
        }

        location ~ .*\.(js|css)?$ {
                expires 7d;
                access_log off;
        }

        location ~ /\.ht {
                deny all;
        }
}

客户端操作

现在平台已经架设完成,剩下的就是在各平台如何使用的问题了!

LeaNote已经直接有了多平台的相关程序,咱们到 http://app.leanote.com/ 下载对应的平台程序安装运行。

在登录的时候选择登录自建服务,然后输入自己的LeaNote地址及账户密码就可以了!

最后修改:2019 年 04 月 27 日 11 : 59 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论

3 条评论

  1. pany

    已经OK了。。谢谢博主文章。就是用nginx的还不行。一直502 Bad Gateway

    1. 康康
      @pany

      解决就行了

  2. pany

    freenas jail下安装,最后一步提示:CRIT 12:12:45 command_config.go:191: Build: dep executable not found in PATH, but vendor folder detected.Packages can only be added automatically to the vendor folder using the dep tool. You can install the dep tool by doing a go get -u github.com/golang/dep/cmd/dep
    dep已经安装了,可能是环境变量的问题,这个问题怎么解决?还有去掉revel依赖运行 GOOS=freebsd GOARCH=amd64 go build -o leanote github.com/leanote/leanote/app/tmp 这行命令显示 GOOS=freebsd: Command not found.
    |´・ω・)ノ希望博主帮忙看下。