之前作死进了Leanote的坑,折腾了几天确实能搭建出一个勉强能用的,但还是有些问题没解决:
自己之前买了台阿里云的服务器,做了一个Wordpress网站,也没啥流量,突发奇想闲着也是闲着,要不用服务器搞一个笔记应用,方便平时记记笔记,希望能满足下列需求:
多端同步
最好是桌面端的Windows,Macos,Linux,移动端的苹果和Android都能同步,我自己主要是Windows和Android能同步就好了,电脑端做笔记,移动端主要是利用零碎时间复习下笔记而已;
数据安全
数据存储下自己的服务器上,不用担心哪天笔记厂商倒闭了,或者是应用下架了等不可控状况,自己心血都没了;
支持Markdown语法
能够支持Markdown语法,我才开始学Markdown,好像用这个写文章很方便的样子;希望学会之后能够方便使用Markdown写作提升效率;
数据备份及恢复
数据虽然存储在服务器,但有时候避免不了需要更换服务器什么的,这时候能方便的进行数据备份和恢复就显得尤为重要;
基于上面的需求,我开始了漫漫寻找之路,终于了解到了蚂蚁笔记(Leanote)这个笔记软件,看了N多篇教程,踩了N多坑,折腾了几天,总算是的搭建出能用的了。但是因为我也是新手,很多东西只能跟着别人的教程慢慢摸索,本文也只争对和我有类似需求和经历的新手,算是对之前踩坑的总结吧,有不对的地方或更高效的办法能解决的问题还希望大神们不吝赐教!
注: 如同上面说的,我同时也在尝试Joplin,好像更喜欢Joplin一点,而且有大佬做了详细的教程,同样可以满足上面的需求,笔记同步各种云或者云对象存储,链接已经放在文章开头了,不过Leanote这个坑既然踩了,总得填上才是。
Leanote是一款开源云笔记软件,使用Go的Web框架revel和MongoDB开发完成。支持多语言,多用户,有非常好的笔记记录体验,本文介绍 Leanote 二进制版的安装方法(Mac,Linux用户)。
登陆阿里云服务器后台,在安全组设置里面添加安全组规则,打开以下端口:443(https),80(http),9000(Leanote),授权对象:0.0.0.0/0。
注:因为我之前已经在服务器上放了一个网站,其他端口比如宝塔面板(8888),MySQL数据库(3306),FTP被动模式常用端口(39000/40000),FTP(文件传输)协议代理服务器(20/21),phpmyadmin(888),SSH远程连接(22)等端口我都已经打开过了,所以现在只需要打开9000端口就行,如果你服务器是第一次配置,打开上面端口至少可以保证笔记应用不出问题,如果是建站的话,记得去搜一下阿里云服务器ECS的安全组配置。
点击下载 Leanote 最新二进制版,http://leanote.org/#download。
通过上面的地址下载压缩包后,登陆宝塔面板,选择文件,进入相应的目录,上传下载的压缩包并解压,我是将leanote解压到www目录,对应的文件地址应该是:/www/leanote,具体可以参照下面图片:
在宝塔面板搜索MongoDB并安装,安装后应该就是默认启动的,如果没启动,自己启动一下 MongoDB 服务即可。就是不知道为啥选择安装的是4.4版本,装上后显示的是4.0.10,更新也不行,不知道什么原因?不过应该没啥影响。
注:
汇智网—点击查看MongoDB数据库相关命令
菜鸟教程—点击查看MongoDB数据库相关命令
测试 MongoDB 是否安装成功
这一步就要注意了,尤其对新手,输入命令的时候一定要注意当前所处的路径,在终端输入mongo命令之后再输入show dbs,有的人(比如我)当前面是这个">“符号,我输入"mongo"报错,当前面一个”#“号在哪里闪,我却在输入"show dbs”,也报错,还以为ssh软件有问题,看到这里老鸟估计得笑死…
$> mongo
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
正确的应该如下图:
MongoDB安装到此就完成了, 下面为MongoDB导入Leanote初始数据。
我之前的Leanote是直接解压在www目录下,你根据自己的实际情况更改为相应的目录。
注意:输入命令一定要注意路径,之前我通过堡塔远程工具输入命令,在这一步老是出错,死活进行不下去,后来才发现是自己没注意命令的路径,毕竟新手也不懂相关命令,卡了了好久。
$> mongorestore -h localhost -d leanote --dir /www/leanote/mongodb_backup/leanote_install_data/
# 首先切换到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的配置文件,里面有数据文件存放的地址,我的是:/www/server/mongodb/data,不用命令的话直接在宝塔后台点击重启即可。
$> mongod --dbpath /www/server/mongodb/data --auth
熟悉Vim的朋友可以使用下面的命令编辑,像我等新手还是推荐直接找到文件的路径,直接在宝塔打开编辑就行,如下图:
vim /www/leanote/conf/app.conf //打开配置文件,修改以下几项
site.url=http://你的外网访问域名:9000
db.host=localhost //mongodb地址
db.port=27017 //mongodb端口
db.dbname=leanote // 数据库名字
db.username=root //之前创建的数据库用户名
db.password=abc123 //之前创建的数据库密码
app.secret = 'sdggertwertsdfsd' //任意修改填写
好了,完成了MongoDB和Leanote的安装配置,接下来就看能不能访问了。
注意: 在此之前请确保MongoDB已在运行!
新开一个窗口, 运行:
$> cd /opt/leanote/bin //进入可执行文件的目录
$> bash run.sh //启动leanote
最后出现以下信息证明运行成功:
...
Listening on..0.0.0.0:9000
然后打开浏览器输入: http://localhost:9000,就可以体验leanote了。
注意:
cd /www/leanote/bin //进入可执行文件的目录
nohup bash run.sh& //让程序在后台运行
注意:这里前往别忘记加命令末尾的"&",网上有的教程就没有加,否则会提示错误:
ignoring input and appending output to 'nohup.out'
Leanote默认超级管理员为admin, 用户名可以点击右上角的头像,选择个人中心,点击账户信息进行修改,但注意只能修改一次,一旦不小心修改了用户名就不能改回了,而且经过测试,超级管理员的权限也会没有了,我在网上搜了下,说是下面方法可以指定超级管理员账户,但经过测试不能用,不知道是不是打开姿势不对,希望有知道的大佬指点下我再更新文章。
# 修改配置文件app.conf, 比如指定用户life为超级管理员, 修改或/添加一行:
adminUsername=life
为了方便起见或者看着舒服,我们可以配置一个域名。假设域名为:http://apple.cn,通过宝塔面板配置的方法如下:
宝塔后台添加网站,在网站右侧的网站设置选项添加"反向代理",在"目标URL"中输入:http://IP:9000,保存后就可以通过域名访问笔记了,如下图:
注意:
最后再来聊一下笔记数据的备份和迁移问题,这个尤为重要,毕竟折腾半天主要就是期望有这个功能。
在MongoDB中我们可以在不停止服务的情况下使用mongodump命令来备份MongoDB数据,该命令可以导出所有数据库到指定目录中。
mongodump命令脚本语法如下:
mongodump -h dbhost -d dbname -o dbdirectory
-h:MongoDB所在服务器地址,对于本教程可以直接写:localhost,代表的就是你服务器。
-d:需要备份的数据库实例,例如:leanote,也就是数据库的名字。
-o:备份的数据存放位置,例如:/www/server/mongodb/data/leanote-bak。
执行下面的mongodump命令,系统自动在leanote-bak目录下建立一个leanote目录,这个目录里面存放leanote这个数据库实例的备份数据。
mongodump -h localhost -d leanote -o /www/server/mongodb/data/leanote-backup
数据备份好后,以后如果想换服务器或者换平台,需要把数据迁移过去,就需要用到mongorestore命令。其实前面导入leanote数据的时候就用过这个命令,这里详细介绍下。
>mongorestore -h <:port> -d dbname
-h:MongoDB所在服务器地址,对于本教程可以直接写:localhost,代表的就是你服务器的IP地址;命令也可以写成–host <:port>, -h <:port>,后面加端口号,不写就是默认:27017
-d:需要恢复的数据库实例,例如:leanote,也就是数据库的名字当然这个名称也可以和备份时候的不一样,比如test2
注: 主要常用上面三个命令,下面两个不常用。
–dir:指定备份的目录,你不能同时指定 和 --dir 选项。
–drop: 恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!
执行下面的mongorestore命令,系统自动将/www/leanote-backup/leanote目录下的数据恢复到leanote这个新建的数据库。
mongorestore -h localhost -d leanote /www/leanote-backup/leanote
- leanote官方安装文档,Mac,Linux用户的二进制版安装,点击查看
- leanote 安装/配置问题汇总,点击查看
- 为羊哥点赞,利用云服务器搭建私人云笔记,点击查看
- 基于宝塔面板使用 Leanote 搭建自己专属的云笔记,点击查看
- 菜鸟教程—MongoDB数据库教程,点击查看
- 汇智网—MongoDB数据库教程,点击查看
- 基于Joplin+PicGo+阿里OSS搭建自己的云笔记