Привет, Хабр! Хочу рассказать тебе о довольно интересной и функциональной замене MS Exchange, полностью свободной и к тому же с красивой web-мордой. Разговор пойдет про Kolab — свободный почтовый сервер с поддержкой совместной работы, календарей, списков дел, WebDAV, ActiveSync синхронизацией и прочими плюшками, который можно использовать как для работы, так и для дома.
Осторожно, в посте много картинок...
Kolab Groupware (Часть 1 — Обзор)
Kolab Groupware (Часть 2 — Установка)
Что это такое?
Kolab — это свободный почтовый сервер с красивым web-клиентом, внутри которого есть все необходимое для пользователя: почта с поддержкой тегов, адресные книги, заметки, календари, списки дел, файловая помойка и многое другое…
Пользователи могут синхронизировать свою почту, календарь и контакты на мобильное устройство по ActiveSync протоколу.
Так же имеется возможность шарить отдельные папки своей почты, календарей и контактов другим пользователям, так и полностью делегировать доступ к своему почтовому ящику.
Для администрирования этого всего имеется интерфейс, в котором можно: управлять пользователями, группами рассылки и общими папками. Можно создавать так называемые ресурсы, это такой специальный календарь для переговорок или курьеров, у которого можно посмотреть доступность, и забронировать на свободное время.
Имеется так же встроенный LDAP-редактор, с помощью которого можно разрешить или запретить редактировать какие-нибудь поля, например поле primary email — должно генерироваться само, или его можно указать вручную
Что внутри?
Kolab представляет из себя комбайн из таких общеизвестных сервисов как:
- 389 Directory Server — хранение информации о доменах, пользователях и группах, так же здесь хранятся acl и некоторые настройки (при желании можно использовать Active Directory или OpenLDAP)
- Cyrus-imap — IMAP-сервер, в его базе хранятся сами письма, а так же данные календарей, заметок и прочих пользовательских данных
- MySQL — хранит данные необходимые для работы основных служб Kolab и Roundcube
- Postfix — MTA он же SMTP-сервер
- Roundcube — перспективный и весьма популярный web-клиент электронной почты
- Apache — HTTP-сервер по умолчанию (при желании можно заменить на nginx)
- Amavis с Spamassassin и ClamAV — антиспам и антивирусная защита
Так же нескольких собственных сервисов:
- kolab-saslauthd — обеспечивает авторизацию для postfix
- kolab-freebusy — демон занятости
- kolab-syncroton — реализует ActiveSync протокол для синхронизации с устройствами
- iRony — реализует WebDAV, CalDAV и CardDAV протоколы
- wallace — сканирует почту на наличие groupware контента
- Chwala — файловый клиент
- + стопка плагинов к roundcube
Как выглядит?
Ну, перейдем же теперь к обзору. Kolab по умолчанию имеет 2 темы оформления, первая — Larry, это классическая тема для Roundcube, вторая, появилась недавно — Chamelion. Появилась она буквально в последней версии Kolab 3.4 и ее сразу же сделали темой по умолчанию.
На мой взгляд она несколько перегружена, и обычными пользователями воспринимается тяжелее, куда как Larry.
Larry выглядит более стильной и красивой
Нет, Chameleon конечно тоже не плоха, но Larry, на мой взгляд, пока что лучше, так что скриншоты этой темы буду выкладывать под спойлерами.
Почта
Основной экран почты:
Так выглядит процедура написания письма:
Контакты
Календарь
А вот так выглядит календарь:
Здесь можно видеть занятость других людей, если они разрешили вам это делать.
К создаваемым событиям можно приглашать других людей, и они будут получать от вас уведомления на почту
Заметки
Списки дел
Дела так же можно назначать и другим пользователям, в таком случае они получат уведомление в котором должны будут подтвердить свое участие.
Файловое облако
На данный момент оно весьма пространственное, т.е. вы не сможете выдавать на папки и файлы внешние ссылки на скачивание, так же не рекомендуется загружать сюда большие файлы, однако сохранить файлы из почты «в облако» вы всегда сможете, как и получить доступ к ним по WebDAV.
Если вам нужно что-то большее,
Экран настроек
Настройки вполне стандартные для Roundcube, каждый может выбрать себе тему оформления, которая ему больше нравится. Настроить sieve-правила для входящих писем. Делегировать управление своего ящика кому либо из сотрудников, без участия в этом процессе системного администратора. Для каждого ящика от имени которого пользователь может писать письма, создается отдельный профиль, который можно настроить по своему, например: назначить имя отправителя или поменять подпись.
Папки
Как я уже говорил, все пользовательские данные, включая и списки дел и заметки и события календаря хранятся в IMAP. На первый взгляд это довольно странное решение, но зато мы имеем гибкий механизм управления разрешениями на imap-папки. Можно выдавать разрешения на чтение, запись, изменение отдельной папки вашей почты, так например и отдельного календаря определенным людям, например коллегам из вашего отдела. Можно, например если вы уходите в отпуск, полностью делегировать доступ к вашему аккаунту.
Как только пользователь получит права от вас, ему тоже нужно будет зайти в этот интерфейс и подписаться на расшаренные вами imap-папки.
Альтернативные клиенты и синхронизация
Все это конечно очень приятно, но есть так же и ложка дегтя:
В случае если вы подключите свой почтовый ящик сторонним почтовым клиентом, например Thunderbird, вы увидите все эти папки календарей, среди ваших обычных почтовых папок, но прочитать вы их не сможете, т.к. в нутри этих папок будут только служебные файлы тех же самых календарей. Что как бы намекает, использовать Roundcube в качестве основного почтового клиента, ну он и так неплохо с этой задачей справляется. Кроме того, имеется поддержка протокола ActiveSync для синхронизации этого всего на мобильное устройство, настройки ActiveSync удобно вынесены в Roundcube:
Так же, к каждому календарю или списку контактов, или файловой помойке можно получить DAV-ссылку и использовать ее уже на свое усмотрение в совместимых клиентах.
Есть кстати и официально поддерживаемые десктопный клиент на qt — Kontact, он не столь красивый, как Roundcube но тоже довольно функциональный:
Так же есть дополнение для Thunderbird, оно по мимо почты, добавляет возможность синкать отдельные календари и списки контактов.
Больше разных клиентов и дополнений к ним вы сможете найти здесь.
Админка
Чуть не забыл упомянуть о админке. Админка имеет несколько иной дизайн, но это не делает ее менее функциональной.
В админке можно управлять пользователями, группами, общими папками. Можно например создать группу, которая будет автоматически заполняться на основании информации полученной от другого LDAP-сервера, например AD.
Вот так выглядит процедура добавления пользователя:
Заключение
На этом пожалуй все.
Во второй статье читайте про установку сего чуда, начальной конфигурации и некоторых аспектах с которыми я столкнулся при работе с ним
Официальный сайт проекта: kolab.org
Комментарии (22)
ivanday
17.06.2015 17:37+1Некоторое время назад искали замену календарям от Google и рассматривали, в том числе, Kolab — но решение отвалилось из-за того, что не было нормальной поддержки CalDav. Для каждого календаря надо было иметь ссылку, которую необходимо послать другому человеку.
Остановились на Horde (Kronolith)- там можно шарить календари сразу всем и гибко ими управлять.
Kolab выглядит, конечно, очень симпатично, но с учетом того, что в веб-морду Horde достаточно зайти один раз, а потом просто подключить все свои календари в любое приложение — это достоинство нивелируется.
almuerto
17.06.2015 17:54Недавно тестировал kolab, очень не хватает такой киллер-фичи как совместное редактирование документов и текстовых таблиц.
kvaps Автор
17.06.2015 18:47Посмотрите в сторону ownCloud, его можно привязать к Kolab'овскому LDAP и при желании интегрировать его интерфейс в Kolab, или наоборот интегрировать интерфейс Kolab'а в интерфейс ownCloud.
Ищите плагины по словам Roundcube и ownCloud.
Bansher
17.06.2015 18:51Скажите пожалуйста как в работе с Kolab чувствует себя MS Outlook? В частности интересуют календари. Отображаются ли встречи заведенные через веб клиент, можно ли подключить расшаренный календарь и т.д.
m0Ray
17.06.2015 22:43Что насчёт синхронизации с Android? В первую очередь контакты.
OwnCloud не имеет нормальных способов синхронизации с Android.kvaps Автор
18.06.2015 00:06+2Контакты, календарь и почта, все синхронизируется нормально.
Правда по умолчанию, ввиду слабой поддержки, для android включен flat-mode, это когда все синхронизируемые списки контактов или календари объеденяются в один.
Но тем не менее, да, вы увидите все нужные контакты у себя в записной книжке.
Если ваше устройство все таки поддерживает folder-mode, вы можете внести его название в массив $ext_devices в файле
/usr/share/kolab-syncroton/lib/kolab_sync_data.php
В следующей статье расскажу об этом подробнее
zo_oz
18.06.2015 01:33почему? carddav чем плох? живу уже года 3 на нём и не парюсь. (ну да, приложенька для carddav в play market платная, но 30 рублей я отдал спокойно)
m0Ray
18.06.2015 09:25Есть и бесплатные, но все, включая carddav, работают только в одну сторону — из облака на девайс. У меня в девайсе три сотни контактов, и я не нашёл способа залить их в облако. К тому же даже с файлами ownCloud я не смог заставить работать, загрузка с девайса прерывается по неизвестным причинам, в логах пусто. Так что всё это весьма сырое, как я погляжу. А мне некогда плясать с бубном и ждать патчей, мне работать надо.
zo_oz
18.06.2015 13:17я пользуюсь на телефоне (не сочтите за рекламу, я не имею никакого отношения к этому приложению) play.google.com/store/apps/details?id=org.dmfs.carddav.Sync
и беру от owncloud ссылку вида
myownlcloud.domain/remote.php/carddav/addressbooks/MY_IMAP_USERNAME/CONTACTS_FILENAME
и работает в обе стороны.m0Ray
18.06.2015 20:40Попробую на досуге, благодарю.
А с файлами на описанные мной грабли не наступали?
heathen
18.06.2015 09:10Интересно о таких вещах послушать в разрезе полной интеграции сетевых сервисов. Exchange хорош не только и, я бы даже сказал, в какой-то степени не столько тем основным функционалом, который имеет, как возможностями интеграции с AD и сопутствующими удобствами (вроде отсутствия необходимости делать индивидуальную настройку каждого клиента и т.п.)
kvaps Автор
18.06.2015 09:20Вы можете настроить и Active Directory в качестве LDAP-бэкэнда, или репликацию пользователей из AD в dirsrv
heathen
18.06.2015 10:56+1Это я увидел из текста, спасибо. Но если я сижу на стеке от Microsoft, то в чём смысл этого приложения? Я буду использовать Exchange. Гораздо интереснее — обратите внимание, пожалуйста, на текст выше — описание в разрезе полной интеграции, причём на open source софте. Т.е. как обеспечить единую авторизацию, контроль доступа к различным сервисам, сами сервисы и т.д. С удобными средствами администрирования.
Hoper
18.06.2015 13:48+2Тут надо было боооольше описать именно админку и ее возможность а не возможности вебинтерфеса для клента.
Не пользователь выбирает какой почтовик будет стоять на сервере, а администратор.
Что может администратор в этом комбайне? Завести ящик…HunterXXI
18.06.2015 16:36а их, я так понял нет. только красивости. всё остальное надо допиливать ручками через консоль.
Anisotropic
23.06.2015 23:53Застилил хамелеон в синий: github.com/Anisotropic/Chameleon-blue
выглядит так:
HunterXXI
Решение на уровне поиграться и выбросить. Весь предоставляемый функционал собирается из стандарных пакетов. А те кто полинивее просто поставят Zimbra.
kvaps Автор
А админку вы сами напишите?
Да, те же списки рассылки легко реализуются в postfix, а календарь и заметки, конечно же, есть в качестве отдельных плагинов к Roundcube, но как вам это поможет администрировать когда пользователей будет чуть больше чем обычно? Здесь пользователь предоставлен сам себе, захотел расшарить папку? — расшарил. Я уже и не говорю про реализацию ActiveSync и прочие плюшки, такие как ресурсы, отображение занятости и т.п.
Вы безусловно можете собрать почти все тоже самое из стандарных пакетов, порой так даже интереснее, но я совсем не вижу проблем в использовании уже готового продукта, где команда разработчиков, уже все это сделала это за вас, и даже больше.
HunterXXI
Вы изобретаете велосипед. Перечислю недостатки вашего решения — когда пользователей, как вы говорите, станет больше чем обычно:
1. Отсутсвие ACL на группы рассылки. (кто угодно может прислать на неё письмо)
2. Нет механизма автоматического создаения почтовой учетной записи по данным из AD.
3. Ресурсные почтовые ящики где?
4. Общие календари?
5. Отказоустойчивость.
6. Хочу управлять спаморезкой и антивирусом!
7. Хочу управлять бэкапом из админки.
Могу проболжить пообщатся в личке, если Вам интересно услышать чем отличается выш программный продукт от зрелых почтовых решенений.