• 首页
  • 归档
  • 关于
  • 搜索
  • 夜间模式
    ©2026  望时代 Theme by OneBlog

    望时代

    搜索
    标签
    # 教程 # Linux # 脚本 # AI # 影音 # 游戏 # 随笔 # 科技 # 认知
  • 首页>
  • >
  • 正文
  • Docker 部署 Obsidian LiveSync 实时同步服务指南

    2026年06月26日 6 阅读 0 评论 7709 字

    Docker 部署 Obsidian LiveSync 实时同步服务指南

    __2026年1月5日 __3条评论 __459次阅读 __0人点赞 __Tao_Qi

    使用 Docker 自托管部署 Obsidian LiveSync 服务,获得端到端加密的多设备实时同步服务支持的详细指南。
    原文链接:https://blog.dejavu.moe/posts/selfhosting-obsidian-livesync-service-guide/

    序

    Obsidian LiveSync 是一款面向 Obsidian 用户的同步解决方案,无需依靠官方付费同步服务就能获得不错的实时同步体验,支持自动冲突处理、端到端加密,使我们完全掌控自己的数据和基础设施。

    它支持使用自托管数据库 (Apache CouchDB) 、对象存储 (S3、B2、R2 等) 或 WebRTC P2P(实验性)来同步数据。对于对象存储和 P2P 同步,只需在插件里配置即可,无需服务端支持。

    Apache CouchDB 是一个使用 JSON 作为存储格式,JavaScript 作为查询语言的 NoSQL 数据库,很适合作为 Obsidian 的存储。下面的自托管部署 LiveSync 服务,本质上就是部署一个单节点运行的 CouchDB 数据库。

    部署 LiveSync 服务

    先决条件

    • 已安装 Docker CE
    • 已安装 Docker Compose
    • Nginx 或其他用于反向代理服务器
    • SSL/TLS 证书提供 HTTPS 访问(必需的)

    开始部署

    准备一个文件夹,用于 LiveSync 容器数据持久化
    [code]

    mkdir obsidian-livesync && cd $
    # 准备 Docker 绑定卷
    mkdir -p {data,local.d}
    sudo chown -R 1000:1000 {data,local.d}
    

    [/code]

    新建一个 compose.yml 模板
    [code]

    vim compose.yml
    

    [/code]

    写入内容
    [code]

    services:
      couchdb:
        image: couchdb:3.5
        container_name: obsidian-livesync
        user: 1000:1000
        restart: unless-stopped
        environment:
          - TZ=Asia/Shanghai
          - COUCHDB_USER=           # 设置用户名
          - COUCHDB_PASSWORD=  # 设置一个强密码
        volumes:
          - ./data:/opt/couchdb/data
          - ./local.d:/opt/couchdb/etc/local.d
        ports:
         - '127.0.0.1:5984:5984'
    

    [/code]

    启动服务
    [code]

    sudo docker compose up -d
    

    [/code]

    初始化数据库

    使用官方脚本对数据库进行初始化,注意替换用户名和密码
    [code]

    curl -s https://raw.githubusercontent.com/vrtmrz/obsidian-livesync/main/utils/couchdb/couchdb-init.sh | hostname=http://127.0.0.1:5984 username= password= bash
    

    [/code]

    建议初始化后重启下容器
    [code]

    sudo docker compose down && sudo docker compose up -d
    

    [/code]

    OK,现在 CouchDB 数据库已经准备就绪。

    反向代理

    我使用 Nginx 设置反向代理访问,下面是一个示例配置文件:
    [code]

    server {
        listen 80;
        listen [::]:80;
        server_name ob-livesync.your.domain;
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl;
        listen [::]:443 ssl;
        http2 on;
        server_name ob-livesync.your.domain;
    
        ssl_certificate /path/to/cert/ob-livesync.your.domain.pem;
        ssl_certificate_key /path/to/cert/ob-livesync.your.domain.key;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ecdh_curve X25519:P-256:P-384;
        ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-CHACHA20-POLY1305:ECDHE AES128:RSA AES128:ECDHE AES256:RSA AES256';
        ssl_prefer_server_ciphers off;
    
        ssl_session_timeout 1d;
        ssl_session_cache shared:MozSSL:10m;
    
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    
        access_log /var/log/nginx/ob-livesync.your.domain.access.log;
        error_log /var/log/nginx/ob-livesync.your.domain.error.log;
    
        add_header X-Frame-Options "SAMEORIGIN" always;
        add_header X-XSS-Protection "1; mode=block" always;
        add_header X-Content-Type-Options "nosniff" always;
        add_header Referrer-Policy "no-referrer-when-downgrade" always;
        add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
    
        client_max_body_size 4G;
    
        proxy_read_timeout 3600s;
        proxy_send_timeout 3600s;
    
        location / {
            proxy_pass http://127.0.0.1:5984;
            proxy_http_version 1.1;
    
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-For $realip_remote_addr;
            proxy_set_header X-Forwarded-Proto $scheme;
    
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
    
            proxy_redirect off;
        }
    }
    

    [/code]

    检查 Nginx 配置
    [code]

    sudo nginx -t
    

    [/code]

    没问题的话,重新加载配置
    [code]

    sudo nginx -s reload
    

    [/code]

    除了 Nginx,也可以使用一些更加方便的反向代理方案,通常情况下他们提供 HTTPS 访问也更加方便:

    • 使用 Traefik 的 Compose 模板
    • 使用 Caddy 的反向代理配置
    • 使用 Cloudflare Tunnel 直接访问,只需在 127.0.0.1:5984 监听 HTTP/TCP 服务即可

    登录仪表盘

    访问 https://ob-livesync.your.domain/_utils/ 可以查看 Apache CouchDB 仪表盘,首先检查下安装设置是否正确

    新建一个数据库,比如 obsidian,这不是必需的步骤,插件本身可以执行该操作

    服务端配置就结束了,下面我们开始配置 Obsidian 客户端插件。

    Obsidian 配置

    安装插件

    安装并启用 Self-hosted LiveSync 插件

    配置插件

    对于首台设备,选择设置新的同步服务

    手动输入服务器信息

    可选端到端加密和文件信息混淆,这在保护数据隐私很有效,同时也为以后把自己「锁在外面」埋下了隐患,请妥善保存 E2E 加密密钥。

    选择 CouchDB 数据库

    按照实际信息填写

    测试正确,继续下一步

    目前远程服务器仍然是一个空的数据库,直接用本地覆盖服务器

    实时同步

    这是 LiveSync 的核心功能了,启用实时同步方案

    其他设备的 Obsidian 安装好同步插件,复制 URI 或使用手机扫描二维码,直接同步设置。

    注意:二维码是非加密的,请注意扫码软件隐私安全,建议使用系统扫码器。

    同步插件

    打开「隐藏文件」同步,设置好排除路径,可以同步插件、主题和设置。

    结语

    Obsidian LiveSync 提供了非常棒的同步方案,但插件设置稍显复杂,建议仔细阅读项目说明文档,确保充分理解其作用后再配置。

    根据 GitHub 和 Reddit 上的用户反馈,因误操作或其他因素,可能导致服务器数据库发生不可逆的损毁。因此,切勿将所有数据依赖单一方案;对重要数据,建议配置多重或手动备份机制,这样才最保险。

    本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可

    __点赞 __分享

    __ __ __ __ __ __ 打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

    __No Tag

    最后编辑:2026年1月5日

    < 上一篇

    下一篇 >

    1. duyaoo说道:

    2026年1月5日 下午7:37

    支持,但是这东西有时候也抽风。所以我选择upnote 了

    回复

    1. 江鸟说道:

    2026年1月5日 下午7:37

    感谢分享

    回复

    1. AlterEgo说道:

    2026年1月5日 下午7:38

    不错,支持优秀mjj

    回复

    发表回复 取消回复

    电子邮件地址不会被公开。必填项已用 * 标注

    __

    *

    __

    *

    __

    *

    __

    本文著作权归作者 [ doudoudoubao ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    教程Linux
    取消回复

    发表留言
    回复

    Copyright©2026  All Rights Reserved.  Load:0.010 s
    Theme by OneBlog V3.7.1
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。