Автор: Iva Seleš
Екипна комуникация с отворен код в голям мащаб: Mattermost на собствени сървъри

На всеки няколко години някоя компания поглежда фактурата си от Slack, събира цената на потребител, забелязва, че десетилетие вътрешни разговори стоят в чужда база данни под друга юрисдикция, и се пита дали няма друг начин. Има. Mattermost е най-сериозната алтернатива, която можете да хоствате сами, и е такава от доста време.
Това е и инструментът, който най-често се разбира погрешно преди внедряването, защото безплатното издание, което хората смятат, че получават, обикновено не е онова, което накрая използват. Това ръководство обяснява какво всъщност представлява Mattermost, какво наистина включва безплатната версия и кои са трите оперативни проблема, в които се препъва почти всеки, който го хоства за първи път.
Какво е Mattermost
Сървър на Go, база данни PostgreSQL, уеб клиент на React и нативни приложения за настолни компютри и мобилни устройства. Канали, нишки, споделяне на файлове, търсене, команди с наклонена черта (slash commands), входящи и изходящи уебкукита, ботове и рамка за плъгини. Ако сте използвали Slack, ще сте продуктивни за един следобед, както и всички останали, а това тежи повече от всеки списък с функции, когато искате цяла компания да се премести.
Около това ядро стоят Playbooks за работа по инциденти и процеси, водена от контролни списъци, и Calls за аудио, видео и споделяне на екрана. От v11.0 Playbooks изисква някое от търговските издания (безплатното издание Entry също се брои). Каталогът с интеграции обхваща обичайните: GitLab, GitHub, Jira, Jenkins, PagerDuty. ChatOps е областта, в която продуктът е наистина силен, и затова има толкова привърженици сред инженерните и оперативните екипи, както и сред организациите в отбраната и публичния сектор, които изобщо не могат да пуснат трафика си през търговска SaaS услуга.
Важният архитектурен факт е, че всичко това работи върху инфраструктура, която вие избирате. Принципът е същият като при самостоятелното хостване на анализите с Matomo или на автоматизацията на маркетинга с Mautic. Съобщенията са във вашата база данни, файловете са във вашето обектно хранилище и никой не може да промени политиката за съхранение или цената, без да ви попита.
Лицензите, казано ясно
Тук хората се объркват, затова си струва да сме директни.
Team Edition е изданието с отворен код: безплатно, с изпълним файл под лиценза MIT, и повечето, които хостват сами, го използват от години. Получавате съобщения, канали, нишки, търсене, интеграции, уебкукита и рамката за плъгини. Не получавате единен вход (SSO) чрез SAML или AD/LDAP, експорт за целите на съответствието, корпоративно търсене, клъстериране за висока наличност и гостуващи акаунти. От v11.0 (октомври 2025 г.) изданието загуби и единния вход през GitLab и Playbooks, а Mattermost вече го описва като предназначено за малки екипи, ентусиасти и лична употреба, с под 250 активирани потребители и без нужда от единен вход (SSO).
Entry е безплатно търговско издание с функциите на Enterprise Advanced и ограничения за целия сървър. Могат да се преглеждат и търсят само последните 10 000 съобщения в каналите (по-старите остават в базата данни), няма функции за съответствие и висока наличност, а поддръжката е само от общността. Mattermost посочва и още ограничения, които според компанията ще влязат в сила в бъдеща версия: 5 активни изпълнения на playbook месечно, разговори до 40 минути, 10 000 push известия месечно. Изданието е предназначено за екипи с под петдесетина души. То е добър начин да изпробвате платения продукт. И е лош начин да изградите постоянен дом за историята на разговорите в компанията си, защото ограничението на историята е точно онова, което рано или късно започва да ви интересува.
Professional, Enterprise и Enterprise Advanced са платените нива. Professional добавя SSO, многофакторно удостоверяване (MFA) и разширени права, а Mattermost го предлага за екипи до 250 потребители. Enterprise добавя синхронизация с AD/LDAP, автоматизация на съответствието, корпоративно търсене, висока наличност и Playbooks в голям мащаб. Enterprise Advanced добавя работа с класифицирана информация, контроли по модела нулево доверие (zero trust) и внедряване в изолирана от мрежата среда (air-gapped), а това е нивото, което използват отбраната и държавните институции. Mattermost вече не публикува цени на потребител, затова предвидете разговор с търговския отдел.
Решението беше по-просто, отколкото подсказва списъкът с нива, но v11 го промени. При под около 250 души, с локални акаунти и без изискване за единен вход, Team Edition все още върши работа. Всеки единен вход (SAML, AD/LDAP, а вече и GitLab) означава търговско издание: Entry, докато ограниченията му ви стигат, а след това Professional или Enterprise. Временното решение, което Mattermost предложи за входа през GitLab, беше да останете на версията с удължена поддръжка v10.11, а нейният жизнен цикъл приключи на 15 август 2026 г. Голяма организация или такава с изисквания за съответствие, съхранение на данни или висока наличност трябва да планира и да заложи в бюджета си Enterprise от самото начало.
Настройка
Малко внедряване
За екип от няколко десетки до няколкостотин души един добре оразмерен VPS наистина е достатъчен. Според собствените указания на Mattermost за един до хиляда потребители стигат един vCPU и 2 GB RAM, което е оптимистично, както винаги са минималните изисквания на доставчиците. Дайте му четири ядра и 8 GB и повече няма да се сещате за това.
Стекът е Mattermost, PostgreSQL и обратен прокси сървър, който терминира TLS. Traefik с Let's Encrypt изисква най-малко работа:
services:
mattermost:
image: mattermost/mattermost-team-edition:release-11.7
restart: unless-stopped
environment:
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:your_secure_password@db:5432/mattermost?sslmode=disable
- MM_SERVICESETTINGS_SITEURL=https://chat.example.com
volumes:
- mm_data:/mattermost/data
- mm_config:/mattermost/config
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=mmuser
- POSTGRES_PASSWORD=your_secure_password
- POSTGRES_DB=mattermost
volumes:
- db_data:/var/lib/postgresql/data
volumes:
mm_data:
mm_config:
db_data:
Задайте правилно SiteURL, преди да поканите когото и да било. Грешен или липсващ SiteURL чупи push известията, OAuth обратните извиквания и прегледите на връзки по начини, които по-късно е досадно да се отстраняват, а сега е елементарно да се избегнат.
Едно уточнение, което си струва да повторим, защото и доставчикът го казва: контейнерите са подходящи за изпробване и за малки продукционни инсталации, но пътят с контейнери не ви дава клъстериране или висока наличност наготово. Ако ви трябват, внедрете директно на Linux или използвайте оператора за Kubernetes. Фиксирайте образа към определена линия от версии, както съветва официалното ръководство за Docker: примерът използва 11.7, текущата версия с удължена поддръжка, защото latest ще премине на v12 в деня, в който тя излезе.
Продукционно внедряване
PostgreSQL 14 е минималната версия за v11. Версия 12.0, планирана за 14 октомври 2026 г., вдига минимума до PostgreSQL 15, затова започнете с 15 или по-нова (примерът по-горе използва 16). Поддръжката на MySQL приключи с v11.0 през октомври 2025 г., така че MySQL не е вариант за нова инсталация. Amazon Aurora PostgreSQL се поддържа и е разумният управляван вариант в AWS. Ако инсталирате директно на Linux, имайте предвид, че v11.11 (септември 2026 г.) е последната версия с поддръжка на RHEL 7 и RHEL 8.
Съхранявайте файловете в S3-съвместимо обектно хранилище от първия ден. Локалната файлова система работи и е по подразбиране, но точно тя неусетно прави сървъра ви зависим от състоянието му, резервните копия огромни, а миграцията мъчителна. Смяната по-късно означава преместване на файлове и пренаписване на пътища. Смяната при инсталацията означава задаване на няколко конфигурационни стойности.
За висока наличност ви трябва нивото Enterprise: няколко възела с приложението зад балансьор на натоварването, споделено обектно хранилище и база данни с реплики за четене. За търсене в голям мащаб ви трябва Elasticsearch или OpenSearch, също в Enterprise. Пълнотекстовото търсене на PostgreSQL е напълно достатъчно за няколкостотин души и няколко милиона съобщения, а търсенето на китайски, японски и корейски (CJK) вече работи по подразбиране с PostgreSQL, което преди беше реална причина да се купи добавката за търсене.
Трите неща, които се объркват
Всичко дотук е в документацията. Следващото е онова, което хората откриват в продукционна среда.
Push известията не са безплатни по начина, по който очаквате
Мобилните push известия трябва да минат през мрежите на Apple и Google, което означава, че някой трябва да държи сертификатите за подписване. Mattermost поддържа тестова услуга за push известия (Test Push Notification Service), която работи веднага и изрично не е за продукционна среда. Хостваната услуга за push известия (Hosted Push Notification Service) е продукционната и идва с платен лиценз.
Третият вариант е да пуснете собствен push прокси. Той е добре документиран и напълно постижим, но означава да изградите и разпространявате собствено мобилно приложение със собствени идентификационни данни за Firebase и APNs, а това е отношение с магазините за приложения и процес на издаване на версии, не работа за един следобед.
Решете кой от трите варианта използвате, преди да пуснете системата на телефоните, а не след като първият човек попита защо получава съобщения само когато приложението е отворено. Само този проблем е причина за повече изоставени миграции към Mattermost от всичко останало.
За разговорите не стига един порт
Calls има два режима. Интегрираният режим пуска медийната услуга в самия сървър на Mattermost и е препоръчителен при под около петдесет активни потребители. Над тази граница ви трябва rtcd, отделна услуга, която държи медийния трафик на разговорите извън основния сървър и се мащабира хоризонтално. rtcd изисква Enterprise.
И в двата случая клиентите трябва да достигат медийната услуга по UDP на порт 8443, а този порт трябва да е отворен на хоста, на който работи медийната услуга. Обратният ви прокси сървър nginx няма да го препрати, защото nginx не е в пътя на UDP трафика. Половината теми от рода на „разговорите не се свързват“ се свеждат до правило в защитната стена, което така и не е добавено.
В безплатното ниво очаквайте разговори един на един с ограничение във времето, а не неограничени групови разговори. Ако видеовръзката за цялата компания е изискване, заложете я в цената.
Някой трябва да го поддържа
Честното сравнение на разходите не е лиценз срещу нула. То е лиценз срещу инфраструктура плюс човека, който я поддържа с корекции. Mattermost издава нова версия с функции всеки месец (към 10 октомври 2026 г. актуалната е 11.11, а версията с удължена поддръжка е 11.7), по съображения за сигурност ще искате да сте актуални, а обновяванията включват миграции на базата данни, които трябва да тествате някъде извън продукционната среда.
За екип, който вече поддържа собствена инфраструктура, това е незначителна работа и икономиката е безспорно в полза на самостоятелното хостване. За компания от десет души без оперативен капацитет фактурата за SaaS може наистина да излезе по-евтина от следобедите, прекарани в поддръжка. Бъдете честни към себе си кой от двата случая сте.
Преминаване от Slack
Mattermost може да импортира файлове с експорт от Slack и това работи, но с уговорки, които е добре да знаете предварително. Съобщенията от публичните канали и потребителите се пренасят добре. Частните канали и личните съобщения зависят от това какво изобщо ви позволява да експортирате планът ви в Slack. Нишките, прикачените файлове, собствените емоджита и интеграциите изискват внимание, а някои от тях трябва да се изградят наново.
Подходът, който работи: импортирайте историята като архив, в който хората могат да търсят, и приемете датата на преминаване за чисто начало. Опитът да възпроизведете точно всяко поведение на Slack е начинът двуседмична миграция да се превърне в двутримесечна.
Използвайте двете системи паралелно две седмици, преместете първо един екип и още в началото обявете публично датата на изключване. Миграциите на чат системи се провалят по социални, а не по технически причини.
Европейският аспект
За компаниите в ЕС въпросът не е само в разходите. Самостоятелното хостване поставя вътрешната ви комуникация в граница, която вие контролирате, а това променя няколко разговора едновременно: анализа на предаването на данни по ОРЗД, проверката на веригата на доставки по NIS2 и въпросите за суверенитета, които все по-често се появяват в обществените поръчки и са цялата тема на Акта за развитие на облака и ИИ.
Вътрешният чат е едно от местата с най-гъста концентрация на поверителна информация в една компания. В него има подробности за инциденти, имена на клиенти, данни за достъп, които хората не е трябвало да поставят, но са поставили, и всички текущи търговски преговори. Когато някой попита къде се намират тези данни, възможността да отговорите с регион и сървърен шкаф, а не със списък с подизпълнители, има стойност.
Кога не си струва
Ако компанията ви е от петнадесет души, изискванията за съответствие са леки и никой не иска да отговаря за сървър, използвайте SaaS. Спестяванията няма да покрият вниманието, което ще ви отнеме.
Ако ви трябва дълбока интеграция с екосистема, в която вече живеете, преценете внимателно какво бихте загубили. Екипите в среда на Microsoft 365 получават безплатно много неща, които иначе бихте изграждали наново.
А ако двигателят е неприязънта на един шумен човек към някой доставчик, а не реално изискване за разходи, контрол или юрисдикция, миграцията ще спре при около шестдесет процента приемане, което е най-лошият възможен резултат за инструмент за комуникация.
Как можем да помогнем
Внедряваме и поддържаме инфраструктура с отворен код на собствени сървъри за компании, които работят в Европа, включително неблестящите части: push проксита, миграции към обектно хранилище, пътища за обновяване и интеграцията с управлението на идентичността, благодарение на която въвеждането на чат системата наистина се приема.
Ако искате правилно оразмерено внедряване на Mattermost, миграция от Slack, планирана от човек, който вече го е правил, или честен отговор дали самостоятелното хостване си струва за екипа ви, пишете ни на office@c9group.dev. Повече за работата ни с инфраструктура ще намерите на страницата за оптимизация на разходите в AWS.
Ако сглобявате цялостен стек на собствени сървъри, същите съображения важат и за анализите, и за автоматизацията на маркетинга.
Публикувано: 8 август 2026 г. (обновено на 10 октомври 2026 г.) Категории: Сътрудничество, Отворен код, Поверителност
Съвместна работа
Нови ръководства и промени в правилата по имейл
Когато се промени правило, премести се срок или публикуваме ново ръководство, ви го изпращаме по имейл.