Obsidian + 自建 CouchDB 实时同步与 E2EE 加密完全指南

作者:JAY 发布时间: 2026-08-15 阅读量:3 评论数:0

前言:为了实现 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

初始化数据库步骤:

  1. 访问 Fauxton 后台:在浏览器输入 http://<你的NAS_IP>:5984/_utils。

  2. 管理员登录:输入在 docker-compose.yml 中设置的管理员账户 admin 及密码。

  3. 创建数据库:

    • 点击左侧导航栏的 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:admin

  • Password:YourStrongPassword

  • Database name:obsidian

移动端提示:iOS/Android 默认禁止网页应用请求非 HTTPS 地址。若在移动端配置,需在此界面勾选 Use Internal API,利用 Obsidian 内部 Fetch API 绕过平台的 HTTP-only 校验。

2.2 服务器环境检测与一键修复(关键排坑)

填完信息后,不要点击保存,先点击表单底部的 Check server requirements 进行服务器环境检测。此时界面会弹出一连串红字报错,原因与解决代码如下:

报错原理及配置解析:

  1. CORS 跨域被拦截:Obsidian 作为客户端发起跨域 HTTP 请求时,默认 CouchDB 未允许 origins 与 credentials。

  2. 请求/文档容量限制过小:CouchDB 默认单次请求上限极低(约 8MB),稍大的 Markdown 文档或嵌入图片上传时会导致 HTTP 413 超限报错。

🛠️ 详细修复流程:

  1. 一键自动修复:按顺序点击报错信息右侧所有的紫色 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
    
  2. 重新检测:点完所有 Fix 按钮后,再次点击底部的 Check server requirements,确认所有红字均变为绿色的 OK 或 Pass。

  3. 保存配置:点击最底部的 Test connection and save 保存当前连接。

板块三:端到端加密(E2EE)与多端同步绑定

3.1 配置加密密码并启动同步

为了防止 NAS 上的数据明文泄露,必须开启端到端加密:

  1. 设置密码:进入插件设置中的 E2EE Configuration 页面。在 Passphrase 输入框中输入一段强加密口令(务必牢记)。

  2. 应用加密配置:点击右侧红色的 Configure 按钮。

  3. 验证激活状态:检查下方 Connection settings,状态显示为 obsidian (Active) 代表数据库建立加密通信成功。

  4. 启动实时同步:

    • 点击设置界面顶部最左侧的魔法棒图标(💬)。

    • 找到 启用 LiveSync 选项,点击 启用。

    • 在弹出的同步模式选择中,建议选择 LiveSync (实时同步) 模式。

3.2 手机端 / 第二台设备一键绑定(Setup URI 法)

无需在手机上重新繁琐配置,直接利用字符串一键导入:

  1. 电脑端导出 URI:在电脑端 LiveSync 插件设置最上方,点击 Copy settings as a new Setup URI。系统会将包含服务器地址、数据库名的参数打包成一串加密的 obsidian-livesync://... 文本,并复制到剪贴板。

  2. 手机端准备:

    • 打开手机端 Obsidian,新建一个空仓库(Vault)。

    • 安装并启用 Self-hosted LiveSync 插件。

  3. 粘贴导入:

    • 打开手机端 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) 整体移动到其他盘符/目录

  1. 彻底关闭 Obsidian 软件。

  2. 使用文件资源管理器(或 Finder),直接对整个仓库文件夹执行剪切与粘贴:

    • 旧路径:C:\Users\YourName\Documents\MyNotes

    • 新路径:D:\ObsidianVaults\MyNotes

  3. 重新打开 Obsidian,在启动界面点击 打开本地文件夹 (Open folder as vault),选中新的路径 D:\ObsidianVaults\MyNotes 即可。

  4. 配置会丢失吗?:不会。所有插件、样式、快捷键及 CouchDB 同步配置均完整存储在仓库目录下的隐藏文件夹 .obsidian 中(即 D:\ObsidianVaults\MyNotes\.obsidian),跟随文件夹一起移动即可保留所有设置。

板块五:进阶协同 — 构建私密 AI 第二大脑

同步搭建完成后,可以通过本地 AI 工具与纯文本 Markdown 库连接,构建私密知识库:

5.1 核心 AI 插件配置与功能

  1. Copilot for Obsidian:

    • 功能:侧边栏对话助手,支持基于本地知识库全库进行 RAG(检索增强生成)问答、智能总结、自动提取标签。

    • 配置:在 Copilot 设置中将 API Provider 切换为 Ollama 或 Custom OpenAI Compatible。

  2. 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:8b

  • API Key:随意填写(本地服务不需要验证)

通过此方案,知识库数据全部保留在本地与私有 CouchDB 中,AI 计算全程在本地完成,实现 100% 离线、零隐私泄露风险的智能第二大脑。

评论