Установка и настройка Baikal на Debian/Ubuntu: CalDAV и CardDAV сервер
Baikal — сервер календарей и адресных книг по протоколам CalDAV/CardDAV. Устанавливается как веб-приложение и позволяет синхронизировать календари и контакты между Outlook, Thunderbird, смартфонами и другими клиентами.
Актуальная версия на сентябрь 2026 — Baikal 0.12.1. Инструкция для Debian и Ubuntu.
Подготовка сервера
1. Пакеты
apt update
apt upgrade
apt install wget unzip
где unzip — распаковка zip, wget — загрузка файлов.
2. Брандмауэр
Открываем порты 80 и 443:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
apt install iptables-persistent
netfilter-persistent save
Для продакшена используйте HTTPS (443).
Настройка веб-сервера
Требования Baikal (см. официальную инструкцию):
- PHP 8.1+ (точные требования — в
composer.jsonна GitHub); - MySQL/MariaDB или SQLite;
- Apache или Nginx.
Поднимаем NGINX + MariaDB + PHP-FPM.
NGINX
apt install nginx
Открываем http://<IP-сервера> — увидим стартовую страницу NGINX.
MariaDB
apt install mariadb-server
mysql
> CREATE DATABASE baikal DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
> CREATE USER 'baikal'@'localhost' IDENTIFIED BY 'baikal123';
> GRANT ALL PRIVILEGES ON baikal.* TO baikal@localhost;
> quit
Создана база baikal, пользователь baikal / baikal123 с доступом с localhost.
PHP и компоненты
apt search --names-only '^php[.0-9]{3}$'
Если нужная версия есть в репозитории:
apt install php
Иначе — по инструкциям Установка разных версий PHP на Ubuntu или на Debian.
Необходимые расширения: dom, openssl, pdo, zlib (сверяйтесь с composer.json).
а) Из родного репозитория:
apt install php-dom php-pdo php-zip php-fpm
б) Из дополнительного репозитория:
PHP_VER=8.3
apt install php${PHP_VER}-dom php${PHP_VER}-pdo php${PHP_VER}-zip php${PHP_VER}-fpm
Виртуальный домен
vi /etc/nginx/sites-enabled/baikal.conf
server {
listen 80;
server_name dav.imaxis.ru;
root /var/www/baikal/html;
index index.php;
rewrite ^/.well-known/caldav /dav.php redirect;
rewrite ^/.well-known/carddav /dav.php redirect;
charset utf-8;
location ~ /(.ht|Core|Specific|config) {
deny all;
return 404;
}
location ~ ^(.+.php)(.*)$ {
try_files $fastcgi_script_name =404;
include /etc/nginx/fastcgi_params;
fastcgi_split_path_info ^(.+.php)(.*)$;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
где dav.imaxis.ru — адрес портала, /var/www/baikal/html — путь к файлам приложения.
Конфигурация взята с официального сайта Baikal.
nginx -t && nginx -s reload
mkdir -p /var/www/baikal/html
vi /var/www/baikal/html/index.php
<?php echo phpversion();
Проверяем:
curl --header "Host: dav.imaxis.ru" http://127.0.0.1
Должны увидеть версию PHP, например 8.3.12.
Установка Baikal
1. Загрузка и копирование
Скачиваем последнюю версию со страницы релизов:
wget https://github.com/sabre-io/Baikal/releases/download/0.12.1/baikal-0.12.1.zip
unzip baikal-*.zip
Удаляем ранее созданный каталог (он есть в архиве):
rm -fr /var/www/baikal/html
mv baikal/* /var/www/baikal/
chown -R www-data:www-data /var/www/baikal
2. Установка через веб-интерфейс
Открываем адрес портала (dav.imaxis.ru). Имя должно разрешаться в IP через DNS или hosts.
Заполняем поля и нажимаем Save changes: часовой пояс, email для уведомлений, пароль администратора.
В следующем окне ставим галочку Use MySQL и указываем параметры подключения к базе:
В примере сервер БД — localhost, база baikal, логин/пароль baikal / baikal123.
Нажимаем Save changes → Start using Baikal.
Создание пользователя
Переходим на http://<домен>/admin/, входим под admin и паролем из установки.
Раздел Users and resources → Add user → заполняем поля → Save changes.
Справа от учётной записи появятся ссылки на её календарь и адресную книгу.
Подключение клиентов
Microsoft Outlook
Закрываем Outlook. Для синхронизации нужен CalDav Synchronizer со страницы загрузки.
Устанавливаем (распаковать архив, запустить .msi, мастер — Далее). В Outlook переходим на вкладку CalDav Synchronizer → Synchronization Profiles → добавляем профиль.
Для календаря:
DAV URL: http://dav.imaxis.ru/dav.php/calendars/imaxis/default/
Нажимаем Test or discover settings — должно появиться сообщение об успешной проверке. Завершаем создание профиля.
Аналогично для адресной книги:
http://dav.imaxis.ru/dav.php/addressbooks/imaxis/default/
Mozilla Thunderbird
Открываем Thunderbird → Alt → Инструменты → Дополнения.
Устанавливаем два дополнения:
- TbSync (поиск:
tbsync); - Provider for CalDAV & CardDAV (поиск:
carddav).
Перезагружаем клиент → Alt → Инструменты → Настройка дополнений → TbSync → Действия для аккаунта → Добавить новый аккаунт → CalDAV & CardDAV → Пользовательская конфигурация.
Заполняем:
- календарь:
http://dav.imaxis.ru/dav.php/calendars/imaxis/default/; - адресная книга:
http://dav.imaxis.ru/dav.php/addressbooks/imaxis/default/.
Готово → отмечаем Разрешить и синхронизировать этот аккаунт → ставим галочки для календаря и адресной книги → Синхронизировать сейчас.
Тонкости и подводные камни
- Версия PHP — Baikal 0.12 требует PHP 8.1+; на старых Ubuntu ставьте
ondrej/php. - Расширения PHP — сверяйтесь с
composer.json; кроме dom/pdo/zip часто нужныmbstring,xml,curl. - Права
www-data— каталог/var/www/baikalдолжен принадлежать пользователю веб-сервера. - Сокет PHP-FPM — путь
unix:/var/run/php/php-fpm.sockзависит от версии PHP; проверьте/etc/php/*/fpm/pool.d/. .well-knownредиректы — нужны для авто-обнаружения CalDAV/CardDAV клиентами.- Закрытые каталоги —
Core,Specific,configдолжны быть недоступны извне (это уже сделано в конфиге). - HTTPS обязателен — CalDAV/CardDAV передают учётные данные; на проде — только TLS.
- Пути к календарям — включают имя пользователя (
/calendars/imaxis/...); для каждого пользователя они свои.
Шпаргалка
apt install nginx mariadb-server php php-dom php-pdo php-zip php-fpm wget unzip
mysql -e "CREATE DATABASE baikal; CREATE USER 'baikal'@'localhost' IDENTIFIED BY 'baikal123'; GRANT ALL ON baikal.* TO baikal@localhost;"
mkdir -p /var/www/baikal/html
wget https://github.com/sabre-io/Baikal/releases/download/0.12.1/baikal-0.12.1.zip
unzip baikal-*.zip && rm -fr /var/www/baikal/html && mv baikal/* /var/www/baikal/
chown -R www-data:www-data /var/www/baikal
# nginx vhost с /.well-known/caldav и /.well-known/carddav
nginx -t && nginx -s reload
# веб-установка -> admin -> Users and resources
Проверено на: Ubuntu 22.04/24.04/26.04, Debian 12 + Baikal 0.12.1.
Дата: Сентябрь 2026.