• 再见了,收费的云笔记,自己搭建的就是好用


    最近一直想换一个云笔记,所以前段时间趁着假期折腾了一顿,弄得很头疼。

    云笔记我想大家应该都用吧,这也算是一个刚需软件了。

    聊到自己对云笔记的核心刚需,其实现在对于我个人来说,像功能性和颜值方面的要求真心不高,只要它支持Markdown书写,支持搜索和文件夹功能就行。我也不需要太花里胡哨的功能,现在反倒觉得越简单越好。

    不过数据层面的几个问题往往会更令人头疼。

    第一个就是数据的安全性。毕竟数据放在别人平台里,安全性和可控性始终是一个问题,另外还有一些比较隐私的个人东西也不太好往上面记录。

    第二个就是数据的备份和迁移。每当想换云笔记时这个痛点就显露出来了,数据怎么高效地备份和迁移是一件比较头疼的事情。这时候总在期望,如果数据可以一键打包备份,换个平台还能一键导入就好了。

    当然,还有一个就是收费问题。有些云笔记在一些关键刚需功能上是收费的,比如放图片,比如容量和空间的限制等等。当然这一点没啥可说的,看自己意愿了。

    网上关于云笔记选用的讨论看过很多,但还是找不到最心动的,所以这一次还是准备借助于开源项目自己用服务器来搭一个吧。

    一次性把这些痛点全解决了,部署在自己手里,完全免费,数据也全部在自己手里,安全可控,支持一键备份迁移,再也不怕换服务器和换平台了。

    接下来就记录一下搭建过程,非常简单,5分钟即可搞定,大家手上的服务器也可以用起来了!

    素材准备

    首先就是准备一台服务器,可以直接使用本地机器,当然也可以选用云服务器,这里准备的是一台Linux云主机。

    笔记项目这一次使用的是去年逛GitHub下载过的代码,今天又被我翻出来了。链接这里放不了,需要代码和操作文档的朋友转发本文后私信【610】即可无偿获取

    个人觉得作为个人云笔记来说是合格的,支持跨平台,支持部署到服务器,并且数据方便可控,常见的功能性需求也基本能够满足。

    环境准备

    服务器准备好之后,接下来要在上面安装两个组件。

    第一个是MongoDB数据库。这没什么好说的,它是一个广泛使用的文档数据库,我们后续的笔记数据就是用它来存的。

    第二个就是Nginx服务器。这个使用得也很广泛,它是一个Web服务器软件,之前也演示过很多次,对外发布应用时要用。

    至于安装方式就有多种选择了。

    一种方式就是手动在服务器命令行里按步骤进行安装,这个之前这里还专门写过一个《服务器编程环境安装+软件设施部署》PDF手册,需要的同学转发本文后私信【610】即可,过程并不复杂,还可以熟悉一下Linux环境下的操作。

    另外一种方式是,如果服务器上有宝塔面板,则可以在宝塔面板的「软件商店」里直接搜索这个两个组件,然后点击进行一键安装即可。

    环境准备妥当之后,接下来开始正式部署笔记。

    项目下载

    这里下载的是Linux版本。可以先下载到本地然后上传服务器,也可以在服务器命令行里直接通过wget命令来获取。

    下载完成之后,执行一行命令将其解压即可。

    tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz
    

    这里是解压到了/home/www目录,解压完成会生成一个笔记项目的目录。

    导入初始数据

    这一步我们要将云笔记的初始数据给导入到MongoDB数据库中。

    我们进入到刚解压出来的云笔记目录里,其中会有一个mongodb_backup文件夹。

    这里面存放的就是云笔记的初始备份数据。

    进入文件夹之后,执行一行命令,就能把它们导入到MongoDB数据库中。

    mongorestore -h localhost -d leanote --dir leanote_install_data/
    

    启动项目

    初始数据导入完成之后。

    接下来我们进入到笔记文件夹的bin目录,来启动项目即可。

    执行一行命令,让项目在后台启动。

    nohup bash run.sh &
    

    这时候我们就可以在浏览器里通过访问服务器IP+9000端口,就能看到自己部署的云笔记了。

    注意:这里要预先在服务器控制台里放通9000端口。

    然后选择登录云笔记即可,初始用户名为admin,密码为abc123。

    登进去之后,记得在个人中心里先自行修改一下用户名和密码即可。

    这样笔记服务就已经在服务器上部署起来了,接下来对外发布一下即可。

    发布应用

    这里我们是通过Nginx Web服务器来发布笔记应用。

    我们直接修改nginx.conf配置文件,这里主要就两个配置,这在之前文章里也配置过很多次。

    首先是定义一个upstream,指向上一步骤中笔记服务的实际地址,也就是9000端口地址的这个服务。

    1. upstream note {
    2. server 127.0.0.1:9000;
    3. }

    然后再在location配置里指向该upstream就可以了。

    1. location / {
    2. proxy_pass http://note;
    3. proxy_set_header HOST $host;
    4. proxy_set_header X-Forwarded-Proto $scheme;
    5. proxy_set_header X-Real-IP $remote_addr;
    6. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    7. }

    然后重启Nginx后,这时候在浏览器里只需要输入服务器IP地址,即可访问云笔记了,而不再需要加9000端口了。

    功能体验

    出于篇幅考虑,这里也来简单体验一下这个云笔记。

    Markdown书写

    常见的md语法比如:一级标题、二级标题、三级标题、分隔符、图片、代码块、数学公式、表格、流程图、待办事项、有序列表、无序列表、引用、脚注都支持,整体还可以。

    多层文件夹(子笔记)

    自定义标签

    支持附件

    如果有需要,可以自行文件上传的大小限制

    全平台客户端

    这个客户端可以连到自己的自建笔记服务,所以还是挺好的。

    数据的备份和迁移

    最后再来聊一下笔记数据的备份和迁移问题,这个尤为重要,毕竟折腾半天主要就是期望有这个功能。

    因为数据现在完全在自己手上,位于自己服务器上的MongoDB数据库里。

    所以这样就只需要执行一行mongodump命令,就可以把数据备份下来。

    mongodump -h localhost -d leanote -o <dir>
    

    以后如果想换服务器或者换平台,直接把数据迁移过去,然后再执行一下mongorestore即可

    mongorestore -h localhost -d leanote --dir <dir>
    

    这样即可恢复和重建数据,还是比较方便的。

    最后还有一个需要注意的是,因为这里的MongoDB初始是没有用户的,所以建议还是给MongoDB添加一个用户和密码,然后在笔记的配置文件里修改一下对应MongoDB的用户配置,这样就行了。

    后 记

    这样一来,文章开头提到的几个关于笔记使用的痛点问题基本就都能解决了,所以有兴趣的小伙伴可以尝试一下,手上的服务器也可以用起来。

  • 相关阅读:
    BC1电子元件的功能、应用与未来前景 | 百能云芯
    猿创征文|瑞吉外卖——移动端_笔记
    InnoDB存储引擎状态详解
    前后端交互—Express
    手写eventbus,ts
    查询物流有多简单,具体步骤如下
    详解数据结构之-「数组篇」
    FastWiki v0.1.0发布!新增超多功能
    汇编内中断
    java对象拷贝
  • 原文地址:https://blog.csdn.net/m0_67645544/article/details/125416597