背景

对于一个程序猿来说。女朋友可以(暂时)没有,但是不能没有一个很好的记笔记的应用。因为记笔记可以帮助自己积累学习提升自己。每一次回头看自己记得笔记,你都会有新的理解。
也许有人会说,用有道云啊,有道云就很好啊,你还纠结啥呢?
我是一个对产品需求要求很苛刻的人,也是一个追求性价比的人,所以这里我想说说各个笔记产品的一些缺陷:

有道云:

有道云的优势是笔记预览演示/文件上传及预览

但对我来说他的缺点:

  • 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搭建自己的笔记服务器的更多相关文章

  1. SLAM+语音机器人DIY系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04

    摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识.接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发.本章将从树莓派3的开发环境搭建入手,为后续ros开 ...

  2. QT树莓派交叉编译开发环境搭建

    QT树莓派交叉编译开发环境搭建 - JerryZone <Cross-compiling Qt Embedded 5.5 for Raspberry Pi 2> <Qt for Em ...

  3. 用go-module作为包管理器搭建go的web服务器

    本篇博客主要介绍了如何从零开始,使用Go Module作为依赖管理,基于Gin来一步一步搭建Go的Web服务器.并使用Endless来使服务器平滑重启,使用Swagger来自动生成Api文档. 源码在 ...

  4. 用ProGet搭建内部的NuGet服务器

    最近团队内部用的一个很简陋的NuGet服务器出问题了,nuget push发包,客户端显示发布成功,服务器上就是没有.懶得再去排查这个问题,早就想换掉这个过于简陋的NuGet服务器,借此机会直接弃旧迎 ...

  5. 搭建自己的Nuget服务器

    序言 你们公司有没有好多项目,有没有好多类库,你们的类库是在tfs中管理,还是svn或者github,又或者是各自为政版本类库随意使用? 那么你们使用者写类库的时候方便吗? 有没有更新下载,版本不一致 ...

  6. 【日记】搭建一个node本地服务器

    用node搭建一个本地http服务器.首先了解htpp服务器原理 HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端.HTTP协议采用了请求/响应模型 ...

  7. [翻译]用 Puppet 搭建易管理的服务器基础架构(4)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第四部分. 原文地址:http://blog.jobbole.com/89214/ 本文由 伯乐在线 - Wing 翻译,黄利民 校稿 ...

  8. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...

  9. 搭建git for windows服务器(100%可以成功)

    既然Git在Linux下面非常好用,为什么还要搭建git windows的服务器,因为不是所有的用户都需要在linux下面做开发,对吧,还有很多用户选择使用windows做开发. 看到很多网友尝试部分 ...

随机推荐

  1. Unity热更新之C#反射加载程序集

    用C#反射加载程序集的方式可以动态的从assetBundle资源包或其他资源包里加载脚本到工程中,即便是原工程中不存在的脚本. 我这里就用加载本地assetBundle的方式来进行讲解了,加载网络上的 ...

  2. 《java入门第一季》之面向对象(接口收尾)

    通过案例的形式,结束接口部分. /* 猫狗案例,加入跳高的额外功能 分析:从具体到抽象 猫: 姓名,年龄 吃饭,睡觉 狗: 姓名,年龄 吃饭,睡觉 由于有共性功能,所以,我们抽取出一个父类: 动物: ...

  3. [转]C# 之DLL调用(托管与非托管)

    每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用DLL的方法进行介绍.首先,您需要了解什么是托管,什么是非托管.一般可以认为:非托管代码主要是基于win 32平台开发的DLL,activeX ...

  4. 【公开课】【阿里在线技术峰会】何登成:AliSQL性能优化与功能突破的演进之路

    MySQL的公开课,可能目前用不上这些,但是往往能在以后想解决方案的时候帮助到我.以下是阿里对公开课的整理 摘要: 本文根据阿里高级数据库专家何登成在首届阿里巴巴在线技术峰会上的分享整理而成.他主要介 ...

  5. 【63】关系数据库常用的sql语句总结

    创建表 语法 CREATE TABLE <表名>(<列名> <数据类型>[列级完整性约束条件] [,<列名> <数据类型>[列级完整性约束条 ...

  6. unity连接数据库工具

    这里用的是一个集成工具UPUPW(Nginx+mysql+php版本) 网址:http://php.upupw.net/ 数据库登录: 本地: http://127.0.0.1/pmd 外网: htt ...

  7. 色彩转换——RGB & HSL

    RGB to HSL The R,G,B values are divided by 255 to change the range from 0..255 to 0..1: R' = R/255 G ...

  8. Globalization Guide for Oracle Applications Release 12

    Section 1: Overview Section 2: Installing Section 3: Configuring Section 4: Maintaining Section 5: U ...

  9. obj-c编程16:键值编码(KVC)

    我们可以借助obj-c中的键值编码(以后简称KVC,Key-Value Coding)来存取类的属性,通过指定所要访问的属性名字符串标示符,可以使用存取器方法来获取或设置类的属性.下面的例子,借助于K ...

  10. ruby 2.x.x之新特性散谈

    ruby入门看的是经典的<ruby编程语言>,可是那描述的是v1.9的老版本啊!下面聊一下ruby2.x.x的新特性,x是0-n都有可能啊. 1.关键字参数(Keyword argumen ...