# Baikal — Lightweight Self-Hosted CalDAV and CardDAV Server > Baikal is a lightweight, self-hosted CalDAV and CardDAV server written in PHP that syncs calendars and contacts across all your devices without third-party cloud services. ## Install Save as a script file and run: # Baikal — Lightweight Self-Hosted CalDAV and CardDAV Server ## Quick Use ```bash docker run -d --name baikal -p 8080:80 -v baikal_config:/var/www/baikal/config -v baikal_data:/var/www/baikal/Specific ckulka/baikal:nginx # Open http://localhost:8080/admin and follow the setup wizard ``` ## Introduction Baikal is a self-hosted calendar and contact server that implements the CalDAV and CardDAV protocols. It provides a simple, standards-compliant backend so you can sync events, tasks, and address books across phones, desktops, and web clients without depending on Google or Apple cloud services. ## What Baikal Does - Serves CalDAV endpoints for calendar and task synchronization - Serves CardDAV endpoints for contact synchronization - Works with any standards-compliant client (iOS, Android, Thunderbird, GNOME) - Manages multiple users and shared calendars via a web admin panel - Stores data in SQLite or MySQL with minimal resource usage ## Architecture Overview Baikal is a PHP application built on the sabre/dav library, which is the reference implementation of WebDAV, CalDAV, and CardDAV in PHP. It runs on any web server that supports PHP (Apache, Nginx with PHP-FPM). Data is stored in SQLite by default or MySQL for multi-user deployments. The admin interface is a simple PHP web panel. ## Self-Hosting & Configuration - Deploy via Docker using community-maintained images or install on any LAMP/LEMP stack - Run the web-based setup wizard on first launch to create the admin account - Configure the database backend (SQLite or MySQL) during initial setup - Place behind a reverse proxy with HTTPS for secure sync over the internet - Set proper WebDAV rewrite rules in your web server configuration ## Key Features - Full CalDAV and CardDAV compliance tested with major clients and platforms - Lightweight footprint suitable for single-board computers like Raspberry Pi - Web-based admin panel for managing users, calendars, and address books - Supports calendar sharing and delegation between users - No JavaScript frameworks or complex build steps; plain PHP deployment ## Comparison with Similar Tools - **Radicale** — Python-based, file-backed; Baikal offers a web admin and SQL storage - **Nextcloud** — full cloud suite with CalDAV built in; Baikal is far lighter if you only need calendars - **DAViCal** — PostgreSQL-focused; Baikal is simpler to set up with SQLite - **Cyrus IMAP** — includes CalDAV but is primarily a mail server; Baikal is calendar-only - **EteSync** — encrypted sync; Baikal uses standard CalDAV without custom encryption ## FAQ **Q: Which clients work with Baikal?** A: iOS Calendar/Contacts, Android (DAVx5), Thunderbird, GNOME Calendar, Evolution, and any CalDAV/CardDAV client. **Q: Can multiple users share a calendar?** A: Yes. The admin panel lets you create shared calendars and assign user permissions. **Q: Does Baikal support two-way sync?** A: Yes. CalDAV and CardDAV are bidirectional protocols; changes sync both ways automatically. **Q: How do I back up Baikal data?** A: Back up the `Specific/` directory and the database file (SQLite) or run a MySQL dump. ## Sources - https://github.com/sabre-io/Baikal - https://sabre.io/baikal/ --- Source: https://tokrepo.com/en/workflows/asset-79af2ead Author: Script Depot