之前一直用 Google Keep 来同步笔记,但是由于那道长城砖头导致必须挂梯子才能同步,紧急情况需要同步时略麻烦,于是改用自己的 NAS 同步笔记,但是 NAS 导出的备份格式不通用,数据丢失后恢复起来不方便也不安全,一番折腾后决定找个开源云笔记服务端来搭建,在自己可控的范围内同步笔记总归是安全的。
这款开源云笔记叫作 Leanote(中文名“蚂蚁笔记”),横跨 Windows、MacOS、Android、iOS、Linux 多平台,支持富文本和 Markdown 文本格式,自由度非常之高,你可以让笔记内容玩出新花样来。除了主打的笔记同步、编辑功能外,还支持开设博客,展示你公开的笔记内容。博客这功能见仁见智,我主要对它的云同步和笔记编辑功能比较满意。总体来说 Leanote 使用起来挺顺手,手机端 App 即开即用,搭建了稳定的服务端后非常适合日常记事。
下面将服务端搭建的步骤分享出来,给需要使用私人云笔记的筒子们。废话不多说,直接开始教程。
安装前准备工作
- 基础:首先你要有最最最基本的网站搭建和 Linux 基础,否则不建议你看下去。
- 域名:去注册个域名,不贵,阿里云注册一个域名首年几十块 RMB。
- VPS:可以买个国外的 VPS,服务、速度、稳定、价格都比较均衡的国外 VPS 一个月最多也不会超 100 RMB。Linode、Vultr、DigitalOcean 这几个比较稳定,都可以试试,哪个便宜挑哪个。
安装 VPS 环境
如何买 VPS 就不多说了,百度一下就知道。直接开始讲搭建 VPS 环境。这里推荐用 lnmp(Linux + Nginx + MySQL + PHP),搭建 Leanote 配置起来会轻松一些。
这里是 lnmp 的官方安装教程 #点我进入#,按照官方的步骤安装即可。SSH 工具推荐用 XShell,FTP 工具推荐用 WinSCP。
lnmp 安装过程中,先选择安装 Nginx(方便后面更改 Leanote 的 SSL 配置),MySQL 建议选择默认版本 5.5.48。PHP 版本根据你买的 VPS 配置定,有 1G 或以上内存的可以选择 5.6 或以上版本,个人建议选 5.6.22。后面的步骤跟着提示一路往下走,直至安装完成。
下面的步骤会用到一些工具,例如 wget,如果你的系统没有的话,可以直接安装,例如 CentOS 用命令 yum install **
安装,Debian、Ubuntu 用命令 apt-get install **
安装。
了解 Leanote 服务端
Leanote 服务端是用 golang 编写的,官方文档中说明需要用 revel Web 框架来运行服务端,使用的是 MongoDB 数据库,因此我们要在 VPS 中配置好 golang、revel 环境和 MongoDB 数据库。
如上面所说,把 Leanote 丢到虚拟空间里运行不太现实,而且不利于后面开启 https 访问,所以下面还是按部就班继续安装。
总结就以下几个步骤:
- 安装 golang 环境
- 下载 revel Web 框架和 Leanote 源码
- 安装 MongoDB 数据
- 初始化数据库
- 配置 Leanote 服务端
- 运行 Leanote 服务端
- 配置开机启动
- 配置 https
- 下载客户端
安装 golang 环境
用 XShell 连接 VPS,进入 /root(进入 /root 目录是个人习惯,你也可以进入其它目录进行安装,本文以 /root 目录为例讲解)。用 wget 命令下载 golang 源码。进入 golang 官网,点击官网中的 “Getting Started → Download Go → Linux” 获得下载链接,然后用 wget 命令下载源码包。截止到本文发出为止,golang 最新版本是 1.8,就输入下面的命令:
wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
解压
tar -xzvf go1.3.1.linux-amd64.tar.gz
创建文件夹 gopackage 用于存放 golang 的程序包
mkdir gopackage
编辑 /etc/profile 配置文件,添加 golang 环境变量
vi /etc/profile
按 i 键进入编辑模式,将下面的环境变量加入 profile,完成后按 Esc 键,然后输入 :wq!
后敲回车保存(我是在 /root 目录安装的,如果你选择的是其它目录,要自己更改变量中的路径):
export GOROOT=/root/go
export GOPATH=/root/gopackage
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
输入命令使环境变量生效:
source /etc/profile
输入命令检查 golang 是否安装成功:
go version
若安装成功,则会显示 golang 版本号。
获取 revel 源码
安装 git 工具。若是 CentOS,输入如下命令:
yum install -y git
若是 Debian/Ubuntu ,输入如下命令:
sudo apt-get install git-core mercurial openssh-server openssh-client
输入命令下载 revel Web 框架源码,下载速度视网络情况而定,可能时间有点长,耐心等待:
go get github.com/revel/cmd/revel
获取 Leanote 源码
上面已经创建了 gopackage 文件夹用于存放程序源码包,因此我们只需要下载好 revel 和 Leanote 服务端的源码包,然后解压放入 gopackage 文件夹即可。
接上面的步骤,当前处于 /root 目录,进入 gopackage 文件夹:
cd gopackage
下载 Leanote 服务端源码(若命令下载不成功的话,可以手动下载后用 FTP 工具上传到 gopackage 文件夹):
wget https://github.com/leanote/leanote-all/archive/master.zip
解压:
unzip leanote-all-master.zip
将解压出来的 leanote-all-master 文件夹内的 src 文件夹移到 gopackage 文件夹内:
mv /root/gopackage/leanote-all-master/src /root/gopackage
Leanote 服务端的源码文件在目录 /root/gopackage/src/github.com/leanote/leanote 中。以后要修改页面效果的话进入这个目录查找相应的文件进行修改。
安装 MongoDB 数据库
目前 MongoDB 数据库有 2.x 和 3.x 两类版本,个人建议选择 3.x 版,版本用新不用旧。下面以安装 3.x 版为例讲解。
回到 /root 目录:
cd ~
创建 mongodb 文件夹,用与存放 MongoDB 数据库源码和数据库文件:
mkdir mongodb
进入 mongodb 文件夹,下载 MongoDB 数据库源码并解压:
cd mongodb
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.1.tgz
tar -xzvf mongodb-linux-x86_64-3.0.1.tgz
编辑 /etc/profile 配置文件,添加 MongoDB 数据库的环境变量:
vi /etc/profile
按 i 键进入编辑模式,将下面的环境变量加入 profile,完成后按 Esc 键,然后输入 :wq!
后敲回车保存:
export PATH=$PATH:/root/mongodb/mongodb-linux-x86_64-3.0.1/bin
输入命令使环境变量生效:
source /etc/profile
创建一个用于存放数据库的文件夹:
mkdir data
#运行数据库(切入后台运行):
nohup mongod --dbpath /root/mongodb/data 2>&1 &
初始化数据库
由于我们安装的是 MongoDB 3.x 版本,因此要输入对应 3.x 版本的命令来初始化数据库:(我是在 /root 目录安装的,如果你选择的是其它目录,要自己更改命令中的路径)
mongorestore -h localhost -d leanote --dir /root/gopackage/src/github.com/leanote/leanote/mongodb_backup/leanote_install_data
配置 Leanote 服务端
进入 Leanote 服务端配置文件 app.conf 所在的目录:
cd ~
cd gopackage/src/github.com/leanote/leanote/conf
编辑 app.conf 配置文件,按照下面的标注修改,完成后按 Esc 键,然后输入 :wq!
后敲回车保存(如果不想用 vi 修改的话,可以用 FTP 工具打开配置文件进行修改):
vi app.conf
# 访问端口 可以自定义
http.port=9000
# 访问域名
site.url=http://
# 管理员用户名(默认用户名admin,密码abc123)
adminUsername=admin
# MongoDB 数据库配置
db.host=127.0.0.1
db.port=27017
db.dbname=leanote
db.username= #自定义数据库帐户
db.password= #自定义数据库帐户密码
mongodb://root:root123@localhost:27017/leanote
# app密钥 必须要自己修改 随便改成任意大小写字母加数字组合
app.secret=OIJiokioHoIOHUY072893bhJHui765GHjkgjJK8989GVghUIY788
另外,建议增加一个数据库帐户,开启数据库帐户验证,否则会有安全隐患。我们安装的是 3.x 版 MongoDB,用下面的命令创建数据库帐户,然后将帐户填到上面的配置里(db.username 和 db.password 这两项)。
#进入 MongoDB 数据库命令模式
mongo
#切换至 leanote 数据库
use leanote
#将 root 和 abc123 改成您想要的帐户名和密码
db.addUser("root", "abc123");{"_id" : ObjectId("53688d1950cc1813efb9564c"),"user" :"root","readOnly" : false,"pwd" : "e014bfea4a9c3c27ab34e50bd1ef0955"}
#测试帐户是否添加成功以及密码是否正确,返回数值 1 即表示成功
db.auth("root", "abc123");
运行 Leanote 服务端
输入命令运行 Leanote 服务端(切入后台运行):
nohup revel run github.com/leanote/leanote 2>&1 &
域名绑定 VPS 主机 IP,解析完成后即通过域名可正常访问 Leanote 首页
配置开机启动
虽然通过命令让 Leanote 进程进入后台运行了,但是一旦重启还是要手动开启,略麻烦,这时可以自己新建 *.sh 脚本文件,将命令写入脚本文件里,然后在 rc.local 配置文件中运行 *.sh 脚本文件就能实现开机启动 Leanote 服务端。
可以参考我的 *.sh 写法:
#!/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”
若脚本文件命名为 run.sh,且存放在 /root/gopackage 目录里,可以编辑 rc.local 配置文件:
vi /etc/rc.local
加入下面的命令然后保存即可:
source /etc/profile
/root/gopackage/run.sh
配置 https
既然是私人云笔记,加密传输数据肯定是有必要的,不然笔记里若保存了一些帐号的话可能会有安全隐患。在 Nginx 下只需要修改下配置文件就可以实现 https 访问 Leanote。另外你要先申请好 SSL 证书,这个要自己解决,可以去腾讯云或阿里云申请免费的 SSL 证书,很简单,百度一下就有相应的教程。申请到 SSL 证书后,共有 *.crt、*.key 两个文件,可以用 FTP 工具上传到 VPS(目录你自己定)。然后按照下面的步骤修改配置即可。
修改 Nginx 配置文件 /usr/local/nginx/conf/nginx.conf,将下面的配置加入 http {} 内:
#leanote_https
upstream xxx.com { #xxx.com替换成你的域名
server *.*.*.*:9000; #此处填写主机 IP 或域名
}
server
{
listen 80;
server_name xxx.com; #xxx.com替换成你的域名
rewrite ^/(.*) https://xxx.com/$1 permanent; ##xxx.com替换成你的域名
location / {
proxy_pass http://xxx.com; #xxx.com替换成你的域名
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server
{
listen 443;
server_name xxx.com; #xxx.com替换成你的域名
ssl_certificate /root/xx/xx/ssl.crt; #此处填写 ssl 证书的路径
ssl_certificate_key /root/xx/xx/ssl.key; # 此处填写 ssl 证书密钥的路径
location / {
proxy_pass http://xxx.com; #xxx.com替换成你的域名
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
输入命令重启 lnmp 即可生效:
lnmp restart
访问 https://你的域名
即可打开 Leanote 主页。
下载客户端
[reply]
注意,在客户端中填写“自定义服务器”时,服务器地址必须要加上 http 或 https,否则会无法登录。
[url href=https://www.idaybreak.com/go.php?http://pan.baidu.com/s/1gfqSSq3]Windows 32 位客户端 v2.4[/url][url href=https://www.idaybreak.com/go.php?http://pan.baidu.com/s/1eScHLXC]Windows 64 位客户端 v2.4[/url][url href=https://www.idaybreak.com/go.php?https://www.pgyer.com/Leanote]Android 客户端[/url][url href=https://www.idaybreak.com/go.php?http://pan.baidu.com/s/1mhWzPGG]MacOS X 客户端 v2.4[/url][url href=https://www.idaybreak.com/go.php?http://pan.baidu.com/s/1kURcocv]Linux 32 位客户端 v2.4[/url][url href=https://www.idaybreak.com/go.php?http://pan.baidu.com/s/1boFhq3P]Linux 64 位客户端 v2.4[/url][url href=https://www.idaybreak.com/go.php?https://itunes.apple.com/app/leanote/id1022302858]iOS 客户端[/url]
[/reply]
若还有其它疑问,可以到 github 上向作者提交 Issues。
博主你好,我在浏览器上输入ip+端口后,提示
App failed to start up
revel/harness: app died
请问是什么原因呢?
服务端配置或环境没弄好
貌似开机自启动mongod的脚本没用...
学习了
到了"#切换至 leanote 数据库"步骤,后面运行addUser总是报错 E QUERY SyntaxError: Unexpected token :
我想看看后面的内容
看客户端
瞅一眼
我看看呢
查看客户端
厉害,我想知道怎么设置成中文
看见了
看看客户端
查看客户端
这个笔记软件用着不错
看看kehuduan
看看客户端
看看客户端
客户端哦
这就是我需要的,太感谢分享了
谢谢分享
谢谢
准备试一下,希望能成功!
谢谢大神的分享,准备试验。
感谢分享
谢谢大神的教程,看了收益匪浅,这两天就试试手,希望一步到位 :grin:
加油!!!
正在尝试,希望一次成功
可不可以搭在 Windows Server 2008 R2 上
Windows Server开虚拟机,装Linux搭建服务端。
大大复出了,顶一个~\(≧▽≦)/~