自我托管的黑曜石note同步(免费)
在搜索新的Note采用应用程序时,可能会很容易被淹没。那里有无数的选项,它们似乎都有类似的功能。笔记社区中的一些大型参与者包括:
-Joplin -Evernote -Standard Notes -Logseq -Onenote
我个人最终选择了一个名为Obsidian的应用。到目前为止,这很棒。我认为它具有不可谈判的所有功能 - 图形视图,音符链接,跨平台和离线同步。黑曜石的一个主要缺陷是,要使用同步功能,您必须每月支付8美元才能使用其服务。那很好,但是我找到了一种免费的方法,这也支持E2E加密。让我告诉你我是怎么做到的。
##设置AWS帐户(免费层)
为了实际“免费”,我们将使用一个免费的AWS层帐户。您也可以使用其他云提供商,例如Oracle Azure,但AWS是我的选择。
创建帐户后,转到页面顶部的搜索栏并搜索EC2,然后单击它。
接下来,在左侧选择实例,然后单击右上角的大橙色启动实例按钮。将所有设置保留为默认设置,然后(如果还没有一个设置),请创建一个SSH Keypair。这将下载以.pem
结尾的文件。保持安全性,不要分享。这就是您从现在开始访问服务器的方式。
接下来,在网络设置下,请确保您同时按Allow HTTP traffic from internet
和Allow HTTPS traffic from internet
。否则,您的服务器将无法到达。
要配置的最后一个参数是存储。 AWS Free Tier允许使用20GB的存储空间,因此我建议将您的存储空间设置为最大(20GB)。完成创建并提交您的配置,您将被重定向到EC2仪表板。您现在应该查看您的新EC2实例:!_ img2_
单击实例ID并复制下面突出显示的公共IP:
这是我们将用于连接的IP。现在打开一个终端并导航到您下载.pem
文件的位置。使用chmod 400 <file>.pem
更改文件权限,然后使用ssh -i <file>.pem ec2-user@<ip>
连接到您的实例,其中<ip>
是您在最后一步中复制的公共IP。
#设置VM
现在我们可以访问机器,我们需要安装一些依赖项:
yum install git -y && amazon-linux-extras install docker
然后,启用Docker作为服务:
systemctl start docker && systemctl enable docker
接下来,clone this repo容纳将设置反向代理和couchdb容器的docker-compose文件:
git clone https://github.com/vrtmrz/self-hosted-livesync-server.git
进入该目录并编辑docker-ccompose.yml
。将caddy_handle_path_1
从/e=_/*
更改为/randomword/*
然后进入conf/local.ini
并以同样的方式更改authentication_redirect:
,使用您选择的第一个更改的相同单词。
返回到项目root dir并创建一个.env
文件,然后创建一些环境变量:!
#处理DNS请求
现在构建了图像,我们需要给它一个不错的域名。本教程假设您已经拥有一个域。我使用CloudFlare来管理我的DNS,但这将与您使用的任何DNS提供商一起使用。如果不确定,请与您购买该域的注册商联系。您将要在.env
文件中写的相同子域中添加A记录,并且您希望它从前一个步骤指向您的EC2实例IP。
如果使用CloudFlare,请确保取消选择代理选项
#建造和配置
一切都是现在建造的。再次使用SSH连接到您的EC2实例,然后输入我们以前正在使用的项目根目录。开始服务:
docker-compose -f docker-compose.yml start
您的服务现在已经上了,唯一要做的就是去您的couchdb实例。在浏览器中,导航到hxxps:// domain/tomain/tandomword/_utils,其中<randomword>
是您选择的单词代替e=_
和<domain>
_与.env
文件中指定的单词相同。使用.env
文件中的凭据登录,您应该使用看起来像这样的屏幕:
在屏幕的顶部,选择Create Database
并将其命名。选择一个非分区的DB。
#与黑曜石一起使用
现在一切都设置了。您只需要将黑曜石指向它即可。在黑曜石中,下载Self-Hosted LiveSync
社区插件:设置>社区插件>浏览
安装并启用它,然后在设置页面上,您应该在底部的左侧看到一个额外的选项卡。去那里:
按下卫星表情符号,并用您的信息填写字段。对于Uri,您需要放入https://<yourdomain>.com/<randomword>
注意,末尾没有斜线。对于用户名和密码,请放置您在.env
文件中写的内容。 数据库名称是您在CouchDB实例上创建的数据库。
对于E2E加密,选择End to End Encryption
滑块并创建一个密码。这将创建一个主密码,您可以使用该密码来加密笔记。应用您的设置,然后按面板底部附近的大红色发送按钮。
E2E很重要,因为如果某人设法进入您的DB实例,他们会在ClearText中找到您的所有笔记。启用此加密可以在离开计算机之前对您的笔记进行加密,以使DB实例永远不会看到您的笔记,只有扰乱的垃圾:
接下来,按交换表情符号并选择Livesnc(或您喜欢的任何同步时机)。
_ using livessync会给您这个功能 - 不是超级有用,而是非常酷。_
# 结论
现在,在您希望同步的任何设备上,您只需重复最后一节即可。如果您有兴趣,我将基本流程同步时的基本流量如何进行。另外,值得一提的是,AWS Free Tier每月仅限750个计算小时(我相信),因此这可能是您定期同步而不是Livessync的原因。