树莓派+花生棒+leanote搭建自己的笔记服务器
背景
对于一个程序猿来说。女朋友可以(暂时)没有,但是不能没有一个很好的记笔记的应用。因为记笔记可以帮助自己积累学习提升自己。每一次回头看自己记得笔记,你都会有新的理解。
也许有人会说,用有道云啊,有道云就很好啊,你还纠结啥呢?
我是一个对产品需求要求很苛刻的人,也是一个追求性价比的人,所以这里我想说说各个笔记产品的一些缺陷:
有道云:
有道云的优势是笔记预览演示/文件上传及预览
。
但对我来说他的缺点:
markdown不支持截图直接粘贴
,所以我一般把截图传到github的issue里或者传到博客园,再粘贴到有道云的markdown的编辑器里(是不是很蠢?)- 既然markdown不支持截图粘贴,所以我用有道云一般都用普通模式,可以直接截图粘贴,但是这个竟然
没有代码高亮
,我去不能忍。 没有脑图
有剪藏功能,但是做的很烂
leanote(蚂蚁笔记):
leanote弥补了有道云markdwon不能粘贴图片的缺陷,他的普通模式也有代码高亮,同时也有思维导图。
但是:
leanote不能预览演示
leanote不支持文件预览
(有道云支持,不过对我好像无所谓,工作用的文档一般放在公司内网)没有剪藏功能
- 没有链接分享,但是有博客分享功能(但是有时候我只想分享一个链接而不是我的博客)
印象笔记:
其实我以前一直是印象笔记的用户,因为印象笔记的剪藏真的做得挺好,但是:
不支持markdown
(虽然可以配马克飞象啥的,但是收费而且麻烦)不支持代码高亮
演示功能不错,但是收费
为知笔记:
没用过,但是我去体验了一下,有链接分享功能,代码高亮好像做的不行,总是没有吸引我的地方,就没用了。
所以我权衡了一下,准备用leanote,但是:
这表示你不交钱根本不能用,只能当一个本地编辑器用。我很无语,因为50一年很便宜但是每月128M流量
,虽然比印象笔记的60M
限制好点,但是也很少啊。其实我已经准备交钱了,但是突然看到一篇文章:Leanote 服务器安装,发现leanote是可以自己搭建服务,前提是你要有服务器。以前在学校用的腾讯1元服务器,但是毕业了就不给用了,自己买又不划算。所以我就想用我的树莓派来作为一个服务器;
树莓派是一个微型电脑,长这样:
这个树莓派是以前参加Daocloud的活动送的,买的话加上配件大概250块钱。我的树莓派的配置是1G内存,16G存储,够用。按照Leanote 服务器安装这篇文章作为参考搭建服务器。我主要说下需要注意的地方:
- leanote服务端代码一定要下载
arm版
,因为树莓派内核是arm7好像,不然下载其他版本leanote服务端代码运行run.sh
会报错,到这里下载 - 树莓派安装mongodb,只需要
sudo apt-get install mongodb
就行,所以安装mongodb不用跟着那篇文章。 - 为mongodb数据库添加用户且设置这个用户为管理员之后首页就访问不了了(原因暂时未知),但是可以访问/login,如
http://***.***.net:12719/login
(这个端口),
大家肯定注意到我的域名后面有个端口,啥操作?其实这个域名和端口都是免费的,可以使用花生壳这个工具来映射端口,免费的,实名认证一下就行,每月有1G免费流量,也送域名;不过我用的是我很久以前买的是花生棒,98块钱,花生棒每月有2G流量
。大家也可以用免费的ngrok
。(至于花生棒怎么配置就不说了)
总之就是把内网地址映射成外网可用地址,然后把这个外网地址:
这样就OK了,但是要注意账户你得在你搭建的服务上重新注册一个,或者你自己手动迁移你原来的数据库:
最后,再说下树莓派上的leanote,我是用了一个叫做supervisor
的工具来管理,具体安装配置参考:Supervisor安装与配置(Linux/Unix进程管理工具),如有启动失败的情况,多半和权限有关,树莓派默认登录账户是pi,可以切换到root账户来操作:
但是切换到root账户,你之前下载的leanote代码路径可能会变,如一开始我代码是放在pi账户下的~/Projects/leanote/
,但是切换到root账户之后,地址变成了/home/pi/Projects/leanote/bin/run.sh
,最后附上我的Supervisor的配置(名字是leanote.conf
,放在/etc/supervisor/conf.d
下面):
总之这么搞拿来知识积累是没问题的啦。我还有一个从以前破电脑上拆下来的750G硬盘,这个硬盘接到树莓派上对我来说可以用好久啦。
最终的成本大概是:树莓派(250)+花生棒(98)=350块钱,就算加上移动硬盘差不多就600块钱吧(如果你用ngrok代替花生棒那就就花买个树莓派的钱),但是你这钱除了可以支持你用来搭建笔记服务,还可以做好多其他事情。
对于我来说就是花了98块钱买花生棒。所以这笔买卖,划算。
或许有人会吐槽我扣舍不得给leanote充钱,但我想说的是,我这哪里扣啦,我这是精致的生活好吧。
好吧,其实我就是扣。
最后声明一下,我没有给提及的产品打广告。
树莓派+花生棒+leanote搭建自己的笔记服务器的更多相关文章
- SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04
摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识.接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发.本章将从树莓派3的开发环境搭建入手,为后续ros开 ...
- QT树莓派交叉编译开发环境搭建
QT树莓派交叉编译开发环境搭建 - JerryZone <Cross-compiling Qt Embedded 5.5 for Raspberry Pi 2> <Qt for Em ...
- 用go-module作为包管理器搭建go的web服务器
本篇博客主要介绍了如何从零开始,使用Go Module作为依赖管理,基于Gin来一步一步搭建Go的Web服务器.并使用Endless来使服务器平滑重启,使用Swagger来自动生成Api文档. 源码在 ...
- 用ProGet搭建内部的NuGet服务器
最近团队内部用的一个很简陋的NuGet服务器出问题了,nuget push发包,客户端显示发布成功,服务器上就是没有.懶得再去排查这个问题,早就想换掉这个过于简陋的NuGet服务器,借此机会直接弃旧迎 ...
- 搭建自己的Nuget服务器
序言 你们公司有没有好多项目,有没有好多类库,你们的类库是在tfs中管理,还是svn或者github,又或者是各自为政版本类库随意使用? 那么你们使用者写类库的时候方便吗? 有没有更新下载,版本不一致 ...
- 【日记】搭建一个node本地服务器
用node搭建一个本地http服务器.首先了解htpp服务器原理 HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端.HTTP协议采用了请求/响应模型 ...
- [翻译]用 Puppet 搭建易管理的服务器基础架构(4)
我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第四部分. 原文地址:http://blog.jobbole.com/89214/ 本文由 伯乐在线 - Wing 翻译,黄利民 校稿 ...
- [翻译]用 Puppet 搭建易管理的服务器基础架构(3)
我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...
- 搭建git for windows服务器(100%可以成功)
既然Git在Linux下面非常好用,为什么还要搭建git windows的服务器,因为不是所有的用户都需要在linux下面做开发,对吧,还有很多用户选择使用windows做开发. 看到很多网友尝试部分 ...
随机推荐
- jQuery 瀑布流插件: Wookmark
原文链接: jQuery Wookmark 在线示例: jQuery Wookmark Demo Wookmark官网: http://www.wookmark.com/jquery-plugin 翻 ...
- struts ajax多级下拉菜单
先看项目截图: 看看要加入的jar包 除了struts核心的那个几个之外,我们还需要这两个 OK先看struts.xml <?xml version="1.0" encodi ...
- lamp 环境配置
LAMP是一个缩写Linux+Apache+MySql+PHP,它指一组通常一起使用来运行动态网站或者服务器的自由软件: * Linux,操作系统:* Apache,网页服务器:* MySQL,数据库 ...
- Java-HttpSession监听
//HttpSession监听 public interface HttpSessionActivationListener extends EventListener { /** Notificat ...
- mtk camera 移植步骤
mtk camera 移植步骤: 1, Kernel层驱动代码文件添加 /mediatek/custom/doov92_wet_tdd/kernel/imgsensor/下添加imx179_mipi_ ...
- Swift之GCD使用指南1
Grand Central Dispatch(GCD)是异步执行任务的技术之一.一般将应用程序中记述的线程管理用的代码在系统级中实现.开发者只需要定义想执行的任务并追加到适当的Dispatch Que ...
- 八、Join 连接查询
文档目录 开发中...
- 初识Java——循环语句
循环语句就是在一定条件下反复执行某一个操作.具体有三种方法实现: 1while循环语句 while语句也称作条件判断语句,它的循环方式为利用一个条件来控制是否要反复执行.语法如下: while(条件语 ...
- COSO企业风险管理框架2017版发布!看看有哪些变化?
近期,COSO发布了新版(2017版)的企业风险管理框架:<企业风险管理—与战略和业绩的整合>.相较于2004年发布的上一版框架<企业风险管理—整合框架>,新框架强调了制定战略 ...
- Socket.io文字直播聊天室的简单代码
直接上代码吧,被注释掉的主要是调试代码,和技术选型的测试代码 var app = require('express')(); var server = require('http').Server(a ...