Self-hosted LiveSync

by vorotamoroz
5
4
3
2
1
Score: 81/100

Description

Category: File Management

The Self-hosted LiveSync plugin is a community-developed synchronization solution for Obsidian users who want to keep their notes fully private. This plugin uses CouchDB or Object Storage as its server, ensuring efficient and secure data transfer. With automatic merging of conflicted modifications, this plugin reduces traffic and ensures seamless collaboration. Additionally, it supports end-to-end encryption, customization sync, and hidden file synchronization. Perfect for researchers, engineers, and developers who prioritize security and control over their data.

Reviews

No reviews yet.

Stats

10861
stars
685,142
downloads
379
forks
1,675
days
0
days
0
days
117
total PRs
19
open PRs
30
closed PRs
68
merged PRs
628
total issues
308
open issues
320
closed issues
188
commits

Latest Version

5 hours ago

Changelog

0.25.64

17th May, 2026

P2P Status Pane

  • Added active P2P remote selector (combo box) and + action to create/select a P2P remote from the P2P setup dialogue.
  • Added per-peer immediate replication action on accepted peers.
  • Updated status control icons for clarity:
    • Replicate now: 🔄 ( while running)
    • Watch: 🔔 / 🔕
    • Sync target: 🔗 / ⛓️‍💥
  • Added a warning state when no active P2P remote is selected.

P2P Status Card

  • Added stable Room ID suffix display and placed it above Peer ID for better identification.

Non-behavioural internal changes

P2P

  • Added P2P_ActiveRemoteConfigurationId as a dedicated active remote selection for P2P features, separate from the normal active remote.
  • Added activation logic for P2P dedicated remote configuration that reflects P2P settings while keeping remoteType unchanged.
  • Added migration support to carry over P2P active remote selection when appropriate.
  • Added shared Room ID utility functions and applied them across P2P setup and P2P panes.

Tests

  • Added/updated unit test coverage around settings load behaviour for P2P active remote application.

README file from

Github

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 you to synchronise your notes directly between devices without relying on a server. Documentations is available for Peer-to-Peer Synchronisation.

obsidian_live_sync_demo

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

Features

  • Synchronise vaults efficiently with minimal traffic.
  • Handle conflicting modifications effectively.
    • Automatically merge simple conflicts.
  • Use open-source solutions for the server.
    • Compatible solutions are supported.
  • Support end-to-end encryption.
  • Synchronise settings, snippets, themes, and plug-ins via Customisation Sync (Beta) or Hidden File Sync.
  • Enable WebRTC peer-to-peer synchronisation without requiring a host (Experimental).
    • This feature is still in the experimental stage. Please exercise caution when using it.
    • WebRTC is a peer-to-peer synchronisation method, so at least one device must be online to synchronise.
    • Instead of keeping your device online as a stable peer, you can use two pseudo-peers:
      • livesync-serverpeer: A pseudo-client running on the server for receiving and sending data between devices.
      • webpeer: A pseudo-client for receiving and sending data between devices.
      • A pre-built instance is available at fancy-syncing.vrtmrz.net/webpeer (hosted on the vrtmrz blog site). This is also peer-to-peer. Feel free to use it.
    • For more information, refer to the English explanatory article or the Japanese explanatory article.

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 at the same time (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. Setup CouchDB on fly.io
  2. Configure plug-in in Quick Setup

Manually Setup

  1. Setup the server
    1. Setup CouchDB on fly.io
    2. Setup your CouchDB
  2. Configure plug-in in Quick Setup

[!TIP] Fly.io is no longer free. Fortunately, despite some issues, we can still use IBM Cloudant. Refer to Setup IBM Cloudant. And also, we can use peer-to-peer synchronisation without a server. Or very cheap Object Storage -- Cloudflare R2 can be used for free. HOWEVER, most importantly, we can use the server that we trust. Therefore, please set up your own server. CouchDB can be run on a Raspberry Pi. (But please be careful about the security of your server).

Information in StatusBar

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

  • Activity Indicator
    • 📲 Network request
  • Status
    • ⏹️ Stopped
    • 💤 LiveSync enabled. Waiting for changes
    • ⚡️ Synchronization in progress
    • ⚠ An error occurred
  • Statistical indicator
    • ↑ Uploaded chunks and metadata
    • ↓ Downloaded chunks and metadata
  • Progress indicator
    • 📥 Unprocessed transferred items
    • 📄 Working database operation
    • 💾 Working write storage processes
    • ⏳ Working read storage processes
    • 🛫 Pending read storage processes
    • 📬 Batched read storage processes
    • ⚙️ Working or pending storage processes of hidden files
    • 🧩 Waiting chunks
    • 🔌 Working Customisation items (Configuration, snippets, and plug-ins)

To prevent file and database corruption, please wait to stop Obsidian until all progress indicators have disappeared as possible (The plugin will also try to resume, though). Especially in case of if you have deleted or renamed files.

Tips and Troubleshooting

If you are having problems getting the plugin working see: Tips and Troubleshooting.

Acknowledgements

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

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

Development Guide

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

License

Licensed under the MIT License.