Obsidian 使用 Railway 的免费同步方案或自建部署
前言
我在去年写过一篇《Obsidian 免费的实时同步服务》的文章,帮助过很多朋友实现快速的Obsidian同步方案😎,但遗憾的是提供服务的fly.io平台ipv4已经开始每月两刀的价格开始收费🤧。这我是怎么知道的?因为我想打开fly.io看看程序运行的怎么样了,但发现右边好像有什么奇怪的金额显示🤬?
什么?1.6刀了😨?!在看文档够发现23年12月刚开始收款,但我邮箱内好像没有收到提醒邮件就开始收费了耶。有这个钱还不如再买点服务器嘞!赶紧将收费的ipv4地址释放掉。
国内ipv6网络还不够成熟,有很大一部分地区并没有提供ipv6地址,所以在停用ipv4后无法连接到fly.io上部署的CouchDB,那体验可太糟了!那有没有什么其他更好的方式呢🤔?我开始尝试其他的解决方案。
Railway
写都写了,还是发布吧🥺。
注意:本质上是建立一个可以连接的CouchDB数据库,有服务器的朋友可以直接搭建一个即可。docker-compose.yaml
文件可以参考下面的自托管章节。需要有一张外币卡用来激活。外币卡很好申请,推荐中国银行办理🤗。
Railway提供的爱好者计划有每月5美元的免费额度,所以,只要我们不超额使用,那么就是免费的啦🎉!
爱好者计划的使用费用大致为:
内存 | 6.39 minutely GB | $0.000231 / GB / Minute |
CPU | 3.38 minutely vCPU | $0.000463 / vCPU / Minute |
出口流量 | 0.01 total GB | $0.10 / GB |
硬盘 | 8.98 minutely GB | $0.00000579 / GB / Minute |
配置可达每个容器最大8GB内存,最大8个vCPU与共享磁盘 100GB,我们用来同步Obsidian足够100年写不完拉🤩!不仅如此,还提供SSL域并且支持自定义域名。
不过随着时间的使用,硬盘使用会变得越来越大,所以我们只用来编写md文件,不要传入图片就好😋。可以在网上找一些免费的图床,在编写Markdown文章时引入使用。
部署
打开 Railway注册,下面的链接是我的推荐链接,可以让我获得一些免费的积分。
请放心,不会收取你的任何费用。
在绑定外币卡后激活爱好者计划。
然后打开仪表板,点击 +New Project
在搜索框搜索CouchDB选择并确认,其他选项保持默认即可。
这里的 Repository details 下好像需要一个Github账户?因为我是通过Github的SSO登录的所以不太清楚其他人是什么样子😖。
Environment variables 下已经填写好3个环境变量,不需要修改。分别是 COUCHDB_USER
:你的用户名,COUCHDB_PASSWORD
:部署时才随机生成的密码,PORT
:端口号,(都不需要修改!!)
点击部署后坐和放宽。等待页面出现绿色的 Deploy Successded代表部署完成。
点击我们中间的项目块,Setting-Networking中点击+ Custom Domain可以修改自定义域名,如果没有域名也可以使用Railway默认提供给你的域名。
Variables中有你的用户名和密码,可以打开复制保存(重要)🧨。
自托管部署
安装Docker与Docker-compose的方式自不必多说。
使用下面的Docker-compose.yaml
文件:
version: '3'
services:
couchserver:
image: couchdb
restart: always
ports:
- "5984:5984"
environment:
- COUCHDB_USER=admin #修改用户名
- COUCHDB_PASSWORD=123456 #修改密码
volumes:
- ./dbdata:/opt/couchdb/data
然后docker-compose up -d
启动后,在Nginx处配置反向代理即可。
网页配置
这一节和《Obsidian 免费的实时同步服务》大同小异。
打开CouchDB的网址你的域名/_utils/#/setup
输入你刚刚保存的账号与密码。
点击右上角的 Create Database,创建一个数据库,名字叫 obsidian
(或者其他也可以)。Database name 为数据库名字,Partitioned 请不要勾选,然后点 Create 创建。
配置Setup Apache CouchDB页:
自托管方式执行,如果使用Railway跳过这一步骤。
点击Setup
,打开此页面,第一行的 Specify your Admin credentials
为你在上面步骤中配置的用户信息。第二行的 Bind address the node will listen on
意思是监听的访问地址,设置为 0.0.0.0
为允许所有 ip 访问。第三行的 Port that the node will use
为你在Docker-compose.yaml文件中的ports
下写的第一个端口。如果和我设置的一样,那这里应该是 5984
😚。设置完成后会显示 Apache CouchDB is configured for production usage as a clustered node! Do you want to replicate data?
,代表配置成功。
启用CROS:
打开Configuration
选项卡中的CROS
标签,点击启用CROS就好啦。
Obsidian 设置
这一节同样也可以参考《Obsidian 免费的实时同步服务》的Obsidian 设置章节📝。
没有安装插件的朋友:关闭Obsidian的安全模式,然后插件市场搜索安装 Self-hosted LiveSync
。然后打开设置,找到Self-hosted LiveSync
插件的配置页。
有插件并且跟着我之前配置过fly.io的,打开插件的Sync Settings
页面,点击Synchronization Methods
下的Sync Mode
下拉框,选择为on events
关闭同步后在进行下面的操作。
打开 Remote Database configuration
选项卡,输入自己的数据库网址、用户名、密码与数据库名。
网址:Railway提供的,或是你自己自定义的域名。
用户名与密码:Railway部署应用的Variables中查询,上一小节让你保存的就是啦。
数据库名:obsidian或自己设置的名字。
点击下面的test
按钮测试,如果配置正确,右上角显示连接成功🎉!
如果有其他问题,可以参考《Obsidian 免费的实时同步服务》中的修复链接章节之后的内容。