前言:为了实现 Obsidian 笔记在多设备间无缝、实时且绝对私密的同步,本文记录了基于 NAS 自建 CouchDB 数据库,配合
Self-hosted LiveSync插件实现端到端加密(E2EE)同步的全过程及排坑指南。
板块一:NAS Docker 部署 CouchDB 基础服务
1.1 目录准备与 Docker Compose 配置
在 NAS 宿主机(或 Linux 服务器)上创建保存配置与数据的目录结构:
Bash
# 创建 CouchDB 主目录及配置、数据持久化子目录
mkdir -p /volume1/docker/couchdb/data
mkdir -p /volume1/docker/couchdb/etc
# 进入工作目录
cd /volume1/docker/couchdb
# 创建 docker-compose.yml 文件
touch docker-compose.yml
编辑 docker-compose.yml 文件,写入以下完整配置:
YAML
version: '3.8'
services:
couchdb:
image: couchdb:3.3.3
container_name: couchdb
restart: always
ports:
- "5984:5984" # CouchDB 默认 HTTP 访问端口
environment:
- COUCHDB_USER=admin # 设置超级管理员账号
- COUCHDB_PASSWORD=YourStrongPassword # 设置超级管理员密码(请替换为复杂密码)
- ERL_FLAGS=-eulisp true # 优化 Erlang 运行时选项
volumes:
- ./data:/opt/couchdb/data # 数据库数据持久化路径
- ./etc:/opt/couchdb/etc/local.d # 配置文件持久化路径,确保容器重构后配置不丢失
networks:
- couchdb-net
networks:
couchdb-net:
driver: bridge
1.2 服务启动与 Web 控制台初始化
在终端运行以下命令启动容器:
Bash
# 后台启动 CouchDB 容器
docker-compose up -d
# 查看容器运行状态
docker-compose ps
# 查看实时日志(出现 "CouchDB has started. Time to relax." 即成功)
docker-compose logs -f couchdb
初始化数据库步骤:
访问 Fauxton 后台:在浏览器输入
http://<你的NAS_IP>:5984/_utils。管理员登录:输入在
docker-compose.yml中设置的管理员账户admin及密码。创建数据库:
点击左侧导航栏的 Databases 按钮。
点击右上角绿色的 Create Database。
在弹出的对话框中,Name 输入
obsidian。Type 保持默认选中的
Non-partitioned。点击 Create 按钮完成创建。
板块二:Obsidian 插件连接与 CouchDB 报错排坑
2.1 填写 CouchDB 连接参数
在 Obsidian 中打开 设置 (Settings) -> 社区插件 (Community plugins) -> 搜索并安装 Self-hosted LiveSync 插件并启用。
进入 Self-hosted LiveSync 设置界面,滚动至 CouchDB Configuration 区块并填写:
URL:
http://<你的NAS_IP>:5984(例如:[http://192.168.31.16:5984](http://192.168.31.16:5984))User:
adminPassword:
YourStrongPasswordDatabase name:
obsidian
移动端提示:iOS/Android 默认禁止网页应用请求非 HTTPS 地址。若在移动端配置,需在此界面勾选 Use Internal API,利用 Obsidian 内部 Fetch API 绕过平台的 HTTP-only 校验。
2.2 服务器环境检测与一键修复(关键排坑)
填完信息后,不要点击保存,先点击表单底部的 Check server requirements 进行服务器环境检测。此时界面会弹出一连串红字报错,原因与解决代码如下:
报错原理及配置解析:
CORS 跨域被拦截:Obsidian 作为客户端发起跨域 HTTP 请求时,默认 CouchDB 未允许
origins与credentials。请求/文档容量限制过小:CouchDB 默认单次请求上限极低(约 8MB),稍大的 Markdown 文档或嵌入图片上传时会导致 HTTP 413 超限报错。
🛠️ 详细修复流程:
一键自动修复:按顺序点击报错信息右侧所有的紫色
Fix按钮。插件会自动向 CouchDB 发送 API 请求,在其配置文件/opt/couchdb/etc/local.d/local.ini中自动写入以下参数:Ini, TOML
[chttpd] enable_cors = true max_http_request_size = 4294967296 ; 将单次请求上限提升至 4GB require_valid_user = true [couchdb] max_document_size = 4294967296 ; 将单个文档上限提升至 4GB [cors] origins = * ; 允许所有源跨域访问 credentials = true ; 允许带身份凭证的请求 headers = accept, authorization, content-type, origin, referer, x-csrf-token methods = GET, PUT, POST, HEAD, DELETE重新检测:点完所有 Fix 按钮后,再次点击底部的
Check server requirements,确认所有红字均变为绿色的OK或Pass。保存配置:点击最底部的
Test connection and save保存当前连接。
板块三:端到端加密(E2EE)与多端同步绑定
3.1 配置加密密码并启动同步
为了防止 NAS 上的数据明文泄露,必须开启端到端加密:
设置密码:进入插件设置中的 E2EE Configuration 页面。在 Passphrase 输入框中输入一段强加密口令(务必牢记)。
应用加密配置:点击右侧红色的
Configure按钮。验证激活状态:检查下方
Connection settings,状态显示为obsidian (Active)代表数据库建立加密通信成功。启动实时同步:
点击设置界面顶部最左侧的魔法棒图标(
💬)。找到 启用 LiveSync 选项,点击
启用。在弹出的同步模式选择中,建议选择 LiveSync (实时同步) 模式。
3.2 手机端 / 第二台设备一键绑定(Setup URI 法)
无需在手机上重新繁琐配置,直接利用字符串一键导入:
电脑端导出 URI:在电脑端 LiveSync 插件设置最上方,点击
Copy settings as a new Setup URI。系统会将包含服务器地址、数据库名的参数打包成一串加密的obsidian-livesync://...文本,并复制到剪贴板。手机端准备:
打开手机端 Obsidian,新建一个空仓库(Vault)。
安装并启用 Self-hosted LiveSync 插件。
粘贴导入:
打开手机端 LiveSync 插件设置,选择
Enter Setup URI。将复制的加密字符串粘贴进去,点击确认。
弹出的密码框中输入你在 3.1 步骤设置的 Passphrase 口令。
插件会自动解析配置并连通 NAS,稍等片刻全库笔记及目录结构即可自动同步完成。
板块四:新手入门常见疑难解答
4.1 欢迎文档中的“导入器插件(Importer)”是什么?
导入器(Importer)是 Obsidian 官方推出的一款迁移搬家插件。
作用:将其他笔记软件的数据一键转换为 Obsidian 原生的
.md格式文件。支持来源:Notion、Evernote(印象笔记)、OneNote、Apple Notes(苹果备忘录)、Bear、HTML/Markdown 压缩包等。
处理建议:如果你的笔记直接在 Obsidian 中新建,不需要从其他平台搬家,完全不需要安装此插件,直接把默认生成的“欢迎文档”删除即可。
4.2 本地笔记保存路径怎么修改?
场景 A:修改单个笔记或文件夹路径
直接在 Obsidian 左侧的文件列表 (File Explorer) 中使用鼠标拖拽文件/文件夹到目标位置。
为什么不需要手动改链接:Obsidian 内置了自动重构功能,拖拽后系统会自动更新所有引用该文件的双向链接(如
[[原文件名]]),保证全局链接不断裂。
场景 B:将整个仓库 (Vault) 整体移动到其他盘符/目录
彻底关闭 Obsidian 软件。
使用文件资源管理器(或 Finder),直接对整个仓库文件夹执行剪切与粘贴:
旧路径:
C:\Users\YourName\Documents\MyNotes新路径:
D:\ObsidianVaults\MyNotes
重新打开 Obsidian,在启动界面点击 打开本地文件夹 (Open folder as vault),选中新的路径
D:\ObsidianVaults\MyNotes即可。配置会丢失吗?:不会。所有插件、样式、快捷键及 CouchDB 同步配置均完整存储在仓库目录下的隐藏文件夹
.obsidian中(即D:\ObsidianVaults\MyNotes\.obsidian),跟随文件夹一起移动即可保留所有设置。
板块五:进阶协同 — 构建私密 AI 第二大脑
同步搭建完成后,可以通过本地 AI 工具与纯文本 Markdown 库连接,构建私密知识库:
5.1 核心 AI 插件配置与功能
Copilot for Obsidian:
功能:侧边栏对话助手,支持基于本地知识库全库进行 RAG(检索增强生成)问答、智能总结、自动提取标签。
配置:在 Copilot 设置中将 API Provider 切换为
Ollama或Custom OpenAI Compatible。
Smart Connections:
功能:基于向量 Embeddings 技术,在笔记右侧实时显示与当前笔记语义最相关的历史笔记,挖掘隐性逻辑联系。
5.2 本地 Ollama 部署与零泄漏交互
若对隐私要求极高,可在本地或 NAS Docker 中运行 Ollama:
Bash
# Docker 运行 Ollama 容器
docker run -d \
--name ollama \
-v ollama:/root/.ollama \
-p 11434:11434 \
--gpus=all \
ollama/ollama
# 拉取并运行开源大模型(以 Qwen 2.5 为例)
docker exec -it ollama ollama run qwen2.5:7b
在 Obsidian AI 插件中的连接参数:
Base URL / Endpoint:
http://localhost:11434/v1(若 Ollama 部署在 NAS,则填写http://<NAS_IP>:11434/v1)Model Name:
qwen2.5:7b或deepseek-r1:8bAPI Key:随意填写(本地服务不需要验证)
通过此方案,知识库数据全部保留在本地与私有 CouchDB 中,AI 计算全程在本地完成,实现 100% 离线、零隐私泄露风险的智能第二大脑。