Timska komunikacija otvorenog koda u velikom obimu: Mattermost na sopstvenoj infrastrukturi

Svakih nekoliko godina neka firma pogleda račun za Slack, sabere cenu po korisniku, primeti da decenija interne komunikacije leži u tuđoj bazi podataka i u tuđoj jurisdikciji, i zapita se postoji li drugi način. Postoji. Mattermost je najozbiljniji odgovor koji hostujete sami, i to je već duže vreme.
Ujedno je i alat koji se najčešće pogrešno razume pre uvođenja, jer besplatno izdanje koje mislite da dobijate obično nije ono koje na kraju vrtite. Ovaj vodič govori o tome šta Mattermost zapravo jeste, šta besplatna verzija stvarno sadrži i koja tri operativna problema stižu skoro svakoga ko ga prvi put postavlja sam.
Šta je Mattermost
Server u Go jeziku, PostgreSQL baza, veb klijent u Reactu i nativne desktop i mobilne aplikacije. Kanali, niti, deljenje fajlova, pretraga, slash komande, dolazni i odlazni webhook-ovi, botovi i okvir za dodatke. Ko je koristio Slack biće produktivan za jedno popodne, a i svi ostali, što vredi više od bilo kog spiska funkcija kada tražite od cele firme da se preseli.
Oko tog jezgra stoje Playbooks, za rad na incidentima i procesima vođen čeklistama, i Calls, za audio, video i deljenje ekrana. Katalog integracija pokriva uobičajene osumnjičene: GitLab, GitHub, Jira, Jenkins, PagerDuty. U ChatOps oblasti proizvod je zaista jak, i zato ima toliko poklonika među inženjerskim i operativnim timovima, kao i među odbrambenim i javnim organizacijama koje svoj saobraćaj uopšte ne smeju da stave u komercijalni SaaS.
Arhitektonski važna činjenica je da sve to radi na infrastrukturi koju vi birate. Isti princip kao kod sopstvenog hostovanja analitike sa Matomom ili marketing automatizacije sa Mautic-om. Poruke su u vašoj bazi, fajlovi u vašem objektnom skladištu, i niko ne može da promeni politiku čuvanja ili cenu a da vas ne pita.
Slika licenciranja, rečeno bez uvijanja
Tu nastaje najviše zabune, pa da budemo direktni.
Team Edition je ono što je otvorenog koda. MIT licenca, besplatno, bez ograničenja broja korisnika, i to je ono što većina onih koji hostuju sami zaista vrti. Dobijate poruke, kanale, niti, pretragu, integracije, webhook-ove i okvir za dodatke. Ne dobijate jedinstvenu prijavu preko SAML-a ili AD/LDAP-a, izvoz za usklađenost, enterprise pretragu, klaster visoke dostupnosti ni gostujuće naloge.
Entry je besplatno komercijalno izdanje. Otključava napredni skup funkcija ali vas ograničava: istorija poruka je limitirana, broj pokretanja playbook-ova je limitiran, podrška je samo zajednička, a namenjeno je timovima ispod nekih pedeset ljudi. Kao način da procenite plaćeni proizvod, to je dobro. Kao način da izgradite trajan dom za istoriju komunikacije firme, loše je, jer se ograničenje istorije odnosi tačno na ono do čega vam na kraju bude stalo.
Professional, Enterprise i Enterprise Advanced su plaćeni nivoi. Professional dodaje SSO, MFA i napredne dozvole. Enterprise dodaje AD/LDAP sinhronizaciju, automatizaciju usklađenosti, enterprise pretragu, visoku dostupnost i Playbooks u obimu. Enterprise Advanced dodaje rukovanje poverljivim informacijama, zero trust kontrole i uvođenje u izolovanim mrežama, i to je nivo na kom sede korisnici iz odbrane i uprave. Mattermost više ne objavljuje cenu po korisniku, pa računajte na razgovor sa prodajom.
Odluka pred kojom je većina timova jednostavnija je nego što spisak nivoa sugeriše. Ako vam treba SAML prema vašem provajderu identiteta, plaćaćete. Ako možete da živite sa lokalnim nalozima ili GitLab OAuth-om, Team Edition će izneti iznenađujuće veliku organizaciju.
Postavljanje
Mala instalacija
Za tim od nekoliko desetina do nekoliko stotina ljudi jedan pristojno dimenzionisan VPS zaista je dovoljan. Sam Mattermost za jedan do hiljadu korisnika navodi jedan vCPU i 2 GB RAM-a, što je optimistično onako kako proizvođački minimumi uvek jesu. Dajte mašini četiri jezgra i 8 GB i nikada više nećete misliti o njoj.
Stek čine Mattermost, PostgreSQL i reverzni proksi koji terminira TLS. Traefik sa Let's Encrypt-om traži najmanje posla:
services:
mattermost:
image: mattermost/mattermost-team-edition:latest
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:
Postavite SiteURL ispravno pre nego što bilo koga pozovete. Pogrešan ili nepostojeći SiteURL lomi push obaveštenja, OAuth povratne pozive i pregled linkova, na način koji je kasnije mučan za otklanjanje a sada se izbegava u jednom potezu.
Jednu ogradu vredi ponoviti, jer je i proizvođač izgovara: kontejneri su u redu za procenu i za male produkcione instalacije, ali taj put vam ne daje klasterovanje ni visoku dostupnost sam od sebe. Ako vam trebaju, instalirajte direktno na Linuksu ili koristite Kubernetes operator.
Produkciona instalacija
PostgreSQL 14 ili noviji. Podrška za MySQL se ukida počev od v11, pa ako sada nešto postavljate, nemojte kretati od MySQL-a. Amazon Aurora PostgreSQL je podržan i razumna je upravljana opcija na AWS-u.
Fajlove smestite u objektno skladište kompatibilno sa S3 od prvog dana. Lokalni fajl sistem radi i podrazumevan je, i on je ujedno ono što tiho vezuje stanje za vaš server, čini rezervne kopije ogromnim a migraciju bolnom. Preseljenje kasnije znači premeštanje fajlova i prepisivanje putanja. Preseljenje pri instalaciji znači postavljanje nekoliko vrednosti u konfiguraciji.
Za visoku dostupnost treba vam Enterprise nivo: više aplikacionih čvorova iza balansera opterećenja, deljeno objektno skladište i baza sa replikama za čitanje. Za pretragu u obimu želećete Elasticsearch ili OpenSearch, takođe Enterprise. Pretraga celog teksta u PostgreSQL-u sasvim je dovoljna za nekoliko stotina ljudi i nekoliko miliona poruka, a CJK pretraga sada radi podrazumevano na PostgreSQL-u, što je nekada bio stvaran razlog da se kupi dodatak za pretragu.
Tri stvari koje krenu naopako
Sve gore stoji u dokumentaciji. Ovo su delovi koje ljudi otkriju u produkciji.
Push obaveštenja nisu besplatna onako kako očekujete
Mobilni push mora da prođe kroz mreže Apple-a i Google-a, što znači da nešto mora da drži sertifikate za potpisivanje. Mattermost drži Test Push Notification Service koji radi odmah i koji izričito nije za produkciju. Hosted Push Notification Service je produkcioni i dolazi uz plaćenu licencu.
Treća mogućnost je sopstveni push proksi. Dobro je dokumentovana i sasvim izvodljiva, ali podrazumeva da gradite i distribuirate sopstvenu mobilnu aplikaciju sa sopstvenim Firebase i APNs akreditivima, a to je odnos sa prodavnicama aplikacija i proces izdavanja, ne jedno popodne.
Odlučite koju od tri pre nego što uvedete alat na telefone, a ne pošto prva osoba pita zašto poruke stižu samo dok je aplikacija otvorena. Ta jedna stavka obara više migracija na Mattermost nego bilo šta drugo.
Calls traži više od jednog porta
Calls ima dva režima. Integrisani režim vrti medijski servis unutar Mattermost servera i preporučuje se ispod nekih pedeset aktivnih korisnika. Iznad toga želite rtcd, zaseban servis koji medijski saobraćaj drži van glavnog servera i skalira se horizontalno. rtcd zahteva Enterprise.
U oba slučaja klijenti moraju da dosegnu medijski servis preko UDP-a na portu 8443, a taj port mora biti otvoren na mašini na kojoj taj servis radi. Vaš nginx reverzni proksi ga neće proslediti, jer nginx uopšte nije na UDP putanji. Pola tema tipa „pozivi se ne uspostavljaju” svodi se na pravilo firewall-a koje nikada nije dodato.
Na besplatnom nivou očekujte razgovore jedan na jedan sa vremenskim ograničenjem, a ne neograničene grupne pozive. Ako je video za celu firmu zahtev, uračunajte ga.
Neko mora da ga održava
Pošteno poređenje troškova nije licenca naspram nule. To je licenca naspram infrastrukture plus osoba koja je krpi. Mattermost izdaje često, iz bezbednosnih razloga želećete da budete u toku, a nadogradnje nose migracije baze koje je bolje isprobati negde gde nije produkcija.
Za tim koji ionako vodi sopstvenu infrastrukturu ovo je rubni posao i račun izlazi ubedljivo. Za firmu od deset ljudi bez operativnog kapaciteta SaaS račun može stvarno da bude jeftiniji od izgubljenih utoraka. Budite iskreni koji ste od to dvoje.
Odlazak sa Slacka
Mattermost ima put uvoza iz Slack izvoznih fajlova, i on radi, uz ograde koje je dobro znati unapred. Poruke iz javnih kanala i korisnici prelaze dobro. Privatni kanali i direktne poruke zavise od toga šta vam vaš Slack plan uopšte dozvoljava da izvezete. Niti, prilozi, sopstveni emodžiji i integracije traže pažnju, a neke od njih treba graditi iznova.
Pristup koji radi: uvezite istoriju kao arhivu koja se pretražuje i tretirajte datum prelaska kao čist početak. Pokušaj da se svako ponašanje Slacka preslika u dlaku način je na koji migracija od dve nedelje postane migracija od dva kvartala.
Pustite oba sistema uporedo dve nedelje, prvo preselite jedan tim, i datum gašenja objavite javno već na početku. Migracije komunikacionih alata propadaju socijalno, ne tehnički.
Evropski ugao
Za firme u EU ovo nije samo pitanje troška. Sopstveno hostovanje smešta internu komunikaciju unutar granice koju vi kontrolišete, a to menja nekoliko razgovora odjednom: analizu prenosa po GDPR-u, proveru lanca snabdevanja po NIS2 i pitanja suvereniteta koja se sve češće pojavljuju u javnim nabavkama i koja su cela tema Cloud and AI Development Act-a.
Interni čet je jedna od najgušćih koncentracija poverljivog materijala koju firma ima. Tu su detalji incidenata, imena klijenata, akreditivi koje niko nije smeo da nalepi ali jeste, i svaki pregovor koji je u toku. Kada neko pita gde ti podaci žive, vredi moći odgovoriti imenom regiona i serverskog ormana umesto spiskom podobrađivača.
Kada ne vredi
Ako vas je petnaestoro, zahtevi usklađenosti su blagi i niko ne želi da vodi računa o serveru, uzmite SaaS. Ušteda neće pokriti pažnju.
Ako vam treba duboka integracija sa ekosistemom u kom već živite, dobro pogledajte šta biste izgubili. Timovi unutar Microsoft 365 okruženja dobijaju besplatno mnogo toga što biste morali da gradite iznova.
A ako je pokretač odbojnost jedne glasne osobe prema dobavljaču umesto stvarnog zahteva oko troška, kontrole ili jurisdikcije, migracija će stati na nekih šezdeset odsto prihvaćenosti, a to je za komunikacioni alat najgori mogući ishod.
Kako možemo da pomognemo
Postavljamo i održavamo sopstveno hostovanu infrastrukturu otvorenog koda za firme koje posluju u Evropi, uključujući i one neatraktivne delove: push proksije, migracije na objektno skladište, puteve nadogradnje i integraciju identiteta zbog koje uvođenje četa uopšte zaživi.
Ako želite Mattermost instalaciju dimenzionisanu kako treba, migraciju sa Slacka koju planira neko ko ju je već radio, ili pošten odgovor na pitanje isplati li se vašem timu sopstveno hostovanje, pišite na office@c9group.dev. Više o našem radu na infrastrukturi na stranici o optimizaciji AWS troškova.
Ako sastavljate ceo sopstveno hostovani stek, isto rezonovanje važi za analitiku i za marketing automatizaciju.
Objavljeno: 8. avgust 2026. Kategorije: Saradnja, Otvoreni kod, Privatnost