leanote搭建指南

主要用途:搭建公网个人云笔记
前提条件:一台搬瓦工的VPS,kvm/ovz架构均可,本文应用OVZ;一个已经注册的域名;DNS解析已经部署好;我是采用freenom和dnspod。
需要知识:linux,mongodb,nginx端口转发,ssl,bbr,lnmp建站
简要过程:
1. bbr
2. ss
3. lnmp, 添加虚拟主机,绑定域名
4. ssl,开启www与不带www的ssl,主要在于nginx配置
5. mongodb+leannote

详细过程:
1. ovz开启bbr, 为了安装bbr采用centos 7 X64系统
以下代码参考[搬瓦工 VPS 安装并开启 Google BBR 教程(KVM / OpenVZ)]

wget https://raw.githubusercontent.com/kuoruan/shell-scripts/master/ovz-bbr/ovz-bbr-installer.sh
chmod +x ovz-bbr-installer.sh
./ovz-bbr-installer.sh

2. 安装ss
以下代码参考[Shadowsocks-go一键安装脚本](https://teddysun.com/392.html)

wget –no-check-certificate -O shadowsocks-go.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-go.sh
chmod +x shadowsocks-go.sh
./shadowsocks-go.sh 2>&1 | tee shadowsocks-go.log

3. 安装lnmp
[LNMP一键安装包](https://lnmp.org/install.html)
添加虚拟主机的时候,我是LNMP1.4版本,没有采用LNMP的cerbot方式自动获取ssl的密匙,而是采用acme.sh方式。然后,绑定已经申请的的域名。

4. ssl证书添加
这里我只生成了www格式的域名,并没有生成不带www的域名,看别人是可以生成的,目前还没试。

参考代码[acme.sh说明],以下是三步曲:申请;绑定;验证。

acme.sh –issue -d www.deeprl.ga –webroot> /home/wwwroot/www.deeprl.ga

acme.sh –installcert -d www.deeprl.ga \
–key-file /usr/local/nginx/ssl/deeprl.ga.key \
–fullchain-file /usr/local/nginx/ssl/deeprl.ga.cer \
–reloadcmd ” /etc/init.d/nginx reload”

“/root/.acme.sh”/acme.sh –cron –home “/root/.acme.sh”

这里参考[为Leanote配置https],为nginx进行配置https访问。注意,这里必须提前生成/home/wwwroot/www.deeprl.ga这个文件夹,不然acme.sh找不到这个文件夹会报错。

 以下代码均在http中

upstream a {
server 127.0.0.1:9000;
}

server
{
listen 80;
#listen [::]:80;
server_name www.deeprl.ga;
if ($scheme = http ) {
return 301 https://$host$request_uri;
}
#index index.html index.htm index.php default.html default.htm default.php;
#root /home/wwwroot/www.deeprl.ga;
#include wordpress.conf;
#error_page 404 /404.html;
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
#include enable-php.conf;

location / {
proxy_pass http://a;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://a;
expires 30d;
}
location ~ .*\.(js|css)?$
{
proxy_pass http://a;
expires 12h;
}
location ~ /.well-known {
proxy_pass http://a;
allow all;
}
location ~ /\.
{
deny all;
}
access_log off;
}
# https
server
{
add_header Strict-Transport-Security “max-age=63072000; includeSubdomains;”;
listen 443 ssl;
server_name www.deeprl.ga;
ssl_certificate /usr/local/nginx/ssl/deeprl.ga.cer; # 修改路径
ssl_certificate_key /usr/local/nginx/ssl/deeprl.ga.key;
location / {
proxy_pass http://a;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://a;
expires 30d;
}
location ~ .*\.(js|css)?$
{
proxy_pass http://a;
expires 12h;
}
location ~ /.well-known {
proxy_pass http://a;
allow all;
}
location ~ /\.
{
deny all;
}
access_log off;

}

5. 安装leannote

代码均参考[leannote源码详细安装教程] 以及 私人云笔记 Leanote 服务端搭建指南

开机启动脚本为

#!/bin/bash
nohup mongod –dbpath /root/mongodb/data –auth 2>&1 &
nohup revel run github.com/leanote/leanote 2>&1 &
sstr=$(echo -e $str)
echo “$sstr”

注意我这里编辑vi /etc/rc.local 文件时,必须采用bash放到第二行之前

source /etc/profile
bash /root/gopackage/run.sh

踩过的坑

(1)客户端访问自建服务器最后不要加/

(2)nginx反向代理必须对图片、JS及CSS全部设置代理

(3)开机启动需要设置,rc.local 必须前面加bash

(4)https加密,需要申请ssl,并且更改site.url

(5)导出PDF,PC客户端可以,网页段不折腾

(6)如果客户端和服务器实在不一致,可以采用全量同步

(7)mongodb 开启验证之后,需要验证数据库的用户名和密码

 

 

 

3 thoughts on “leanote搭建指南

  1. deeprl

    目前这个已经失效,因为个人搭建的云笔记肯定还是没有wiz或者有道云笔记等大厂的好用,而且稳定性高

    回复
    1. deeprl 文章作者

      目前用的为知笔记,由于没有移动端的同步需求,冲了一年会员就没冲了。PC端指定数据库路径,然后用filegee定时同步这个路径到NAS,网盘,移动硬盘都可以,多端备份。
      不过印象笔记很不错,也可以考虑,毕竟国际大厂很稳定,更新及时,网页剪辑做的很好。
      其他各类笔记都不建议,就这两个还推荐一下。2009年用笔记软件到现在,就这两个发展的还算行吧。

      回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注