树莓派+花生棒+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做开发. 看到很多网友尝试部分 ...
随机推荐
- Java集合之Set
Set也是继承自Collection,Set也是集合的一种,同时Set不允许重复的元素存在.Set的实现类都是基于Map来实现的,其中HashSet是通过HashMap来实现的,TreeSet是通过T ...
- GitHub前50名的Objective-C动画相关库相关推荐,请自行研究
GitHub的Objective-C的动画UI库其实是最多的一部分,GitHub有相当一部分的动画大牛,如Jonathan George,Nick Lockwood,Kevin,Roman Efimo ...
- Android Activity的四种经典传值方法
文/ http://blog.csdn.net/sk719887916/article/details/41723613 skay 开发中遇到多个activity的传值问题 相邻两个之间的传值 或者 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(六) indigo xtion pro live
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- how tomcat works 读书笔记 八 载入器下
载入类 我们看看之前的文章,这一节就从SimpleWrapper的loadServlet讲起. SimpleWrapper.java如下(省略了try catch及其他部分代码) public Ser ...
- Erlang cowboy http request生命周期
Erlang cowboy http request生命周期 翻译自: http://ninenines.eu/docs/en/cowboy/1.0/guide/http_req_life/ requ ...
- Mybatis 源码之Plugin类解析
public class Plugin implements InvocationHandler { private Object target; //目标对象 private Interceptor ...
- 安卓系统底层C语言算法之测试参数是几个long型的算法
#include <stdio.h> #define BITS_PER_LONG (sizeof(unsigned long) * 8) //求一个数x是几个long的长度 #define ...
- Emmet for Dreamweaver:HTML/CSS代码快速编写神器
Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来生成代码,大大提高了HTML/CSS代码编写的速度,比如下面的演示: ...
- C# 设置Word文档背景(纯色/渐变/图片背景)
Word是我们日常生活.学习和工作中必不可少的文档处理工具.精致美观的文档能给人带来阅读时视觉上的美感.在本篇文章中,将介绍如何使用组件Free Spire.Doc for .NET(社区版)给Wor ...