本文是 Self-hosted LiveSync 系列 的服务端部署篇。完成这篇之后,继续阅读 Self-hosted LiveSync 插件配置与维护。
准备工作
- 一台有公网 IP 的 VPS(1G 内存起步,推荐 2G)
- 一个已解析到该 VPS 的域名(移动端同步必须 HTTPS,域名不可缺)
第一步:创建目录结构和配置文件
选一个你喜欢的目录,建好文件夹:
mkdir -p ~/livesync/conf
mkdir -p ~/livesync/data/couchdb
mkdir -p ~/livesync/data/caddy创建 CouchDB 配置文件:
nano ~/livesync/conf/local.ini写入以下内容:
[couchdb]
single_node=true
max_document_size = 50000000
[chttpd]
require_valid_user = true
max_http_request_size = 4294967296
[chttpd_auth]
require_valid_user = true
authentication_redirect = /e=_/_utils/session.html
[httpd]
WWW-Authenticate = Basic realm="couchdb"
enable_cors = true
[cors]
origins = app://obsidian.md,capacitor://localhost,http://localhost
credentials = true
headers = accept, authorization, content-type, origin, referer
methods = GET, PUT, POST, HEAD, DELETE
max_age = 3600几个关键点:
single_node=true:个人使用必须开启origins三个来源缺一不可,Obsidian 桌面端和移动端都依赖这里max_http_request_size调大,避免大文件同步中断
第二步:启动 CouchDB + Caddy
创建 docker-compose.yml:
nano ~/livesync/docker-compose.yml写入以下内容,替换三处占位符:
services:
caddy:
image: lucaslorentz/caddy-docker-proxy:ci-alpine
container_name: caddy
ports:
- 80:80
- 443:443
environment:
- CADDY_INGRESS_NETWORKS=livesync_default
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./data/caddy:/data
restart: always
couchdb:
image: couchdb:latest
container_name: couchdb-livesync
environment:
- COUCHDB_USER=你的用户名 # 替换这里
- COUCHDB_PASSWORD=你的强密码 # 替换这里
volumes:
- ./data/couchdb:/opt/couchdb/data
- ./conf/local.ini:/opt/couchdb/etc/local.d/local.ini
restart: unless-stopped
labels:
caddy: 你的域名 # 替换这里,例如 sync.example.com
caddy.handle_path: /*
caddy.handle_path.0_respond: "\"\" 403"
caddy.handle_path.0_header.-Server: ""
caddy.handle_path_1: /e=_/*
caddy.handle_path_1.0_reverse_proxy: "{{upstreams 5984}}"说明:
- CouchDB 挂载在
/e=_/子目录下,根路径返回 403,减少恶意扫描 - Caddy 会自动申请并续期 Let’s Encrypt 证书,无需手动操作
- ARM 架构 VPS(如 Oracle Cloud 免费套餐)将 Caddy 镜像替换为
lucaslorentz/caddy-docker-proxy:ci-alpine-arm32v6
启动服务:
cd ~/livesync
docker compose up -d已有 Nginx 或 Caddy 的用户:删除 compose 里的 caddy 服务块和 couchdb 的 labels,改为暴露端口:
ports:
- 5984:5984在已有的反向代理里将流量转发到 5984 端口即可。
第三步:验证服务
浏览器访问 https://你的域名/e=_/_utils/,看到 CouchDB 管理界面并提示输入用户名密码,说明服务和 HTTPS 均正常。
服务端部署完成,接下来前往 Self-hosted LiveSync 插件配置与维护 配置 Obsidian 插件。







💬 评论
评论区正在施法中...
信使正在穿越次元壁,即将抖达... *Alohomora!* 🔓