Caldav carddav server linux

Поднимаем простой DAV server на Linux

В использовании у меня получилось довольно много устройств — одних только ноутбуков три штуки, а еще комп на работе и смартфон. В какой-то момент я понял, что адресную книгу вот так в разброс хранить неудобно, и календарь тоже бы хотелось вести как-то единообразно. Синхронизировать такое количество устройств между собой как-то очень уж неудобно получается. Вот тут и пришло время придумать, как из этого всего выпутаться. Решил я посмотреть в сторону caldav и carddav серверов.
Требования для них у меня были максимально простые — учетки брать или из LDAP, или по IMAP и наличие веб-интерфейса для просмотра календаря и адресной книги.
Под рассмотрение попали три таких реализации:
1. Baikal — не подошел. Не понравилось то, что нужно было вести отдельную базу учетных записей.
2. Radicale — вещь неплохая, но вебморду к нему прикрутить не удалось, хотя на сайте сказано, что CalDavZap с ним работает. Может я не очень и старался… Да и документация на него мне как-то не понравилась. Тоже не подошел.
3. Davical — А вот этотот заработал. При чем именно так, как мне и хотелось. Поэтому рассмотрим его установку и настройку:

Установка и настройка Davical
В качестве серверного дистрибутива использовался Ubuntu ServerPack 12.04

Устанавливаем необходимый набор пакетов программ:
# apt-get install install postgresql apache2 php5 php5-pgsqll davical php5-curl php5-imap

После установки нужно сделать небольшую настройку postrgesql. Открываем /etc/postgresql/9.1/main/pg_hba.conf
Комментируем строку
local all postgres peer

И добавляем две другие
local davical davical_app trust
local davical davical_dba trust

После чего перезапускаем postgresql
# service postgresql restart

Далее нужно выполнить скрипт, который создаст нужную базу данных
# su postgres -c /usr/share/davical/dba/create-database.sh

Вывод будет примерно такой:
Supported locales updated.
Updated view: dav_principal.sql applied.
CalDAV functions updated.
RRULE functions updated.
Database permissions updated.
NOTE
====
* You will need to edit the PostgreSQL pg_hba.conf to allow the
‘davical_dba’ database user access to the ‘davical’ database.
* You will need to edit the PostgreSQL pg_hba.conf to allow the
‘davical_app’ database user access to the ‘davical’ database.
* The password for the ‘admin’ user has been set to ‘co/e9Ap3’
Thanks for trying DAViCal! Check in /usr/share/doc/davical/examples/ for
some configuration examples. For help, visit #davical on irc.oftc.net.

Читайте также:  Arch linux lvm install

Смотрим на него внимательно. Там будет админский логин и пароль в веб-интерфейс davical

Создадим файл конфигурации /etc/davical/config.php

$c->authenticate_hook[‘call’] = ‘IMAP_PAM_check’;
$c->authenticate_hook[‘config’] = array(
‘imap_url’ => »,
);
include(‘/usr/share/davical/inc/drivers_imap_pam.php’);
$c->domain_name = ‘davical.local’;
$c->sysaddr = ‘davical’;
$c->system_name = ‘DAViCal CalDAV Server’;
$c->admin_email = ‘admin@davical.local’;
$c->pg_connect[] = ‘dbname=davical user=davical_app’;
$c->default_locale = «uk_UA»;
$c->use_old_sync_response_tag = true;
?>

Обратите внимание, на строку imap_url. Судя по их вики davical.dhits.nl тут предусматривается несколько возможных вариантов:

Так вот — все это работает (по крайней мере у меня) только в том случае, если в конце строки НЕ СТАВИТЬ “/”
В общем каждый прописывает эту строку с теми параметрами, с которыми ему нужно.

Сам сервер уже настроен, но пока у нас ничего не работает. Делаем веб-интерфейсы.

CalDavZap — установка и настройка.
Скачиваем архив программы со страницы http://www.inf-it.com/open-source/clients/caldavzap/
И распаковываем его в /var/www
Открываем его файл конфигурации и правим в нем строку globalNetworkCheckSettings
var globalNetworkCheckSettings=

Теперь нужно настроить авторизацию в CalDavZap
Для этого делаем следующие настройки:
В файле auth/config.inc в двух местах в поле href нужно прописать имя нашего сервера. При чем остальную часть пути не трогать. То есть у нас должны получиться такие строки:
‘href’=>’http://davical.local/caldav.php/’.$_SERVER[‘PHP_AUTH_USER’].’/’,
‘href’=>’http://davical.local/caldav.php/resource/’,

Кроме этого в файле auth/plugins/generic_conf.inc меняем значение в одной строке
$pluginconfig[‘base_url’]=’http://davical.local;

Настройка Apache
Осталось последнее действие — настроить веб-сервер.
Создаем файл /etc/apache2/sites-available/davical и записываем в него

DocumentRoot /usr/share/davical/htdocs
DirectoryIndex index.html index.php
ServerName davical.local
Alias /images/ /usr/share/davical/htdocs/images/
Alias /cal /var/www/caldavzap/

AllowOverride None
Order allow,deny
Allow from all

php_value include_path /usr/share/awl/inc
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value error_reporting «E_ALL & ~E_NOTICE»
php_value default_charset «utf-8»

Создаем ссылку на этот файл в /etc/apache2/sites-enabled/
И перезапускаем Apache

Сейчас у нас стали доступны два веб-интерфейса
davical.local — веб-интерфейс самого Davical, где можно делать или общесистемные настройки, если есть админские права, или создавать себе дополнительные календари или адресные книги, если права обычного пользователя.

image

Рекомендую сразу же зайти сюда как admin и сменить тот пароль, который мы запомнили в самом начале при установке Davical
davical.local/cal — веб-интерфейс нашего календаря

image

На последок две полезные ссылки, для подключения ресурсов к внешним клиентам, например к Evolution или Outlook
davical.local/caldav.php/USERNAME/addresses — подключение адресной книги
davical.local/caldav.php/USERNAME/calendar — подключение календаря.

Не забудьте в этих ссылках заменить доменное имя и USERNAME на реально существующие

Источник

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

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

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

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

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

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

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

Читайте также:  Locale linux red hat

2. Отключение SELinux

* первая команда отключит selinux для текущей загрузки, вторая не даст стартовать selinux при включении сервера.

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

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

NGINX

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

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

MariaDB

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

Для работы приложения Baikal необходим PHP версии 7 и выше. В зависимости от версии CentOS выполним команды по установке. а) если CentOS 8:

* как правило, в CentOS 8 настройку менять не придется, для CentOS 7 необходимо внести изменение. Задать опцию listen.owner критично для CentOS 7. Теперь разрешим автозапуск php-fpm и стартуем сервис:

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

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;

location ~ /(\.ht|Core|Specific) 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:/run/php-fpm/www.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
>
>

* где dav.dmosk.ru — адрес портала для календаря; /var/www/baikal/html — полный путь, по которому будут располагаться файлы приложения. Проверяем корректность конфига:

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

Результат команды phpinfo

Переходим по адресу, который был указан в опции server_name конфига nginx (в нашем примере, dav.dmosk.ru) — мы должны увидеть страницу с параметрами php: Можно переходить к установке сервера календарей и адресных книг.

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

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

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

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

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

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

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

Распакуем скачанный архив:

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

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

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

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

2. Создание базы

Подключаемся к серверу баз данных:

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

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

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

Создаем пользователя для подключения к созданной базе:

> GRANT ALL PRIVILEGES ON baikal.* TO baikal@localhost IDENTIFIED BY ‘baikal123’;

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

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

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

Переходим по нашему адресу (в данной инструкции dav.dmosk.ru). В открывшемся окне заполняем поля и нажимаем Save changes:

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

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

Читайте также:  Linux autostart on login

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

. и кликаем по 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/kdo/default/.

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

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

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

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

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

* где http://dav.dmosk.ru/dav.php/addressbooks/kdo/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/kdo/default/ — путь для запросов к серверу календаря.
  • http://dav.dmosk.ru/dav.php/addressbooks/kdo/default/ — путь для запросов к серверу адресной книги.

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

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

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

Источник

Оцените статью
Adblock
detector