树莓派+花生棒+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做开发. 看到很多网友尝试部分 ...
随机推荐
- 开源图像检索工具:Caliph&Emir使用方法
Caliph&Emir是基于MPEG7的软件.它是用Java编写的开源软件.采用了lucene完成索引和检索功能.是研究MPEG7标准,图像检索等等方面不可多得的好工具. 在此介绍一下它们的基 ...
- Java-Enumeration总结
纸上得来终觉浅,绝知此事要躬行 --陆游 问渠那得清如许,为有源头活水来 --朱熹 Enumeration(枚举)接口的作用和Iterator类似,只提供了遍历Vector和HashTabl ...
- 【Qt编程】Qt学习之状态栏
QStatusBar类提供一个水平条来显示状态信息.所谓状态信息,拿个简单的例子来说,当你在word中编辑时,左下角就会出现页面.字数等等信息.状态信息可以分为三类:临时信息,如一般的提示信息:正常信 ...
- 如何配置android的adb环境变量
如果打开DOS窗口,输入adb显示既不是内部命令也不是外部命令,则说明没有配置adb环境变量.方法如下: 第一步: 打开环境变量配置窗口.右击计算机,属性-高级系统设置-环境变量. 第二部: 添加an ...
- how tomcat works 六 生命周期
我觉得这一章叫tomcat中的观察者模式,比较好! 首先,不要看本章,请查看一下关于观察者模式的资料比较好. 推荐以下知识点 基础篇 设计模式之禅----观察者模式 大家可以找到pdf阅读一下 另外本 ...
- RPi Kernel Compilation
Overview This page explains how to rebuild the kernel image for the RPi. There are two possible rout ...
- Gradle 1.12用户指南翻译——第三十六章. Sonar Runner 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- 内核调试神器SystemTap — 更多功能与原理(三)
a linux trace/probe tool. 官网:https://sourceware.org/systemtap/ 用户空间 SystemTap探测用户空间程序需要utrace的支持,3.5 ...
- ORACLE ERP各模块会计分录
ORACLE ERP各模块会计分录 第一章 采购模块 一.资产采购(科目来源:库存组织) 1.物料接收 借 材料采购 接收数量*采购单价 贷 应计暂估 接收数量*采购单价 2 ...
- cocoa编程第4版 8.6 挑战2 解答
该版本的RaiseMan不用Array Controller,全部手写代码. 要注意的有以下几点: 1.TableView每列的sort设置和AC版的相同,但要手写排序代理方法 2.TableView ...
