Add docs
This commit is contained in:
parent
56c1f4d58b
commit
50a95b114d
19 changed files with 4663 additions and 1 deletions
115
docs/guide/what-is-vaultlink.md
Normal file
115
docs/guide/what-is-vaultlink.md
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
# 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?
|
||||
|
||||
- [Getting Started Guide →](/guide/getting-started)
|
||||
- [Server Setup →](/guide/server-setup)
|
||||
- [Architecture Overview →](/architecture/)
|
||||
Loading…
Add table
Add a link
Reference in a new issue