vault-link/docs/guide/what-is-vaultlink.md
2025-11-30 15:24:52 +00:00

3.6 KiB

What is VaultLink?

VaultLink is a self-hosted real-time synchronization system for Obsidian vaults. It provides collaborative file syncing with automatic conflict resolution, designed for users who want complete control over their data.

Overview

VaultLink consists of three main components:

Sync Server

A Rust-based WebSocket server that handles:

  • Real-time bidirectional synchronization
  • Document versioning with SQLite
  • User authentication and vault access control
  • Operational transformation for conflict resolution

Obsidian Plugin

A native Obsidian plugin that:

  • Integrates sync directly into your Obsidian workflow
  • Provides real-time updates as you edit
  • Handles file watching and automatic synchronization
  • Works across desktop and mobile platforms

CLI Client

A standalone synchronization client that:

  • Syncs vaults without requiring Obsidian
  • Perfect for servers, automation, or backup systems
  • Provides file watching and bidirectional sync
  • Runs in Docker or as a standalone binary

Key Features

Real-Time Synchronization

Changes are synchronized immediately via WebSocket connections. When multiple users edit the same file, operational transformation ensures all edits are preserved without conflicts.

Self-Hosted Architecture

Run the sync server on your own infrastructure:

  • Full control over data storage and access
  • No dependency on third-party services
  • Configurable authentication and authorization
  • Deploy anywhere: cloud VPS, home server, or localhost

Operational Transformation

VaultLink uses the reconcile-text library for intelligent conflict resolution:

  • Simultaneous edits are automatically merged
  • No manual conflict resolution required
  • Preserves intent of all contributors
  • Works seamlessly in the background

Flexible Authentication

Configure user access per vault:

  • Token-based authentication
  • Per-user vault access control
  • Allow-list or deny-list patterns
  • Support for multiple users and vaults

Use Cases

Personal Sync

Synchronize your Obsidian vault across multiple devices:

  • Laptop, desktop, and mobile in real-time
  • No cloud service subscription required
  • Full privacy and data control

Team Collaboration

Share knowledge bases with teammates:

  • Real-time collaborative editing
  • Granular access control per vault
  • Self-hosted for enterprise security requirements

Automated Backups

Use the CLI client for automated workflows:

  • Scheduled backups to remote servers
  • Integration with existing backup systems
  • Headless operation without Obsidian

Development & Testing

Synchronize documentation across environments:

  • Keep docs in sync with development environments
  • Automated deployment of documentation
  • Version control integration

How It Works

  1. Server Setup: Deploy the sync server on your infrastructure
  2. Authentication: Configure users and vault access in config.yml
  3. Client Connection: Connect via Obsidian plugin or CLI client
  4. Initial Sync: Client uploads local files to server
  5. Real-Time Updates: Changes sync bidirectionally via WebSocket
  6. Conflict Resolution: Operational transformation handles simultaneous edits

Technology Stack

  • Server: Rust with Axum framework, SQLite database, WebSocket protocol
  • Frontend: TypeScript with WebSocket client, npm workspaces
  • Sync Algorithm: reconcile-text operational transformation library
  • Deployment: Docker images, binary releases, or source builds

Next Steps

Ready to get started?