Av Iva Seleš
Teamchatt med öppen källkod i stor skala: kör Mattermost själv

Med några års mellanrum tittar ett företag på sin Slack-faktura, räknar ihop kostnaden per licens, inser att tio års interna samtal ligger i någon annans databas i en annan jurisdiktion och frågar sig om det finns något annat sätt. Det gör det. Mattermost är det mest trovärdiga alternativet i egen drift, och har varit det ett tag.
Det är också det verktyg som oftast missförstås före driftsättningen, eftersom den kostnadsfria version folk tror att de får sällan är den de till slut kör. Den här guiden handlar om vad Mattermost faktiskt är, vad gratisversionen verkligen innehåller och de tre driftproblem som drabbar nästan alla som driftar det själva för första gången.
Vad Mattermost är
En server skriven i Go, en PostgreSQL-databas, en webbklient i React samt appar för dator och mobil. Kanaler, trådar, fildelning, sökning, snedstreckskommandon, inkommande och utgående webhooks, bottar och ett ramverk för plugins. Har du använt Slack är du produktiv på en eftermiddag, och det är alla andra också, vilket betyder mer än någon funktionslista när du ber ett helt företag att flytta.
Runt kärnan finns Playbooks för checklistestyrt arbete med incidenter och processer, och Calls för ljud, video och skärmdelning. Sedan v11.0 kräver Playbooks någon av de kommersiella utgåvorna (den kostnadsfria Entry räknas). Katalogen med integrationer täcker de vanliga: GitLab, GitHub, Jira, Jenkins, PagerDuty. ChatOps är där produkten är riktigt stark, och därför har den så många anhängare bland utvecklings- och driftteam, och bland försvars- och myndighetsorganisationer som över huvud taget inte kan lägga sin trafik i en kommersiell SaaS-tjänst.
Det viktiga arkitektoniska faktumet är att allt körs på infrastruktur som du väljer. Samma princip som när du driftar din webbanalys själv med Matomo eller din marknadsautomation med Mautic. Meddelandena ligger i din databas, filerna i din objektlagring, och ingen kan ändra lagringspolicyn eller priset utan att fråga dig.
Licenserna, rakt på sak
Det är här folk blir förvirrade, så det är värt att vara tydlig.
Team Edition är den med öppen källkod: gratis, med binären under MIT-licensen, och de flesta som driftar Mattermost själva har kört den i åratal. Du får meddelanden, kanaler, trådar, sökning, integrationer, webhooks och ramverket för plugins. Du får inte enkel inloggning via SAML eller AD/LDAP, export för regelefterlevnad, enterprise-sökning, kluster för hög tillgänglighet eller gästkonton. Sedan v11.0 (oktober 2025) har den också förlorat enkel inloggning via GitLab och Playbooks, och Mattermost beskriver den nu som avsedd för små team, hobbyanvändare och privat bruk, under 250 aktiverade användare och där enkel inloggning (SSO) inte krävs.
Entry är en kostnadsfri kommersiell utgåva med funktionerna från Enterprise Advanced och begränsningar för hela servern. Bara de senaste 10 000 kanalmeddelandena går att visa eller söka i (äldre ligger kvar i databasen), det finns inga funktioner för regelefterlevnad och ingen hög tillgänglighet, och supporten sker bara via communityn. Mattermost listar fler tak som enligt företaget börjar gälla i en kommande version: 5 aktiva playbook-körningar i månaden, samtal på 40 minuter, 10 000 push-notiser i månaden. Utgåvan riktar sig till team under ungefär femtio personer. Den är ett bra sätt att utvärdera den betalda produkten. Den är ett dåligt sätt att bygga ett permanent hem för företagets samtalshistorik, eftersom det är just historiken som du till slut bryr dig om.
Professional, Enterprise och Enterprise Advanced är de betalda nivåerna. Professional lägger till SSO, MFA och avancerade behörigheter, och Mattermost riktar den till team på upp till 250 användare. Enterprise lägger till synkronisering med AD/LDAP, automatiserad regelefterlevnad, enterprise-sökning, hög tillgänglighet och Playbooks i stor skala. Enterprise Advanced lägger till hantering av säkerhetsskyddsklassificerad information, zero trust-kontroller och driftsättning i isolerade nätverk (air-gapped), och det är den nivån som försvars- och myndighetsanvändarna har. Mattermost publicerar inte längre några priser per licens, så räkna med ett säljsamtal.
Beslutet brukade vara enklare än listan över nivåer antyder, och v11 ändrade på det. Under ungefär 250 personer, med lokala konton och utan krav på enkel inloggning, gör Team Edition fortfarande jobbet. All enkel inloggning (SAML, AD/LDAP och numera även GitLab) innebär en kommersiell utgåva: Entry så länge dess begränsningar räcker, därefter Professional eller Enterprise. Den nödlösning Mattermost erbjöd för inloggning via GitLab var att stanna på versionen v10.11 med förlängd support, och den versionen nådde slutet av sin livslängd den 15 augusti 2026. En stor organisation, eller en med krav på regelefterlevnad, lagring eller hög tillgänglighet, bör planera och budgetera för Enterprise från början.
Så sätter du upp det
En liten installation
För ett team på några tiotal upp till ett par hundra personer räcker faktiskt en enda välutrustad VPS. Mattermosts egna riktlinjer anger en vCPU och 2 GB RAM för upp till tusen användare, vilket är optimistiskt på det sätt som leverantörers minimikrav alltid är. Ge den fyra kärnor och 8 GB, så behöver du aldrig tänka på det igen.
Stacken består av Mattermost, PostgreSQL och en reverse proxy som terminerar TLS. Traefik med Let's Encrypt är minst arbete:
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:
Ställ in SiteURL rätt innan du bjuder in någon. En felaktig eller saknad SiteURL förstör push-notiser, OAuth-callbacks och förhandsvisningar av länkar på sätt som är besvärliga att felsöka senare och enkla att undvika nu.
En reservation som tål att upprepas, eftersom leverantören själv säger samma sak: containrar fungerar bra för utvärdering och för små produktionsinstallationer, men containervägen ger dig inte kluster eller hög tillgänglighet direkt. Behöver du det, installera direkt på Linux eller använd Kubernetes-operatorn. Lås avbilden till en versionslinje, som den officiella Docker-guiden råder: exemplet använder 11.7, den aktuella versionen med förlängd support, eftersom latest flyttar till v12 samma dag som den släpps.
En produktionsinstallation
PostgreSQL 14 är minimum i v11. Version 12.0, planerad till 14 oktober 2026, höjer kravet till PostgreSQL 15, så börja på 15 eller nyare (exemplet ovan använder 16). Stödet för MySQL upphörde med v11.0 i oktober 2025, så MySQL är inget alternativ för en ny installation. Amazon Aurora PostgreSQL stöds och är det förnuftiga hanterade alternativet på AWS. Installerar du direkt på Linux, observera att v11.11 (september 2026) är den sista versionen med stöd för RHEL 7 och RHEL 8.
Lägg filerna i S3-kompatibel objektlagring från första dagen. Det lokala filsystemet fungerar och är standard, men det är också det som i det tysta gör din server tillståndsbärande, dina backuper enorma och din migrering smärtsam. Att byta senare innebär att flytta filer och skriva om sökvägar. Att byta vid installationen innebär att ställa in en handfull konfigurationsvärden.
För hög tillgänglighet behöver du Enterprise-nivån: flera applikationsnoder bakom en lastbalanserare, en delad objektlagring och en databas med läsrepliker. För sökning i stor skala vill du ha Elasticsearch eller OpenSearch, också det Enterprise. PostgreSQL:s fulltextsökning räcker för några hundra personer och några miljoner meddelanden, och sökning på kinesiska, japanska och koreanska fungerar nu som standard i PostgreSQL, vilket tidigare var ett verkligt skäl att köpa sökningstillägget.
De tre sakerna som går fel
Allt ovan står i dokumentationen. Det här är delarna som folk upptäcker i produktion.
Push-notiser är inte gratis på det sätt du tror
Mobil push måste gå via Apples och Googles nätverk, vilket betyder att någon måste ha signeringscertifikaten. Mattermost driver en Test Push Notification Service som fungerar direkt och som uttryckligen inte är avsedd för produktion. Hosted Push Notification Service är den för produktion, och den följer med en betald licens.
Det tredje alternativet är att köra en egen push-proxy. Det är väl dokumenterat och fullt genomförbart, men det innebär att du bygger och distribuerar en egen mobilapp med egna Firebase- och APNs-uppgifter, vilket är en relation med apputikerna och en releaseprocess, inte en eftermiddags arbete.
Bestäm vilket av de tre alternativen du kör innan du rullar ut till telefonerna, inte efter att den första personen frågar varför meddelandena bara kommer när appen är öppen. Den här enda frågan ligger bakom fler övergivna Mattermost-migreringar än något annat.
Calls kräver mer än en port
Calls har två lägen. Det integrerade läget kör medietjänsten inne i Mattermost-servern och rekommenderas under ungefär femtio aktiva användare. Över det vill du ha rtcd, en separat tjänst som håller samtalsmedia borta från huvudservern och skalar horisontellt. rtcd kräver Enterprise.
I båda fallen måste klienterna nå medietjänsten över UDP på port 8443, och den porten måste vara öppen på den värd som kör medietjänsten. Din nginx-reverse proxy vidarebefordrar den inte, eftersom nginx inte ligger i UDP-vägen. Hälften av alla trådar om att ”samtalen kopplas inte upp” handlar till slut om en brandväggsregel som aldrig lades till.
På gratisnivån ska du räkna med samtal mellan två personer med tidsgräns snarare än obegränsade gruppsamtal. Är video för hela företaget ett krav, räkna in det i priset.
Någon måste drifta det
Den ärliga kostnadsjämförelsen är inte licens mot noll. Det är licens mot infrastruktur plus personen som patchar den. Mattermost släpper en funktionsversion varje månad (den 10 oktober 2026 är den aktuella 11.11, och versionen med förlängd support är 11.7), du vill hålla dig uppdaterad av säkerhetsskäl, och uppgraderingar innebär databasmigreringar som du bör testa någon annanstans än i produktion.
För ett team som redan driftar sin egen infrastruktur är det här ett marginellt arbete och kalkylen talar sitt tydliga språk. För ett företag på tio personer utan driftkapacitet kan en SaaS-faktura faktiskt vara billigare än alla tisdagseftermiddagar. Var ärlig om vilket av dem du är.
Flytta från Slack
Mattermost har en importväg från Slacks exportfiler, och den fungerar, med förbehåll som är värda att känna till i förväg. Meddelanden i öppna kanaler och användare följer med bra. Privata kanaler och direktmeddelanden beror på vad din Slack-plan över huvud taget låter dig exportera. Trådar, bifogade filer, egna emojier och integrationer kräver uppmärksamhet, och en del av dem måste byggas om.
Det angreppssätt som fungerar: importera historiken som ett arkiv som folk kan söka i, och se bytesdagen som en ny start. Att försöka återskapa varje Slack-beteende exakt är hur en migrering på två veckor blir en på två kvartal.
Kör båda parallellt i två veckor, flytta ett team först och spika avstängningsdatumet offentligt redan från början. Chattmigreringar misslyckas socialt snarare än tekniskt.
Det europeiska perspektivet
För företag i EU handlar det här inte bara om kostnad. Egen drift placerar din interna kommunikation innanför en gräns som du kontrollerar, och det ändrar formen på flera diskussioner på en gång: analysen av tredjelandsöverföringar enligt dataskyddsförordningen (GDPR), granskningen av leverantörskedjan enligt NIS2 och de suveränitetsfrågor som allt oftare dyker upp i offentlig upphandling och som är hela ämnet för Cloud and AI Development Act.
Intern chatt är en av de tätaste samlingarna av konfidentiellt material ett företag har. Där finns detaljer om incidenter, kundnamn, inloggningsuppgifter som folk inte borde ha klistrat in men gjorde, och varje pågående affärsförhandling. När någon frågar var de uppgifterna finns är det värt något att kunna svara med en region och ett rack i stället för en lista över underbiträden.
När det inte är värt besväret
Är ni femton personer i företaget, era krav på regelefterlevnad lätta och ingen vill ansvara för en server, använd SaaS-tjänsten. Besparingen täcker inte den uppmärksamhet det kräver.
Behöver du djup integration med ett ekosystem som du redan lever i, titta noga på vad du skulle förlora. Team i en Microsoft 365-miljö får mycket på köpet som du annars skulle behöva bygga om.
Och om drivkraften är en högljudd persons motvilja mot en leverantör snarare än ett verkligt krav kring kostnad, kontroll eller jurisdiktion, kommer migreringen att stanna vid ungefär sextio procents användning, vilket är det sämsta tänkbara utfallet för ett kommunikationsverktyg.
Få hjälp
Vi driftsätter och driftar infrastruktur med öppen källkod i egen regi åt företag som verkar i Europa, även de delar som inte är glamorösa: push-proxyer, migreringar till objektlagring, uppgraderingsvägar och den identitetsintegration som gör att en ny chatt faktiskt blir kvar.
Vill du ha en Mattermost-installation som är rätt dimensionerad, en Slack-migrering planerad av någon som har gjort det förut eller ett ärligt svar på om egen drift är värt det för ditt team, skriv till office@c9group.dev. Mer om vårt infrastrukturarbete finns på sidan om kostnadsoptimering i AWS.
Bygger du en komplett stack i egen drift gäller samma resonemang för webbanalys och för marknadsautomation.
Publicerad: 8 augusti 2026 (uppdaterad 10 oktober 2026) Kategorier: Samarbete, Öppen källkod, Integritet
Samarbete
Nya guider och regeländringar via mejl
När en regel ändras, en deadline flyttas eller vi publicerar en ny guide skickar vi det till dig via mejl.