Ebla Documentation
A hybrid file sync system with server-authoritative storage and P2P acceleration. Built for privacy, control, and AI-powered knowledge retrieval.
What is Ebla?
Ebla is a Personal Knowledge Operating System where file sync is the data ingestion layer. It combines the reliability of server-based sync with the speed of peer-to-peer transfers, all while keeping you in complete control of your data.
Hybrid Sync
Server is source of truth, P2P accelerates transfers on local networks
Single Binary
One binary for server, one for client, zero runtime dependencies
CLI-First
Terminal interface first, web UI included, API for everything
Self-Hosted
Your data, your server, your control—always
Features
Sync Foundation
- Block-level file chunking with SHA-256 deduplication
- Server-authoritative sync with immutable commits
- Configurable conflict resolution strategies
- Ignore rules (
.eblaignore) - Full version history with restore
P2P Acceleration
- mDNS peer discovery (automatic LAN discovery)
- Direct P2P block transfer (TCP)
- Server-coordinated peer discovery
- NAT traversal with STUN/TURN/ICE
AI-Powered Search
- Automatic file indexing (PDF, Office, Markdown, code)
- Hybrid search (semantic + keyword)
- Natural language Q&A with RAG
- Mandatory citations (file, page, excerpt)
- Pluggable backends (OpenAI, Anthropic, Ollama)
Teams & Collaboration
- Shared libraries with role-based access
- Fine-grained ACLs (folder/file level)
- Team management with invitations
- Internal and external share links
- Audit logging
Operations
- Automated backup system with retention
- Prometheus metrics and health endpoints
- Admin dashboard with user management
- Garbage collection and storage optimization
- TLS support with automatic cert reload
Cloud Storage
- Local filesystem
- AWS S3 / MinIO / Backblaze B2
- Google Cloud Storage
- Azure Blob Storage
- Tiered storage (hot/warm/cold/archive)
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ EBLA SERVER │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ HTTP/2 + WebSocket │ │
│ │ REST API │ Sync Protocol │ P2P Coordination │ Admin │ │
│ ├───────────────────────────────────────────────────────────┤ │
│ │ Core Services │ │
│ │ • Auth • Sync Engine • Block Storage │ │
│ │ • Libraries • P2P Tracker • Knowledge Layer │ │
│ └───────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│ │
▼ ▼
┌──────────┐ ┌─────────────────┐
│ PostgreSQL│ │ Object Storage │
│ (metadata)│ │ (S3/MinIO/disk)│
└──────────┘ └─────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ EBLA CLIENT │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Sync Daemon │ │
│ │ • File watcher • Block chunker • Hash cache │ │
│ │ • Server sync • P2P discovery • P2P transfer │ │
│ └───────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
See the Architecture page for detailed diagrams and explanations.
Quick Links
Comparison
| Feature | Ebla | Seafile | Nextcloud | Syncthing |
|---|---|---|---|---|
| Architecture | Hybrid | Server | Server | P2P |
| Single Binary | Yes | No | No | Yes |
| Block Dedup | Yes | Yes | No | Yes |
| P2P Transfer | Yes (LAN + NAT) | No | No | Yes |
| AI Search | Yes | No | No | No |
| Cloud Storage | Yes (S3, GCS, Azure) | S3 | S3 | No |
| Version History | Full (immutable) | Yes | Limited | Partial |
| Self-Hosted | Yes | Yes | Yes | Yes |
License
- Server: GNU Affero General Public License v3.0 (AGPLv3)
- Client: Apache License 2.0
Copyright (c) 2024-2026 ALTN VENTURES LLC. All rights reserved.
Support
For questions, bug reports, or feature requests:
- Email: hello@ebla.dev
- Server diagnostics:
ebla-server doctor --config /etc/ebla/server.toml