自托管黑曜石笔记同步(免费)

· 9min · Juicecat

在寻找新的笔记应用程序时,人们可能很容易不知所措。有无数的选择,它们似乎都有相似的功能。笔记社区中的一些重要参与者包括:

我个人最终选择了一款名为 Obsidian 的应用。到目前为止,一切都很棒。它具有我认为不可协商的所有功能——图形视图、注释间链接、跨平台和离线同步。 Obsidian 的一个主要缺陷是,为了使用同步功能,您必须每月支付 8 美元才能使用他们的服务。这很好,但我找到了一种免费的方法,它还支持端到端加密。让我向您展示我是如何做到的。

设置 AWS 账户(免费套餐)

为了真正做到“免费”,我们将使用 AWS 免费套餐帐户。您还可以使用其他云提供商,例如 oracle azure,但 AWS 是我的选择。

创建帐户后,转到页面顶部的搜索栏并搜索EC2,然后点击它。index.md-1.png

接下来,选择左侧的实例,然后点击右上角的橙色大按钮启动实例。将所有设置保留为默认设置,然后(如果您还没有)创建 SSH 密钥对。这将下载一个以 .pem 结尾的文件。请妥善保管,不要分享。从现在开始,这就是您访问服务器的方式。

接下来,在网络设置下,确保同时按下Allow HTTP traffic from internetAllow HTTPS traffic from internet。否则,您的服务器将无法访问。index.md-2.png

最后一个要配置的参数是存储。 AWS 免费套餐允许 20GB 的存储空间,因此我建议将存储空间设置为最大 (20GB)。完成创建并提交配置,您将被重定向到 ec2 仪表板。您现在应该看到新的 ec2 实例:!index.md-3.png

单击实例 ID 并复制下面突出显示的公共 IP:index.md-4.png

这是我们用来连接的 IP。现在打开终端并导航到您下载.pem文件的位置。使用 chmod 400 <file>.pem 更改文件权限,然后使用 ssh -i <file>.pem ec2-user@<ip> 连接到您的实例,其中 <ip> 是您在上一步中复制的公共 IP。

设置虚拟机

现在我们可以访问我们的机器了,我们需要安装一些依赖项:

yum install git -y && amazon-linux-extras install docker

然后,启用 docker 作为服务:

systemctl start docker && systemctl enable docker

接下来,克隆this repo,它包含一个 docker-compose 文件,该文件将设置反向代理和 CouchDB 容器:

git clone https://github.com/vrtmrz/self-hosted-livesync-server.git

进入该目录并编辑 docker-ccompose.yml.将 caddy_handle_path_1/e=_/* 更改为类似 /randomword/* index.md-5.png

然后进入conf/local.ini并以同样的方式更改authentication_redirect:,使用您为第一次更改选择的相同单词。

返回项目根目录并创建一个.env文件,并创建一些环境变量:! index.md-6.png

处理 DNS 请求

现在镜像已经构建完成,我们需要给它一个好听的域名。本教程假设您已经拥有一个域。我使用 CloudFlare 来管理我的 DNS,但这适用于您使用的任何 DNS 提供商。如果您不确定,请咨询您购买域名的注册商。您需要在 .env 文件中写入的同一子域中添加一条 A 记录,并且希望它指向前面步骤中的 EC2 实例公共 IP。index.md-7.png

如果使用 CloudFlare,请确保取消选择代理选项

构建和配置

现在一切都建好了。使用 SSH 再次连接到您的 EC2 实例,并进入我们之前使用的项目根目录。使用以下命令启动服务:

docker-compose -f docker-compose.yml start

您的服务现已启动,唯一要做的就是转到您的 CouchDB 实例。在浏览器中,导航到 hxxps://domain/randomword/_utils,其中 <randomword> 是您选择代替 e=_ 的单词,<domain> 与您在 .env 文件中指定的单词相同。使用.env文件中的凭据登录,您应该会看到如下所示的屏幕:index.md-8.png

在屏幕顶部,选择Create Database并将其命名为您想要的名称。选择未分区的数据库。

与黑曜石一起使用

现在一切都已准备就绪。你只需要把你的黑曜石指向它即可。在黑曜石中,下载Self-Hosted LiveSync社区插件:设置>社区插件>浏览index.md-9.png

安装并启用它,然后在您的设置页面上,您应该在底部左侧看到一个额外的选项卡。去那里:index.md-10.png

按卫星表情符号并用您的信息填写字段。对于 统一资源标识符,您需要输入 https://<yourdomain>.com/<randomword> 请注意,末尾没有斜线。对于用户名密码,请将您编写的内容放入.env 文件中。 数据库名称 是您在 CouchDB 实例上创建的数据库。

对于端到端加密,请选择End to End Encryption滑块并创建密码。这将创建一个可用于加密笔记的主密码。应用您的设置并按面板底部附近的红色大发送按钮。

E2E 很重要,因为如果有人设法进入您的数据库实例,他们会发现您的所有明文注释。启用此加密会在您离开计算机之前对您的笔记进行加密,以便数据库实例永远不会看到您的笔记,而只会看到混乱的垃圾:index.md-11.png

接下来,按交换表情符号并选择 LiveSync(或您喜欢的任何同步时间)。index.md-12.png

使用 LiveSync 将为您提供此功能 - 不是非常有用,但非常酷。

结论

现在,在任何您想要同步的设备上,您只需重复最后一部分即可。如果您有兴趣,我在下面提供了同步时基本流程的图像。另外,值得一提的是,AWS 免费套餐每月仅限 750 个计算小时(我相信),因此这可能是您定期同步而不是 LiveSync 的原因。 index.md-13.png


Tags