Obsidian 同步 - 配置 LiveSync 与自托管 CouchDB 服务器
本文介绍了如何使用 Docker 和自托管 CouchDB 服务器配置 Obsidian LiveSync 同步。步骤包括安装 Docker 和 CouchDB 服务端,配置环境变量和服务端口,以及通过 Self-hosted LiveSync 插件在 Obsidian 客户端进行设置。最终实现 Obsidian 笔记的实时同步。
0. 安装 CouchDB 的依赖
环境:
- 阿里云 ECS 2 核 2GiB, 40GiB SSD
- 系统: Alibaba Cloud Linux 3.2104 LTS 64 位
- 包管理工具: yum
0.1 安装 Docker
bash
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
1. 安装 CouchDB 服务端
使用利用下述工程的 docker-compose.yml
文件,启动 CouchDB 服务端。
1.1 获取源码
bash
git clone --depth=1 https://github.com/vrtmrz/self-hosted-livesync-server.git
1.2 修改服务配置
配置环境变量(创建 .env
文件)
ini
COUCHDB_SERVER=localhost:5984
COUCHDB_USER=admin
COUCHDB_PW=password
修改 docker-compose.yml
和 config/local.ini
文件中的 e=_
:
bash
# 替换 `docker-compose.yml` 中的 "e=_"
sed -i 's/e=_/your-secret-words/' docker-compose.yml
# 替换 `config/local.ini` 中的 "e=_"
sed -i 's/e=_/your-secret-words/' config/local.ini
CouchDB 将可通过该 URI 访问: https://server-hostname.com/your-secret-words
1.3 启动服务
bash
docker network create caddy
docker compose up -d
访问 http://server-hostname.com/your-secret-words
或 http://server-hostname.com:5984
,输入用户名和密码登录。
1.4 CouchDB 初始化配置
bash
# Parameters used to connect to the CouchDB server.
export hostname=localhost:5984
export username=admin
export password=password
curl -s https://raw.githubusercontent.com/vrtmrz/obsidian-livesync/main/utils/couchdb/couchdb-init.sh | bash
2. 暴露服务端口
通过服务器控制台,配置安全组规则,开放 5984 端口。
3. 配置客户端
3.1 生成 Setup URI
在服务端或者客户端执行以下命令,获取配置信息:
bash
# Prepare environment variables.
# export hostname=https://server-hostname.com/your-secret-words
export hostname=http://server-hostname.com:5984
export admin=admin
export password=password
export database=obsidiannotes
export passphrase=dfsapkdjaskdjasdas
deno run -A https://raw.githubusercontent.com/vrtmrz/obsidian-livesync/main/utils/flyio/generate_setupuri.ts
复制输出的 Setup URI: obsidian://setuplivesync?settings=...
3.2 通过 Self-hosted LiveSync 插件的 Setup Wizard 配置
打开 Obsidian 的 Self-hosted LiveSync 插件配置:
- 在 Setup Wizard 中点击
Use
,粘贴 Setup URI - 输入
welcome
- 选择
yes
&Set it up as ...
(如果是第一次同步,要用本地文件覆盖远端,则选择第二个选项) - 选择
Keep them disabled
- 重启应用 (app)