Leanote是一款开源云笔记,具体介绍请看leanote官网:https://leanote.com/。不过官网上并没有提供FreeBSD/FreeNAS系统下的安装教程,使用搜索引擎(百度和谷歌)查询也没有发现相关教程。通过自己一翻摸索,成功在Jail里使用源码编译搭建成功,在这里将方法分享给大家。

  1.新建一个Jail

  不会的请参考:《使用JAIL自建服务教程之一:JAIL创建和优化

  2.安装go语言,并建立运行目录

pkg install go
mkdir /usr/gopackage        //这里面会放go的包和编译后的文件

  3.准备源码

  从github上下载源码,解压,将src文件夹里的文件复制到/usr/gopackage目录:

pkg install ca_root_nss unzip    //ca_root_nss为fetch所需,unzip为解压工具
fetch https://github.com/leanote/leanote-all/archive/master.zip
unzip master.zip    //如果有一个文件提示replace,输入“y”就行了
cp -rf leanote-all-master/src /usr/gopackage/

  4.编译生成revel

  先临时设置环境变量:

setenv GOROOT /usr/local/go
setenv GOPATH /usr/gopackage
setenv PATH /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin:$GOROOT/bin:$GOPATH/bin

  使用如下命令生成revel二进制文件, 稍后运行Leanote需要用到:

go install github.com/revel/cmd/revel

  5.安装Mongodb数据库

pkg install mongodb36 mongodb36-tools

  启动mongod服务:

sysrc mongod_enable=YES
service mongod start

  6.导入初始数据

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

  7.添加数据库用户

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

  修改数据库配置文件,启用身份验证:

nano /usr/local/etc/mongodb.conf

  在“#security:”后面添加:

security:
  authorization: enabled

  重启mongod服务:

service mongod restart

  8.修改leanote配置文件

nano /usr/gopackage/src/github.com/leanote/leanote/conf/app.conf

  修改如下三处:

db.username=root
db.password=****
app.secret=******       //在若干个随机位置,将字符修改成一个其他的值

  输入以下命令运行leanote:

revel run github.com/leanote/leanote

  然后在浏览器中输入http://IP:9000,就可以访问leanote的页面了。默认用户名是admin,默认密码是abc123。按【CTRL+C】退出leanote程序。

  9.设置开机自动启动

  ①新建开机运行脚本:

nano /usr/gopackage/run.sh

  写入如下内容并保存:

#!/bin/sh
export GOROOT=/usr/local/go
export GOPATH=/usr/gopackage
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
nohup revel run github.com/leanote/leanote > /var/log/leanote.log 2>&1 &

  ②配置开机启动:

nano /etc/rc.local

  写入如下代码并保存:

/usr/gopackage/run.sh

  ③赋予可执行权限:

chmod +x /usr/gopackage/run.sh
chmod +x /etc/rc.local

  重启jail,浏览器输入http://IP:9000看是否运行。

  10、安装web服务器,配置反向代理和ssl证书

  (1)安装并启动apache2

pkg install apache24
sysrc apache24_enable=YES
service apache24 start

  (2)开启ssl和反向代理

  编辑“/usr/local/etc/apache24/httpd.conf”文件,找到以下内容并去掉每句前面的“#”。由于此配置文件比较长,在WinSCP中编辑更方便一些。

#LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件)
#Include etc/apache24/extra/httpd-ssl.conf
#LoadModule socache_shmcb_module libexec/apache24/mod_socache_shmcb.so
#LoadModule proxy_module libexec/apache24/mod_proxy.so
#LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so

  将证书文件上传到“/usr/local/etc/ssl”目录下。

  (3)配置虚拟主机

  编辑 “/usr/local/etc/apache24/extra/httpd-ssl.conf” 文件,将原来的<VirtualHost> </VirtualHost>这一段删除,改成如下内容:

<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName leanote.nasgeek.cn    //域名改成你自己的
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
    SSLEngine On
    SSLProxyEngine On
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLCertificateFile /usr/local/etc/ssl/nasgeek.cn/certificate.crt    //改成你自己的
    SSLCertificateKeyFile /usr/local/etc/ssl/nasgeek.cn/private.key    //改成你自己的
    SSLCertificateChainFile /usr/local/etc/ssl/nasgeek.cn/ca_bundle.crt    //改成你自己的
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:9000/
    ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>

  重启apache24服务:

service apache24 restart

  现在输入你的域名,应该就可以访问到leanote界面了。(如果你的机器是内网,使用域名访问你的服务的方法:一种是ddns+端口映射;另一种是直接在电脑或者路由器里进行域名劫持。)

  登录之后,请记得在“后台管理”–>“Configuration”中将“Site’s URL”修改为你的域名,否则图片等资源无法正确上传。

 

声明:本文为本站【NASGEEK】原创文章,未经许可不得转载!