Ubuntu下部署leanote

随着自己码农生涯的深入,知识的不断积累,高效并且稳妥地管理自己的知识变得非常急迫,在各种公众笔记里面找了一大圈,发现并没有什么特别合适的(不是太贵就是有广告),偶然间发现leanote,而且还是喜闻乐见的开源产物,正好自己在腾讯云买的学生优惠服务器都没干过什么正事,正好就可以拿来部署私有的云笔记。

部署准备

首先,我的服务器是腾讯云买的云服务器,安装Ubuntu Server 14.04.1 LTS 64位系统,同时使用OneinStack安装了Nginx,Nginx是进行端口转发用的,毕竟没有那么多80端口啊。网上找了很多教程,但是安装过程不是很顺利,这里再写写我的经验。

部署过程概览

  1. 下载二进制文件
  2. 安装Mongodb
  3. 更改配置文件
  4. 启动leanote
  5. 设置端口转发

下载二进制文件

这里直接去官网下载Linux的二进制文件

> wget http://nchc.dl.sourceforge.net/project/leanote-bin/2.0/leanote-linux-amd64-v2.0.bin.tar.gz

然后将其解压

> tar -xzvf leanote-linux-amd64.v2.0.bin.tar.gz

接着把它放到你想放的地方,我喜欢把所有的软件都放到/usr/local/下,虽然这样可能会导致各种权限问题,大家可以按自己的习惯来

> sudo mv leanote  /usr/local/

安装Mongodb

网上很多教程都说这一步需要去官网下载最新的Mongodb来安装,但是这一步一直有报错,无法通过,最后我直接使用了apt-get来安装Mongodb,各位大神可以自行去研究

> sudo apt install mongodb-server

然后尝试启动Mongodb,其需要一个存放数据的路径

> mkdir data
> mongod --dbpath /data/mongodb/data

这一步之后,会出现一大堆东西,类似

-07-02T02:14:19.474-0400 [initandlisten] MongoDB starting : pid=5073 port=27017 dbpath=/data/mongodb/data 64-bit host=localhost
…………
-07-02T02:14:19.599-0400 [initandlisten] waiting for connections on port 2701

出现这个运行端口和等待连接之后,就可以了,此时Mongodb就已经安装成功了,我们需要导入leanote的原始数据,其实就是创建表之类的,这里我们需要先重新开一个终端,因为Mongodb已经在运行了,直接复制一个SSH通道就可以了,然后开始导入数据,数据存放在?/leanote/mongodb_backup/leanote_install_data/

> mongorestore -h localhost -d leanote --dir /usr/local/leanote/mongodb_backup/leanote_install_data/

这样,整个leanote的数据库就已经配置好了,官方还建议我们为leanote的数据库创建一个用户

> mongo
> show dbs;

这样,我们应该能够看到一个leanote的数据库,切换到里面,并且添加用户

> use leanote;
> db.createUser({
    user: 'root',
    pwd: 'abc123',
    roles: [{role: 'dbOwner', db: 'leanote'}]
});
> db.auth("root", "abc123");

最后一行是验证是否正确,如果正确了,会返回1。另外直接使用exit;命令可以推出Mongodb的shell。接下来我们要开启权限验证,首先在运行Mongodb的会话按下Ctrl+C结束其进程,然后重启之

> mongod --dbpath /home/user1/data --auth

修改配置文件

我们回到另外的会话,开始修改配置文件

> sudo vim /usr/local/leanote/conf/app.conf

如果你在当前用户权限的文件夹下,不需要root权限即可修改,需要修改的项如下

site.url=leanote.yangmqglobe.cn #我们要配置外网访问,需要修改
db.username=root #我们创建了用户权限,需要添加
db.password=abc123 #数据库的密码
app.secret=abc123 #这行官方称为了安全必须修改,想改啥改啥

这样整个leanote的配置就完成了

启动leanote

运行?/leanote/bin/run.sh即可启动leanote

>sh /usr/local/leanot/bin/run.sh

此时,leanote就已经启动了,和Mongodb类似,我们暂时不能关闭这个进程,因为我是远程连接云服务器,所以,我不能用浏览器去试着访问,而外网也并不允许访问(我开启了防火墙),我复制了一个SSH通道,用wget试了一下

> wget localhost:9000

发现确实能够访问,下载到了一个html文件,这就表明已经可以访问了。

设置端口转发

因为我们总不能什么都使用80端口,那么我们可以借助Nginx进行端口的转发,我用leanote.yangmqglobe.cn这个二级域名来访问leanote,所以我添加一个虚拟服务器如下

    server {
        listen 80;
        server_name leanote.yangmqglobe.cn;
        access_log off;

        location / {
            proxy_pass http://127.0.0.1:9000;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Via "nginx";
         }
    }

大致的意思是,来自leanote.yangmqglobe.cn的访问全部转发至9000端口处理,同时添加一些头信息。接下来检查一下

> nginx -t

如果没有报错,说明配置信息无误(当时我使用的并非Nginx的默认启动用户,所以还报了一些权限问题的错误,大家要仔细鉴别一下哦!)。然后重启Nginx服务

> service nginx reload

这里可能需要用Nginx服务的专用用户去操作,大家按照自己的配置来。接着我们外网浏览器访问leanote.yangmqglobe.cn就能看到,整个leanote已经能够使用了。最后,我们还需要做一个工作,因为我们的leanote是在前台运行的,如果我们关闭SSH链接,再访问就会返回503错误,因为leanote的进程也会随着SSH进程被杀死而被杀死。先将前台运行的leanote结束,简单的我们将leanote丢到后台

> nohup run.sh >/dev/null 2>&1

这样我们把leanote扔进后台运行同时忽略他的输出,即使我们关闭SSH连接也能继续使用服务了!其实这样也是可以的,但是为了防止该进程被杀死,推介使用进程守护工具supervisor,首先安装

sudo apt install supervisor

然后编辑配置文件,创建文件/etc/supervisor/conf.d/leanote.conf,内容如下:

[program:leanote]
command=sh /usr/local/leanote/bin/run.sh
autostart=true
stdout_logfile=/dev/null

意思是创建名字叫leanote的程序,其运行命令,是否自动启动,标准输出的文件位置。现在启动supervisor即可

sudo /etc/init.d/supervisor start

如果想查看一下leanote进程的状况

> sudo supervisorctl status leanote

尽情享受私有的笔记服务吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容