MCPSERV.CLUB
Baïkal

Baïkal

Self-Hosted

Lightweight CalDAV & CardDAV server for personal calendars and contacts

Active(86)
2.9kstars
1views
Updated 28 days ago

Overview

Discover what makes Baïkal powerful

Baïkal is a **lightweight, PHP‑based CalDAV and CardDAV server** designed for developers who need an easy way to expose calendar and contact data over standard protocols. Built on the robust **SabreDAV** library, Baïkal focuses on minimalism: it requires only a PHP runtime and a relational database (MySQL or SQLite) to run, making it suitable for everything from a Raspberry Pi home server to a production cluster behind an Nginx reverse proxy.

Language & Runtime

Core Library

Database

Web Interface

Overview

Baïkal is a lightweight, PHP‑based CalDAV and CardDAV server designed for developers who need an easy way to expose calendar and contact data over standard protocols. Built on the robust SabreDAV library, Baïkal focuses on minimalism: it requires only a PHP runtime and a relational database (MySQL or SQLite) to run, making it suitable for everything from a Raspberry Pi home server to a production cluster behind an Nginx reverse proxy.

Technical Stack & Architecture

  • Language & Runtime: PHP 8.x (fully compatible with earlier 7.x releases), leveraging Composer for dependency management.
  • Core Library: sabre/dav – a mature, RFC‑compliant implementation of CalDAV/CardDAV that handles protocol negotiation, authentication, ACLs, and resource serialization.
  • Database: Supports both MySQL/MariaDB and SQLite out of the box; the schema is lightweight (tables for users, calendars, address books, and ACLs).
  • Web Interface: A minimal MVC‑style PHP frontend provides CRUD operations for users, calendars, and address books. It uses standard HTML/CSS with optional Bootstrap styling.
  • Authentication: Basic auth over HTTPS is the default; developers can hook into custom authentication backends by extending the SabreDAV\Auth\Backend interface.

The architecture is intentionally flat: a single PHP entry point (index.php) routes all requests to SabreDAV, while the admin panel is a separate module that writes directly to the same database. This tight coupling reduces deployment complexity but also limits horizontal scaling; for high‑volume deployments, a reverse proxy with load balancing and shared storage is recommended.

Core Capabilities & APIs

  • CalDAV/CardDAV Compliance: Full support for calendar events, tasks, and contacts, including recurring rules (RRULE), time zones, and iCalendar attachments.
  • WebDAV Extensions: Supports REPORT requests for searching resources, PROPFIND for property discovery, and ACL for fine‑grained access control.
  • Administrative API: The web UI exposes RESTful endpoints (e.g., /api/users, /api/calendars) for programmatic user and resource management.
  • Event Hooks: Developers can register callbacks on DAV::PROPERTY changes or when resources are created/deleted, enabling integration with external services (e.g., webhook notifications).
  • Extensibility: The sabre/dav framework allows plugins; Baïkal ships with a simple “logging” plugin and can be extended by adding custom SabreDAV\Plugin classes.

Deployment & Infrastructure

  • Self‑Hosting Requirements: Any LAMP/LEMP stack with PHP 7.4+ and a web server (Apache, Nginx) is sufficient.
  • Containerization: An unofficial Docker image exists; the official repo contains a Dockerfile that uses an Alpine PHP base, simplifying CI/CD pipelines.
  • Scalability: While Baïkal is single‑process, it can be scaled horizontally by sharing the database and static assets across nodes behind a load balancer. Statelessness of PHP sessions (stored in files or Redis) is required for true scale‑out.
  • Security: HTTPS is mandatory (recommended by the docs). The admin panel enforces CSRF protection, and all data access is authenticated via HTTP Basic Auth. Developers can harden further by adding IP whitelisting or integrating with LDAP.

Integration & Extensibility

  • Client Compatibility: Works seamlessly with iOS, macOS, Android (DAVx 5), Thunderbird, and any CalDAV/CardDAV‑enabled application.
  • Webhooks & Callbacks: By listening to SabreDAV\Events, developers can trigger external processes when calendars or contacts change.
  • Custom Plugins: Extend SabreDAV’s plugin system to add features like OAuth2 authentication, LDAP sync, or custom property handling.
  • Data Export/Import: The admin UI supports CSV export for contacts and iCalendar export for calendars, facilitating migration to other services.

Developer Experience

  • Configuration: A single config.php file contains database credentials, host settings, and optional plugin registrations.
  • Documentation: The project’s README is concise but links to detailed upgrade guides and community tutorials (German & French). API docs are embedded in the source via PHPDoc.
  • Community: Maintained by Net Gusto and fruux with active contributors on GitHub; issues are triaged quickly, and pull requests for bug fixes or feature additions are accepted.
  • Licensing: GPLv3 ensures that any derivative work remains open source, which is attractive for organizations with strict compliance requirements.

Use Cases

  1. Home Lab – Run a single‑node CalDAV/CardDAV server on a Raspberry Pi to keep personal calendars and contacts private.
  2. Enterprise SSO – Integrate Baïkal with an existing LDAP/Active Directory for single‑sign‑on, exposing internal calendars to mobile devices.
  3. DevOps Tooling – Use Baïkal’s API hooks to trigger CI pipelines when a calendar event is created (e.g., scheduling deployments).
  4. Migrations – Export from Google Workspace or Microsoft Exchange and import into Baïkal for a self‑hosted backup solution.

Advantages Over Alternatives

FeatureBaïkalCompetitors (e.g., Radicale, Nextcloud)
**

Open SourceReady to get started?

Join the community and start self-hosting Baïkal today

Weekly Views

Loading...
Support Us
Most Popular

Infrastructure Supporter

$5/month

Keep our servers running and help us maintain the best directory for developers

Repository Health

Loading health data...

Information

Category
other
License
GPL-3.0
Stars
2.9k
Technical Specs
Pricing
Open Source
Database
Multiple
Docker
Community
Supported OS
LinuxDocker
Author
sabre-io
sabre-io
Last Updated
28 days ago