Установка и настройка сервера календаря и адресной книги Baikal на Linux Debian / Ubuntu

Обновлено и опубликовано Опубликовано:

Сервер Baikal устанавливается как веб-приложение. В данной инструкции мы рассмотрим установку и настройка веб-сервера, портал Baikal и подключение клиентов. Примеры команд, представленные здесь будут приведены для Debian и Ubuntu.

Подготовка сервера

Перед настройкой сервера выполним предварительные действия.

1. Пакеты

Обновим список пакетов в репозиториях:

apt update

На свежеустановленной системе также рекомендуется выполнить обновление пакетов:

apt upgrade

Установим пакеты:

apt install wget unzip

* где unzip — для разархивирования zip-архивов, wget — загрузки файлов.

2. Настройка брандмауэра

По умолчанию в системах Deb сетевой экран не блокирует входящие соединения. Если в вашем случае фаервол настроен за запрет пакетов, то нам нужно открыть порты 80 и 443, которые используются для веб-запросов:

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

 Для продуктивного использования лучше использовать https. В этом случае также открываем порт 443:

iptables -I INPUT -p tcp --dport 443 -j ACCEPT

Для сохранения правил можно использовать утилиту netfilter-persistent:

apt install iptables-persistent

netfilter-persistent save

Более подробнее про настройку брандмауэра с помощью iptables можно прочитать в инструкции Настройка netfilter с помощью iptables.

Настройка веб-сервера

На официальном сайте в разделе установки приложения мы можем ознакомиться с программными требованиями. На момент последнего обновления данной инструкции необходимо было установить:

  • PHP. При этом, поддерживаемую версию разработчики рекомендуют посмотреть в composer.json на гитхабе (8.1 и выше на момент обновления инструкции).
  • MySQL/MariaDB или SQLite.
  • Apache или Nginx.

Итого, мы будем поднимать веб-сервер на базе NGINX + MariaDB + PHP 8 с PHP-FPM. Рассмотрим установку каждого из компонентов.

NGINX

Выполним установку командой:

apt install nginx

Открываем браузер и заходим по адресу http://<IP-адрес сервера> — мы должны увидеть стартовую страницу NGINX, например:

Стартовая страница NGINX

MariaDB

Для установки СУБД вводим команду:

apt install mariadb-server

Сразу создадим базу данных. Для этого подключаемся к СУБД

mysql

Создаем базу данных для приложения байкал командой:

> CREATE DATABASE baikal DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

* мы создадим базу с именем baikal.

Также нам нужен пользователь для подключения к базе:

> CREATE USER 'baikal'@'localhost' IDENTIFIED BY 'baikal123';

> GRANT ALL PRIVILEGES ON baikal.* TO baikal@localhost;

* мы создали пользователя baikal для подключения от локального хоста (localhost) и предоставит доступ к базе baikal. Пароль baikal123.

Выходим из командной консоли sql:

> quit

PHP и компоненты

Для работы приложения Baikal, как говорилось выше, нужна PHP версии 8.1 и выше. Проверим, какая версия может быть установлена в системе:

apt search --names-only '^php[.0-9]{3}$'

Если нужная нам версия присутствует в репозитории, то выполняем установку командой:

apt install php

Если в системном репозитории отсутствует нужная версия, то устанавливаем интерпретатор согласно одной из инструкций Установка разных версий PHP на Linux Ubuntu или Установка разных версий PHP на Linux Debian.

Помимо самого PHP необходимо установить несколько его расширений:

  • dom
  • openssl
  • pdo
  • zlib

* данный список представлен в вышеуказанном файле composer.json на гитхабе. Поэтому необходимо свериться с ним и доустановить другие расширения, если мой список устарел.

В зависимости от того, как мы устанавливали PHP, установка расширений будет отличаться.

а) Если установка выполнялась из родного репозитория (нужная нам версия была в системе):

apt install php-dom php-pdo php-zip php-fpm

б) Если нам пришлось подключать дополнительный репозиторий PHP:

PHP_VER=8.2

* допустим, мы установили версию 8.2.

apt install php${PHP_VER}-dom php${PHP_VER}-pdo php${PHP_VER}-zip php${PHP_VER}-fpm

Настройка виртуального домена

Создаем конфигурационный файл в nginx:

vi /etc/nginx/sites-enabled/baikal.conf

server {
    listen       80;
    server_name  dav.dmosk.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.dmosk.ru — адрес портала для календаря; /var/www/baikal/html — полный путь, по которому будут располагаться файлы приложения.
** пример конфигурационного файла взят с официального сайта.

Проверяем корректность конфига и если мы не получили ошибку, перечитываем конфигурацию:

nginx -t && nginx -s reload

Создаем каталог, в котором будут располагаться файлы Baikal (в нашем примере, /var/www/baikal/html):

mkdir -p /var/www/baikal/html

Создаем индексный файл в созданном каталоге:

vi /var/www/baikal/html/index.php

<?php echo phpversion(); echo "\n" ?>

Для проверки вводим команду:

curl --header "Host: dav.dmosk.ru" http://127.0.0.1

* где dav.dmosk.ru — имя хоста, на котором отвечает настроенный ранее виртуальный домен веб-сервера.

Мы должны увидеть версию рабочего PHP. Например:

8.2.28

Можно переходить к установке сервера календарей и адресных книг.

Установка приложения Baikal

Установку разделим на 2 этапа:

  1. Загрузку и копирование приложения на сервере.
  2. Установку приложения через веб-интерфейс.

Разберем этапы по шагам.

1. Загрузка и копирование приложения

Переходим на страницу загрузки последней версии приложения Baikal. Копируем ссылку на архив zip:

Копируем ссылку на загрузку последней версии Baikal

* обратите внимание, что версия на скриншоте устарела. Проект развивается и его разработчики постоянно выпускают новые версии.

Воспользовавшись ссылкой, скачиваем архив:

wget https://github.com/sabre-io/Baikal/releases/download/0.10.1/baikal-0.10.1.zip

Распакуем его:

unzip baikal-*.zip

Удаляем каталог html, который нами был создан ранее (он имеется в распакованном архиве):

rm -fr /var/www/baikal/html

Переносим содержимое распакованного архива в каталог /var/www/baikal:

mv baikal/* /var/www/baikal/

Задаем владельца для каталога:

chown -R www-data:www-data /var/www/baikal

2. Установка приложения через веб

Открываем веб-браузер и переходим по нашему адресу (в данной инструкции dav.dmosk.ru).

Адрес нашего узла должен разрешаться в IP-адрес. Для этого соответствующее имя должно быть добавлено в DNS или можно использовать файл hosts.

В открывшемся окне заполняем поля и нажимаем Save changes:

Заполняем поля для установки Baikal Server

* мне нужно было поменять часовой пояс, почтовый адрес, от которого будут приходить уведомления и пароль для учетной записи администратора baikal.

В следующем окне ставим галочку Use MySQL и заполняем поля для подключения к созданной базе:

Заполняем данные для подключения к серверу баз данных

* в нашем примере сервер баз данных находится на том же сервере, что и baikal (localhost); база данных была создана с именем baikal; логин и пароль для подключения к базе — baikal / baikal123.

Кликаем по Save changes. Установка завершена — переходим к панели настройки сервера, кликнув по Start using Baikal:

Завершаем установку сервера Baikal

Создание пользователя

Следующий шаг — создать пользователя с адресной книгой и календарем. Переходим по адресу http://<имя виртуального домена>/admin/ и авторизовываемся в системе, введя логин admin и пароль, который создали на этапе установки.

Переходим в раздел Users and resources:

Переходим к управлению пользователями в приложении Baikal

Кликаем по Add user:

Переходим к добавлению пользователя

В открывшейся форме заполняем поля и кликаем по Save changes:

Заполняем формы для добавления пользователя

Появится учетная запись, а справа от нее возможность перейти к календарю и адресной книге:

У созданного пользователя появляются свои каледарь и адресная книга

Настройка подключения к серверу

Рассмотрим в качестве примера подключение к адресной книге и календарю программами Outlook и Mozilla Thunderbird.

Microsoft Outlook

Сначала закроем программу Outlook (если она запущена в системе).

Для синхронизации Outlook с серверов webdav необходима программа CalDav Synchronizer. Переходим на страницу https://caldavsynchronizer.org/download-2 и выбираем для загрузки последнюю версию программного обеспечения:

Загружаем последнюю версию CalDav Synchronizer

После загрузки устанавливаем программу, распаковав архив и запустив файл msi. На вопросы мастера просто отвечаем Далее. После установки запускаем Outlook и переходим к вкладке CalDav Synchronizer - кликаем по Synchronization Profiles:

Переходим к настройке профиля в CalDav Synchronizer

Кликаем по значку добавления профиля:

Создаем новый профиль

Заполняем профиль для создания синхронизации с календарем и кликаем по Test or discover settings:

Заполняем форму для создания профиля календаря

* где DAV URL должен указывать на http путь до профиля календарей пользователя. В нашем случае, это http://dav.dmosk.ru/dav.php/calendars/dmosk/default/.

Мы должны увидеть сообщение об успешной проверке подключения. Завершаем создание профиля.

Снова кликаем по значку добавления профиля:

Создаем новый профиль

Заполняем поля для создания синхронизации с адресной книгой:

Заполняем форму для создания профиля адресной книги

* где http://dav.dmosk.ru/dav.php/addressbooks/dmosk/default/ — это путь до профиля адресной книги созданного нами пользователя на сервере Baikal.

... и кликаем по Test or discover settings: — мы должны получить сообщение об успешной проверке. 

Готово.

Mozilla Thunderbird

Открываем почтовый клиент Mozilla Thunderbird - нажимаем Alt - в появившемся меню кликаем по Инструменты - Дополнения:

Переходим к настройке дополнений

Для поиска нужного дополнения вводим tbsync:

Поиск дополнения tbsync

Среди результатов поиска находим TbSync и нажимаем Добавить в Thunderbird:

Установка дополнения tbsync

Снава переходим к поиску дополнения и вводим carddav:

Поиск дополнения по фразе carddav

Среди результатов находим Provider for CalDAV & CardDAV и кликаем по Добавить в Thunderbid:

Установка дополнения Provider for CalDAV & CardDAV

После добавления дополнений перезагружаем почтовый клиент и снова нажимаем Alt - в появившемся меню Инструменты - Настройка дополнений - TbSync:

Переход к настройке дополнения TbSync

В нижней части окна кликаем по Действия для аккаунта - Добавить новый аккаунтCalDAV & CardDAV:

Создание аккаунта CalDAV & CardDAV

Среди шаблонов настроек выбираем Пользовательская конфигурация:

Переход к созданию пользовательской конфигурации

Заполняем поля для добавления профиля:

Заполняем поля для создания профиля подключения к календарю и адресной книге

* где:

  • http://dav.dmosk.ru/dav.php/calendars/dmosk/default/ — путь для запросов к серверу календаря.
  • http://dav.dmosk.ru/dav.php/addressbooks/dmosk/default/ — путь для запросов к серверу адресной книги.

Нажимаем Готово:

Завершаем создание профиля

Кликаем по галочке Разрешить и синхронизировать этот аккаунт - после ставим галочки для синхронизации адресной книги и календаря. После нажимаем Синхронизировать сейчас:

Синхронизируем календарь и адресную книгу

# Ubuntu # Почта # Серверы
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет