obsidian-livesync README

The project's README from github.com/vrtmrz/obsidian-livesync. As one markdown file: README.md.

Self-hosted LiveSync

Japanese docs - Chinese docs.

Self-hosted LiveSync is a community-developed synchronisation plug-in available on all Obsidian-compatible platforms. It leverages robust server solutions such as CouchDB or object storage systems (e.g., MinIO, S3, R2, etc.) to ensure reliable data synchronisation.

Additionally, it supports peer-to-peer synchronisation using WebRTC, enabling devices to exchange notes without a central data-storage server. A signalling relay is still required for peer discovery. See How peer-to-peer synchronisation works.

obsidian_live_sync_demo

[!IMPORTANT] This plug-in is not compatible with the official "Obsidian Sync" and cannot synchronise with it.

Features

This plug-in may be particularly useful for researchers, engineers, and developers who need to keep their notes fully self-hosted for security reasons. It is also suitable for anyone seeking the peace of mind that comes with knowing their notes remain entirely private.

[!IMPORTANT]

  • Before installing or upgrading this plug-in, please back up your vault.
  • Do not enable this plug-in alongside another synchronisation solution (including iCloud and Obsidian Sync).
  • For backups, we also provide a plug-in called Differential ZIP Backup.

How to Use

3-minute setup - CouchDB on fly.io

Recommended for beginners

LiveSync Setup onto Fly.io SpeedRun 2024 using Google Colab

  1. Set up CouchDB on fly.io
  2. Configure plug-in in Quick Setup

Setup workflows

Choose a synchronisation method, prepare its server where required, then follow the corresponding client setup:

  1. CouchDB
    1. Prepare the server:
    2. Configure the clients by following CouchDB Quick Setup.
  2. Object Storage
    1. Prepare the server. A maintained MinIO server installation guide is not currently available here, so set up an S3-compatible service or server of your choice.
    2. Configure the clients by following Object Storage Setup.
  3. Peer-to-Peer
    1. No central data-storage server is required. The project's public signalling relay requires no server provisioning; controlled deployments can provide another compatible relay.
    2. Configure the clients by following Peer-to-Peer Setup.

Each workflow establishes ordinary note synchronisation on the first device, generates a Setup URI for each additional device from that working device, and verifies synchronisation in both directions.

[!TIP] Fly.io is no longer free. Fortunately, we can still use IBM Cloudant despite some limitations. Refer to Set up IBM Cloudant. We can also use peer-to-peer synchronisation without a central data-storage server; a signalling relay is still used for peer discovery. Alternatively, cheap object storage like Cloudflare R2 can be used for free. However, most importantly, we can use a server that we trust. Therefore, please set up your own server. CouchDB can also be run on a Raspberry Pi (please be mindful of your server's security).

Third-party managed CouchDB hosting

[!NOTE] The following is a third-party hosting option proposed by Zenith Hosting. It is not an official Self-hosted LiveSync service, and it is neither endorsed nor recommended by this project.

If you would rather not set up and maintain a server yourself, Zenith Hosting offers a managed CouchDB server which this plug-in can be configured to connect to: Zenith Hosting. As with any hosted service, your data will reside on a server operated by a third party, so please consider whether that is acceptable for your vault before using it.

Information in the Status Bar

Synchronisation status is shown in the status bar with the following icons.

To prevent file and database corruption, please avoid closing Obsidian until all progress indicators have disappeared as much as possible (although the plug-in will attempt to resume if interrupted). This is especially important if you have deleted or renamed files.

Tips and Troubleshooting

Acknowledgements

The project has been in continual progress and harmony thanks to the following:

May those who have contributed be honoured and remembered for their kindness and generosity.

Development Guide

Please refer to the Development Guide for development setup, testing infrastructure, code conventions, and more.

License

Licensed under the MIT License.

obsidian-livesync (vrtmrz/obsidian-livesync)

Searching Database…

这是什么?Self-hosted LiveSync 是一款由社区开发的 Obsidian 插件,可以借助你自己的 CouchDB 或兼容 S3 的对象存储服务器,在多台设备之间同步笔记,也可以通过 WebRTC 在设备之间直接进行点对点同步。
它能替代 Obsidian 官方的 Sync 服务吗?不能。它是一款独立的 Obsidian 插件,通过你自己控制的服务器(CouchDB 或对象存储)或点对点方式同步;它不与 Obsidian 的付费同步服务通信,也与之不兼容。
我该怎么让它运行起来?新手推荐的方式是 3 分钟快速设置:先在 fly.io 上启动 CouchDB,然后使用插件的 Quick Setup 进行配置,它会生成一个 Setup URI,用于添加其他设备。
我需要自己架设服务器吗?需要。你需要以下二者之一:CouchDB 服务器(自建、fly.io、IBM Cloudant),或兼容 S3 的对象存储服务(Cloudflare R2、MinIO);如果使用 P2P 模式,还需要一个用于发现对等设备的信令中继服务器。
我能同时使用 iCloud 或 Obsidian Sync 吗?不能。不应将它与 iCloud 或 Obsidian Sync 等其他同步方案一起启用,并且在安装或升级之前,应先备份你的笔记库。
这款插件主要面向哪些人?它主要面向希望出于安全考虑将笔记完全自建的研究人员、工程师和开发者,也面向任何希望完全保护笔记库隐私的人。
它在手机和电脑上都能用吗?可以。它支持所有兼容 Obsidian 的平台,包括 Windows、macOS、Linux、iOS 和 Android。
我的笔记数据到底存放在哪里?你的笔记存放在你自己选择并控制的基础设施上(你自己的 CouchDB 或对象存储,或通过 WebRTC 连接的对等设备),而不是存放在 Obsidian 或任何第三方的服务器上,除非你主动选择使用第三方托管服务。
什么是自定义设置同步?这是一项测试版功能(另加隐藏文件同步),除笔记外,还能在多台设备之间同步你的 Obsidian 设置、代码片段、主题和插件。
没有中央服务器的点对点同步是怎样工作的?设备之间通过 WebRTC 直接交换笔记,无需中央数据存储服务器,但仍需要信令中继服务器来发现对等设备;并且在另一台设备同步时,至少有一台存有数据的设备必须保持在线。
同步时如果关闭 Obsidian 会怎样?可能导致文件和数据库损坏,删除或重命名之后尤其如此。因此,你应等到状态栏中所有进度指示消失后再关闭;如果同步被中断,插件会尝试恢复。
如果我不想自己架设服务器,有托管选项吗?有。第三方 Zenith Hosting 提供与本插件兼容的托管 CouchDB 服务,但它并非官方推出,也未获得背书,并且你的数据将存放在他们的服务器上。
Creator
vrtmrz
Size
19.1 MB
Stars
12.7K
Age
5y
Commits · 90 Days