[{"data":1,"prerenderedAt":206},["ShallowReactive",2],{"seo-verification":3,"blog-host-mattermost-on-your-own-vps-ma-en":6,"promo-bar-likely":205},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-host-mattermost-on-your-own-vps-ma-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":35,"sections":36,"ctaTitle":145,"ctaBody":146,"ctaButton":147,"ctaUrl":148,"relatedPosts":149},76,"host-mattermost-on-your-own-vps",{"fr":12,"en":10,"ar":13,"es":14},"heberger-mattermost","استضافة-mattermost-على-خادم-vps-الخاص-بك","alojar-mattermost-en-un-vps","Host Mattermost on your own VPS","Complete 2026 guide: deploy Mattermost v10\u002Fv11 on VPS with Docker, PostgreSQL, SSL, integrations and backups. Self-hosted alternative to Slack.",9,5,false,"2026-04-05T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-mattermost-poster.svg",{"categorySlug":25,"appSlug":34},"mattermost","Mattermost is an open-source team messaging platform, often presented as the self-hosted alternative to Slack. Deploying it on your VPS ensures your professional conversations remain on your own infrastructure. This guide covers the full Docker installation with PostgreSQL, HTTPS\u002FWebSocket configuration, integrations (Gitea, Jira, Zoom), backups, troubleshooting and the new features in Mattermost v10.",[37,41,53,56,81,84,87,90,93,136,139,142],{"type":38,"title":39,"body":40},"h2","Why self-host Mattermost on a VPS","SaaS messaging tools charge per active user and store your message history on their servers. Mattermost reverses that logic: a self-hosted instance on a VPS can serve entire teams with no per-seat cost on the Team edition, with full message history and file storage you control. For an agency or company with confidentiality constraints, hosting your own messaging means that messages, shared files and metadata never pass through a third party. Mattermost also integrates natively with Git forges, CI\u002FCD tools and inbound\u002Foutbound webhooks, making it a central communication hub for technical teams.\n\nUnlike Slack, which imposes its infrastructure and tiered pricing, a Mattermost instance gives you complete control over message retention, archiving policies, audit logs and integrations. This is especially important for teams subject to sector-specific regulations — healthcare, finance, defense — where data cannot leave a defined perimeter.",{"type":42,"title":43,"items":44},"ul","Concrete benefits of a self-hosted Mattermost",[45,46,47,48,49,50,51,52],"**Full** message history on the **Team** edition — the free **Entry** edition caps viewable history at 10,000 messages since version 11 (see dedicated section).","File storage on your VPS or an S3 bucket you control.","Inbound\u002Foutbound webhooks and slash commands to connect CI, monitoring and alerts.","Enterprise authentication: LDAP\u002FAD, SAML and OAuth depending on the edition.","Official desktop and mobile apps pointing to your own domain.","Data compliance and sovereignty: no conversation leaves your infrastructure.","Integrated **Boards** plugin (v10+) for Kanban\u002Fdashboard project management directly in messaging.","HD audio\u002Fvideo calls via the **Calls** plugin — conferences without a third-party tool.",{"type":38,"title":54,"body":55},"Hardware and software requirements","Mattermost is more demanding than a Git forge because it maintains persistent WebSocket connections. Plan for a VPS with **2 vCPU and 4 GB RAM** for a team of up to 50 active users; aim for **8 GB** beyond that or if you enable advanced search (Elasticsearch). For organizations of 100 to 500 users, or if you activate HD video calls via the Calls plugin, plan for 16 GB RAM and 4 vCPU. PostgreSQL is the recommended database since v10 — MySQL is still supported but PostgreSQL delivers better performance for large volumes and full-text search. Provision at least **30 GB SSD**, more if you store many files locally.\n\nOn the software side: Docker Engine 24+ and Docker Compose v2, a subdomain `chat.yourdomain.com` with an A record, and a reverse proxy that can correctly relay WebSocket connections (`Upgrade`\u002F`Connection`). A valid TLS certificate is required — mobile clients refuse HTTP connections. Also open port **8443** if you enable video calls (Calls\u002FRTCD plugin) and configure a TURN server for connections behind NAT.",{"type":57,"title":58,"steps":59},"steps","Deploy Mattermost with Docker and SSL",[60,63,66,69,72,75,78],{"title":61,"body":62},"Prepare the VPS","Install Docker and Compose, then clone the official `mattermost-docker` repo or create `\u002Fopt\u002Fmattermost`. Increase `vm.max_map_count` and open file limits if needed — Mattermost opens many simultaneous connections:\n`sysctl -w vm.max_map_count=262144` `echo 'vm.max_map_count=262144' >> \u002Fetc\u002Fsysctl.conf`",{"title":64,"body":65},"Configure PostgreSQL and volumes","In `docker-compose.yml`, declare a `postgres` service with a strong password and persistent volumes for `\u002Fvar\u002Flib\u002Fpostgresql\u002Fdata`. For Mattermost, mount dedicated volumes for `config`, `data`, `logs` and `plugins` to keep everything outside the container.",{"title":67,"body":68},"Start the Mattermost stack","Set `MM_SQLSETTINGS_DATASOURCE` and `MM_SERVICESETTINGS_SITEURL` (in HTTPS), then run `docker compose up -d`. Follow `docker compose logs -f` until the message indicating the server is listening on port 8065.",{"title":70,"body":71},"Configure the HTTPS reverse proxy with WebSocket","With Nginx, proxy to `http:\u002F\u002F127.0.0.1:8065` and add the mandatory WebSocket headers:\n`proxy_set_header Upgrade $http_upgrade;` `proxy_set_header Connection \"upgrade\";` `proxy_read_timeout 86400;`\nWithout these lines, real-time messaging will not work. With Caddy, `reverse_proxy localhost:8065` handles WebSocket automatically.",{"title":73,"body":74},"Enable the SSL certificate (Let's Encrypt)","Get the certificate with `certbot --nginx -d chat.yourdomain.com` or let Caddy provision it automatically. Verify that `SiteURL` is set to `https:\u002F\u002F` in the configuration, otherwise mobile clients will refuse to connect.",{"title":76,"body":77},"Create the team and harden the instance","Open `https:\u002F\u002Fchat.yourdomain.com`, create the system administrator account and your first team. Disable open registration (allow email invitations only), configure SMTP for notification emails, and restrict team creation to administrators.",{"title":79,"body":80},"First login","Open the URL as soon as the installation is complete: Mattermost shows an account creation screen, and the VERY FIRST account created automatically receives the system administrator role. Create it immediately.",{"type":38,"title":82,"body":83},"Mattermost v10: key new features","Mattermost v10 (released late 2024, Extended Support branch active through 2026) introduced several significant improvements for self-hosted instances:\n\n**Boards integrated in GA** — the Boards plugin (Kanban\u002Fdashboard) is now pre-packaged and enabled by default. Your teams manage projects directly from Mattermost without an external tool.\n\n**HD Calls (Calls plugin v0.x)** — HD audio and video conferences directly in channels, with screen sharing. The Docker installation includes the plugin; simply enable `MM_PLUGINSETTINGS_ENABLE=true`.\n\n**SAML AES-256-GCM** — enhanced encryption of SAML assertions for Enterprise environments.\n\n**Connected Workspaces in GA** — shared channels between multiple Mattermost instances move from beta to general availability, enabling federated workspaces.\n\n**End of E10\u002FE20 support** — if migrating from an old license, check your plan before upgrading.",{"type":38,"title":85,"body":86},"Integrations: webhooks, Gitea, Jira and Zoom","Mattermost excels as a centralized hub for technical teams. The most common integrations in self-hosted deployments:\n\n**Inbound webhooks** — each channel has a webhook URL. Your CI sends a JSON `POST` when a deployment succeeds or fails; Mattermost displays it in `#ci-alerts`. Configure under `Integrations → Incoming Webhooks`.\n\n**Outbound webhooks** — Mattermost sends an HTTP request when a message contains a defined keyword. Useful for triggering pipelines from a conversation.\n\n**Gitea and GitLab** — the official Mattermost plugin for GitLab (compatible with Gitea via JSON webhooks) notifies pushes, merge requests and issues in your repository channels.\n\n**Jira** — the Jira plugin lets you create tickets directly from a Mattermost message and receive status updates in channels.\n\n**Zoom** — the Zoom plugin generates a meeting link with the `\u002Fzoom` slash command in any channel. Alternative: use the native **Calls** plugin for fully on-premise meetings.",{"type":38,"title":88,"body":89},"Backups: database and files","A Mattermost instance relies on two components to back up regularly: the PostgreSQL database and the data folder.\n\n**PostgreSQL backup** with `pg_dump` (from the host, with the container running):\n`docker exec mattermost-postgres pg_dump -U mmuser mattermost | gzip > \u002Fbackups\u002Fmm-$(date +%Y%m%d).sql.gz`\n\n**Data folder backup** — mount the `mattermost\u002Fdata` volume externally and archive it:\n`tar czf \u002Fbackups\u002Fmm-data-$(date +%Y%m%d).tar.gz \u002Fopt\u002Fmattermost\u002Fdata`\n\n**Restore** — to restore: stop the containers, import the SQL dump into a fresh Postgres container, replace the `data` folder, then `docker compose up -d`.\n\nRemember to test the restore at least once: an untested backup is not a backup.",{"type":38,"title":91,"body":92},"What the free edition limits since version 11","From Mattermost 11 onward, the free self-hosted edition — called Entry — caps viewable history at 10,000 messages, across all channels and for the entire server. The important point is often misunderstood: older messages are not deleted. They remain in your database, on your machine — they simply stop being displayable and searchable from the app. The change was poorly received by the community, precisely because it restricts data that the user hosts themselves. Two options exist: upgrade to a paid edition to lift the cap, or choose a tool whose free edition does not limit history. If your use case is long-term team messaging, measure your monthly volume before committing: 10,000 messages are consumed quickly among several people. There is a third option, often overlooked: the **Team** edition, also free, does NOT cap history — but it does not support SSO and is limited to 250 users. The choice is therefore between a history cap (Entry) and a user cap without SSO (Team).",{"type":94,"title":95,"headers":96,"rows":101},"comparison","Mattermost vs Slack vs Rocket.Chat",[97,98,99,100],"Criterion","Mattermost (Team)","Slack (free)","Rocket.Chat (CE)",[102,106,110,115,120,125,130,133],[103,104,105,104],"Self-hosted","Yes","No (SaaS)",[107,108,109,108],"Message history","Full history","90 days",[111,112,113,114],"Cost per seat","Free up to 250 users","Free \u002F $7.25\u002Fu\u002Fmo Pro","Free (open source)",[116,117,118,119],"Native video calls","Calls plugin (HD)","Huddles integration","Jitsi plugin",[121,122,123,124],"Boards \u002F PM built-in","Boards plugin (GA v10)","No (Canvases)","No",[126,127,128,129],"LDAP\u002FSAML","Paid editions","No (SAML Enterprise+)","Yes (included CE)",[131,132,104,104],"API & webhooks","Yes (in\u002Foutbound)",[134,135,135,135],"Mobile (iOS\u002FAndroid)","Official apps",{"type":38,"title":137,"body":138},"Troubleshooting: common errors","**WebSocket SSL not establishing** — verify your Nginx block includes `proxy_set_header Upgrade $http_upgrade;` and `proxy_set_header Connection \"upgrade\";`. If the proxy is behind Cloudflare, enable WebSocket mode in the Cloudflare dashboard (Network → WebSockets).\n\n**Database connection error** — check that `MM_SQLSETTINGS_DATASOURCE` points to the `postgres` Compose service (`postgres:\u002F\u002Fmmuser:password@db:5432\u002Fmattermost`). The Mattermost container must be on the same Docker network as `postgres`.\n\n**Upgrading between major versions** — do not skip major versions. From v9 to v11: go through v10 first, wait for the schema migration to complete (check logs), then upgrade to v11. Consult the official `CHANGELOG.md` for breaking changes before each jump.\n\n**Mobile clients refusing to connect** — `SiteURL` must be `https:\u002F\u002F` and the certificate valid. A self-signed certificate is rejected by iOS\u002FAndroid apps without MDM configuration.",{"type":140,"body":141},"tip","For shared files, do not store everything on the VPS disk long-term: configure Mattermost with S3-compatible object storage. This decouples your data volume from the VPS size, radically simplifies backups (the bucket is versioned independently) and facilitates potential horizontal scaling. Also consider enabling data retention to automatically purge old messages and control PostgreSQL growth.",{"type":140,"title":143,"body":144},"Official documentation","For advanced configuration and tool-specific options, refer to the \u003Ca href=\"https:\u002F\u002Fdocs.mattermost.com\" target=\"_blank\" rel=\"noopener noreferrer\">official Mattermost documentation\u003C\u002Fa>. This guide covers VPS deployment; the publisher's docs remain the reference for fine-tuning, major upgrades and specific use cases.","Set up your private Mattermost on a ServOrbit Cloud VPS","A Cloud VPS with Docker preconfigured and a fixed IP lets you deploy Mattermost, PostgreSQL and the WebSocket reverse proxy without friction. Your conversations stay with you.","Launch my Cloud VPS","\u002Fvps-cloud",[150,169,187],{"id":151,"slug":152,"slugs":153,"title":157,"excerpt":158,"readTime":159,"views":160,"isPinned":19,"noindex":19,"publishedAt":161,"updatedAt":162,"category":163,"categories":164,"featuredImage":30,"bgImage":31,"posterImage":166,"relatedSolution":167},71,"hosting-nextcloud-on-your-own-vps",{"fr":154,"en":152,"ar":155,"es":156},"heberger-nextcloud","استضافة-nextcloud-على-خادمك-الـvps-الخاص","alojar-nextcloud-en-su-propio-vps","Self-Host Nextcloud on VPS: NC 35, PHP 8.3 and MariaDB 11 Guide","Host Nextcloud on a VPS: Docker Compose, Redis, MariaDB backup, uploads over 40 GB behind Cloudflare and an alternative to Office 2021.",20,1,"2026-04-10T00:00:00+00:00","2026-11-08T16:32:50+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[165],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":25,"appSlug":168},"nextcloud",{"id":170,"slug":171,"slugs":172,"title":176,"excerpt":177,"readTime":178,"views":160,"isPinned":19,"noindex":19,"publishedAt":179,"updatedAt":180,"category":181,"categories":182,"featuredImage":30,"bgImage":31,"posterImage":184,"relatedSolution":185},72,"hosting-ghost-on-your-own-vps",{"fr":173,"en":171,"ar":174,"es":175},"heberger-ghost","استضافة-ghost-على-خادمك-الـvps-الخاص","alojar-ghost-en-un-vps","Hosting Ghost on your own VPS: complete 2026 guide","Deploy Ghost v6 on your VPS with Caddy, MySQL, Ghost CLI and Stripe Tax: installation, TLS reverse proxy, updates and troubleshooting common startup errors.",10,"2026-04-09T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[183],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":25,"appSlug":186},"ghost",{"id":188,"slug":189,"slugs":190,"title":194,"excerpt":195,"readTime":23,"views":196,"isPinned":19,"noindex":19,"publishedAt":197,"updatedAt":198,"category":199,"categories":200,"featuredImage":30,"bgImage":31,"posterImage":202,"relatedSolution":203},73,"host-wordpress-on-your-own-vps",{"fr":191,"en":189,"ar":192,"es":193},"heberger-wordpress","استضافة-wordpress-على-خادم-vps-الخاص-بك","alojar-wordpress-en-un-vps","Host WordPress on your own VPS","Host WordPress on your VPS for maximum performance and control: Docker, MariaDB, caching, reverse proxy and SSL.",0,"2026-04-08T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[201],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":204},"wordpress",true,1794270413607]