Привет, Хабр! Хочу рассказать тебе о довольно интересной и функциональной замене 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, на мой взгляд, пока что лучше, так что скриншоты этой темы буду выкладывать под спойлерами.

Почта


Основной экран почты:


Chameleon


Так выглядит процедура написания письма:


Chameleon



Контакты



Chameleon



Календарь


А вот так выглядит календарь:


Chameleon



Здесь можно видеть занятость других людей, если они разрешили вам это делать.
К создаваемым событиям можно приглашать других людей, и они будут получать от вас уведомления на почту



Заметки



Chameleon



Списки дел



Chameleon


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

Файловое облако


На данный момент оно весьма пространственное, т.е. вы не сможете выдавать на папки и файлы внешние ссылки на скачивание, так же не рекомендуется загружать сюда большие файлы, однако сохранить файлы из почты «в облако» вы всегда сможете, как и получить доступ к ним по WebDAV.

Если вам нужно что-то большее, вам наверное стоит посмотреть в сторону ownCloud, тем более что с LDAP и Roundcube вам не составит труда интегрировать его в основной интерфейс Kolab в последней версии Kolab добавили возможность интегрировать облако в Seafile


Chameleon



Экран настроек




Chameleon


Настройки вполне стандартные для Roundcube, каждый может выбрать себе тему оформления, которая ему больше нравится. Настроить sieve-правила для входящих писем. Делегировать управление своего ящика кому либо из сотрудников, без участия в этом процессе системного администратора. Для каждого ящика от имени которого пользователь может писать письма, создается отдельный профиль, который можно настроить по своему, например: назначить имя отправителя или поменять подпись.

Папки




Chameleon


Как я уже говорил, все пользовательские данные, включая и списки дел и заметки и события календаря хранятся в IMAP. На первый взгляд это довольно странное решение, но зато мы имеем гибкий механизм управления разрешениями на imap-папки. Можно выдавать разрешения на чтение, запись, изменение отдельной папки вашей почты, так например и отдельного календаря определенным людям, например коллегам из вашего отдела. Можно, например если вы уходите в отпуск, полностью делегировать доступ к вашему аккаунту.

Как только пользователь получит права от вас, ему тоже нужно будет зайти в этот интерфейс и подписаться на расшаренные вами imap-папки.

Альтернативные клиенты и синхронизация


Все это конечно очень приятно, но есть так же и ложка дегтя:
В случае если вы подключите свой почтовый ящик сторонним почтовым клиентом, например Thunderbird, вы увидите все эти папки календарей, среди ваших обычных почтовых папок, но прочитать вы их не сможете, т.к. в нутри этих папок будут только служебные файлы тех же самых календарей. Что как бы намекает, использовать Roundcube в качестве основного почтового клиента, ну он и так неплохо с этой задачей справляется. Кроме того, имеется поддержка протокола ActiveSync для синхронизации этого всего на мобильное устройство, настройки ActiveSync удобно вынесены в Roundcube:



Chameleon


Так же, к каждому календарю или списку контактов, или файловой помойке можно получить DAV-ссылку и использовать ее уже на свое усмотрение в совместимых клиентах.

Есть кстати и официально поддерживаемые десктопный клиент на qt — Kontact, он не столь красивый, как Roundcube но тоже довольно функциональный:



Так же есть дополнение для Thunderbird, оно по мимо почты, добавляет возможность синкать отдельные календари и списки контактов.

Больше разных клиентов и дополнений к ним вы сможете найти здесь.

Админка


Чуть не забыл упомянуть о админке. Админка имеет несколько иной дизайн, но это не делает ее менее функциональной.
В админке можно управлять пользователями, группами, общими папками. Можно например создать группу, которая будет автоматически заполняться на основании информации полученной от другого LDAP-сервера, например AD.



Вот так выглядит процедура добавления пользователя:



Заключение


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

Официальный сайт проекта: kolab.org

Комментарии (22)


  1. HunterXXI
    17.06.2015 17:05
    -2

    Решение на уровне поиграться и выбросить. Весь предоставляемый функционал собирается из стандарных пакетов. А те кто полинивее просто поставят Zimbra.


    1. kvaps Автор
      17.06.2015 17:33
      +4

      А админку вы сами напишите?
      Да, те же списки рассылки легко реализуются в postfix, а календарь и заметки, конечно же, есть в качестве отдельных плагинов к Roundcube, но как вам это поможет администрировать когда пользователей будет чуть больше чем обычно? Здесь пользователь предоставлен сам себе, захотел расшарить папку? — расшарил. Я уже и не говорю про реализацию ActiveSync и прочие плюшки, такие как ресурсы, отображение занятости и т.п.

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


      1. HunterXXI
        18.06.2015 10:54

        Вы изобретаете велосипед. Перечислю недостатки вашего решения — когда пользователей, как вы говорите, станет больше чем обычно:
        1. Отсутсвие ACL на группы рассылки. (кто угодно может прислать на неё письмо)
        2. Нет механизма автоматического создаения почтовой учетной записи по данным из AD.
        3. Ресурсные почтовые ящики где?
        4. Общие календари?
        5. Отказоустойчивость.
        6. Хочу управлять спаморезкой и антивирусом!
        7. Хочу управлять бэкапом из админки.

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


  1. gionet
    17.06.2015 17:19

    Вау.
    Я лично впервые читаю про ваш продукт. Жду второй статьи, интересно


  1. ivanday
    17.06.2015 17:37
    +1

    Некоторое время назад искали замену календарям от Google и рассматривали, в том числе, Kolab — но решение отвалилось из-за того, что не было нормальной поддержки CalDav. Для каждого календаря надо было иметь ссылку, которую необходимо послать другому человеку.
    Остановились на Horde (Kronolith)- там можно шарить календари сразу всем и гибко ими управлять.
    Kolab выглядит, конечно, очень симпатично, но с учетом того, что в веб-морду Horde достаточно зайти один раз, а потом просто подключить все свои календари в любое приложение — это достоинство нивелируется.


  1. almuerto
    17.06.2015 17:54

    Недавно тестировал kolab, очень не хватает такой киллер-фичи как совместное редактирование документов и текстовых таблиц.


    1. kvaps Автор
      17.06.2015 18:47

      Посмотрите в сторону ownCloud, его можно привязать к Kolab'овскому LDAP и при желании интегрировать его интерфейс в Kolab, или наоборот интегрировать интерфейс Kolab'а в интерфейс ownCloud.
      Ищите плагины по словам Roundcube и ownCloud.


  1. Bansher
    17.06.2015 18:51

    Скажите пожалуйста как в работе с Kolab чувствует себя MS Outlook? В частности интересуют календари. Отображаются ли встречи заведенные через веб клиент, можно ли подключить расшаренный календарь и т.д.


  1. m0Ray
    17.06.2015 22:43

    Что насчёт синхронизации с Android? В первую очередь контакты.
    OwnCloud не имеет нормальных способов синхронизации с Android.


    1. kvaps Автор
      18.06.2015 00:06
      +2

      Контакты, календарь и почта, все синхронизируется нормально.
      Правда по умолчанию, ввиду слабой поддержки, для android включен flat-mode, это когда все синхронизируемые списки контактов или календари объеденяются в один.

      Но тем не менее, да, вы увидите все нужные контакты у себя в записной книжке.

      Если ваше устройство все таки поддерживает folder-mode, вы можете внести его название в массив $ext_devices в файле

      /usr/share/kolab-syncroton/lib/kolab_sync_data.php 
      

      В следующей статье расскажу об этом подробнее


    1. zo_oz
      18.06.2015 01:33

      почему? carddav чем плох? живу уже года 3 на нём и не парюсь. (ну да, приложенька для carddav в play market платная, но 30 рублей я отдал спокойно)


      1. m0Ray
        18.06.2015 09:25

        Есть и бесплатные, но все, включая carddav, работают только в одну сторону — из облака на девайс. У меня в девайсе три сотни контактов, и я не нашёл способа залить их в облако. К тому же даже с файлами ownCloud я не смог заставить работать, загрузка с девайса прерывается по неизвестным причинам, в логах пусто. Так что всё это весьма сырое, как я погляжу. А мне некогда плясать с бубном и ждать патчей, мне работать надо.


        1. 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

          и работает в обе стороны.


          1. m0Ray
            18.06.2015 20:40

            Попробую на досуге, благодарю.
            А с файлами на описанные мной грабли не наступали?


  1. heathen
    18.06.2015 09:10

    Интересно о таких вещах послушать в разрезе полной интеграции сетевых сервисов. Exchange хорош не только и, я бы даже сказал, в какой-то степени не столько тем основным функционалом, который имеет, как возможностями интеграции с AD и сопутствующими удобствами (вроде отсутствия необходимости делать индивидуальную настройку каждого клиента и т.п.)


    1. kvaps Автор
      18.06.2015 09:20

      Вы можете настроить и Active Directory в качестве LDAP-бэкэнда, или репликацию пользователей из AD в dirsrv


      1. heathen
        18.06.2015 10:56
        +1

        Это я увидел из текста, спасибо. Но если я сижу на стеке от Microsoft, то в чём смысл этого приложения? Я буду использовать Exchange. Гораздо интереснее — обратите внимание, пожалуйста, на текст выше — описание в разрезе полной интеграции, причём на open source софте. Т.е. как обеспечить единую авторизацию, контроль доступа к различным сервисам, сами сервисы и т.д. С удобными средствами администрирования.


  1. Hoper
    18.06.2015 13:48
    +2

    Тут надо было боооольше описать именно админку и ее возможность а не возможности вебинтерфеса для клента.
    Не пользователь выбирает какой почтовик будет стоять на сервере, а администратор.
    Что может администратор в этом комбайне? Завести ящик…


    1. HunterXXI
      18.06.2015 16:36

      а их, я так понял нет. только красивости. всё остальное надо допиливать ручками через консоль.


  1. Anisotropic
    18.06.2015 14:45

    Хамелеон — симпатичный скин. Встал на обычный раундкуб.


  1. lalbrekht
    18.06.2015 15:43

    Пользуемся веб-мордой для hmail, отличная и удобная штука.


  1. Anisotropic
    23.06.2015 23:53

    Застилил хамелеон в синий: github.com/Anisotropic/Chameleon-blue

    выглядит так:
    image