前言
很久很久之前就一直在找一些好用的并且开源的note app,尝试过trilium、蚂蚁笔记、notion、语雀 都没有找到我心仪的那一款,要么是数据是存储在境外,一旦国家的墙更厚了,就尬了,另外一些就是数据很分散,备份出来的数据无法很顺利的导入到其他的app中。
直到有一天我发现了Standard notes。
关于Standard notes
Standard notes是一款免费、开源且完全加密的笔记应用程序。
简单介绍一些它的优点:
- 开源 代码开源,可以自己创建对应的服务,将数据存储在自己的自建数据库中,这也是我最看重的一点
- 免费 知识付费时代,有一些免费的可维护的项目也是很难得,该产品也是通过开源的形式,然后使用官方的服务队插件进行收费
- 完全加密 按照文档的说法是完全的端到端加密,数据在浏览器进行接口传输之前就已经进行了加密,避免网络传输过程中被拦截后数据泄露的场景
部署Standard notes
Standard notes大部分语言是使用node写的,按照微服务的方式进行拆分,分为几大块:
服务层:
- 同步服务器 业务逻辑的核心,负责对用户数据的所有操作。
- 同步服务器 work 同步服务器 JS Worker 负责同步服务器 JS 可能为后台处理卸载的所有异步任务。这包括例如处理电子邮件备份、解决笔记重复问题、将笔记发送到扩展服务器等等。
- 身份验证 该服务器负责所有授权和认证机制。身份验证是处理和处理所有与帐户相关的元数据的地方。
- 身份验证 work Auth Worker 负责所有与认证和授权领域相关的异步任务例如,处理帐户删除请求和用户的注册后任务。
- API网关 这是整个架构的主要“入口点”。API 网关充当所有无法直接访问的服务的路由器和代理。
数据层:
- 数据库 MySQL 数据库服务器。这是存储所有数据的地方。
- 缓存 Redis 缓存节点,其中保留所有临时数据以进行性能优化和自动过期功能。在自托管模式下,Redis 默认用作服务与其work之间的通信队列。
部署步骤
我是使用的docker-compose 加上自己的公有云数据库和缓存进行部署的,官方给出的docker-compose文件可以参见:文档
- 第一步:将https://github.com/standardnotes/standalone git仓库的内容clone或者下载下来放到服务器的对应目录
- 第二步:进行对应的文件夹,然后执行:
./server.sh init
- 第三步:编辑 .env文件配置自己的数据库以及对应的token,编辑docker文件内的api-gatewat.env文件和auth.env文件,修改对应的token
- 第四步:当配置文件修改完成以后,执行
./server.sh start
启动服务 - 第五步:执行
./server.sh logs
查看服务日志,如果出现问题根据对应的提示进行解决 - 第六步:给api-gateway服务配置对应的代理,我是使用的nginx,用域名进行代理即可
以上的所有步骤都可以在官方文档中看到。
注意:
我的docker-compose根据官方的文件修改而来,使用的是自己的数据层,所以没有启动对应的数据库,如下,具体步骤可以参考以上文档。
1 | version: '3.5' |
使用Standard notes
当所有的部署步骤完成,并且配置好反向代理之后,就可以正式启用对应的服务了,使用步骤如下:
- 打开 https://app.standardnotes.org/ 链接
- 点击Account,然后点击注册,在高级配置里面配置上自己的服务域名
- 填上自己的账号,然后就可以开始使用了
- 初始情况下的编辑器是默认的官方编辑器,可以引入markdown编辑器,文档如下:https://yjk.im.sb/sn-markdown/
使用感受
感觉使用起来很清爽,数据备份也很容易,备份出来的数据是我想要的样子,这样以后即使这个软件不可用了我还可以迁移到其他的服务中,也遇到了一些问题:
- 断网情况下可能同步的不是特别及时,所以如果断网情况下编辑内容话尽量在客户端中进行,它支持各个终端的客户端,我一般是习惯网页型的
- 如果不放心它们的官方网页,也可以进行自建,文档如下:https://github.com/standardnotes/web
还有更多的可以自己定义的地方可以发掘。。。
结语
我理想中的笔记本是随时拿来可用,我想记录一个东西的时候立刻能让我创建对应的文档并且进行记录,特别是一些零碎的内容,如果文档打开的过慢,或者操作很复杂,甚至能让我的灵感消失,所以我选用了这么一款部署起来比较折腾,但是使用起来却让我很喜欢的note app,
备份也是全量的很简单的text格式,如果有更好用的,欢迎给我推荐,如果想要联系我,也可以直接给我发邮件:songbo2021@outlook.com。