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\Backendinterface.
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
REPORTrequests for searching resources,PROPFINDfor property discovery, andACLfor 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::PROPERTYchanges or when resources are created/deleted, enabling integration with external services (e.g., webhook notifications). - Extensibility: The
sabre/davframework allows plugins; Baïkal ships with a simple “logging” plugin and can be extended by adding customSabreDAV\Pluginclasses.
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
Dockerfilethat 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.phpfile 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
- Home Lab – Run a single‑node CalDAV/CardDAV server on a Raspberry Pi to keep personal calendars and contacts private.
- Enterprise SSO – Integrate Baïkal with an existing LDAP/Active Directory for single‑sign‑on, exposing internal calendars to mobile devices.
- DevOps Tooling – Use Baïkal’s API hooks to trigger CI pipelines when a calendar event is created (e.g., scheduling deployments).
- Migrations – Export from Google Workspace or Microsoft Exchange and import into Baïkal for a self‑hosted backup solution.
Advantages Over Alternatives
| Feature | Baïkal | Competitors (e.g., Radicale, Nextcloud) |
|---|---|---|
| ** |
Open SourceReady to get started?
Join the community and start self-hosting Baïkal today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Bitpoll
Self‑hosted poll platform for dates, times and general questions
Luanti
Open‑source voxel engine for building, exploring, and modding
Glowing Bear
Web IRC client for WeeChat, mobile‑friendly and feature rich
CyberChef
The Cyber Swiss Army Knife for data manipulation
Endurain
Self-hosted fitness tracker with full data control
Glance
Customizable dashboard for feeds and stats