[{"data":1,"prerenderedAt":120},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-mattermost-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":26,"intro":28,"sections":29,"ctaTitle":75,"ctaBody":76,"ctaButton":77,"ctaUrl":78,"relatedPosts":79},76,"heberger-mattermost","Host Mattermost on your own VPS","Deploy Mattermost on your VPS with Docker, PostgreSQL and SSL. A private team messaging platform, the self-hosted alternative to Slack.",8,612,false,"2026-04-05T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-mattermost-poster.svg",{"categorySlug":18,"appSlug":27},"mattermost","Mattermost is an open source team messaging platform, often presented as the self-hosted alternative to Slack. Deploying it on your VPS guarantees that your professional conversations stay on your infrastructure. Here is a complete Docker deployment with PostgreSQL, a reverse proxy and SSL.",[30,34,44,47,69,72],{"type":31,"title":32,"body":33},"h2","Why self-host Mattermost on a VPS","SaaS messaging tools bill per active user and keep the history of your exchanges on their servers. Mattermost reverses this logic: a self-hosted instance on a VPS hosts entire teams with no per-seat cost on the Team edition, with unlimited history and file storage that you control. For an agency or a company subject to confidentiality constraints, hosting your messaging in-house means that neither the messages, nor the shared files, nor the metadata 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.",{"type":35,"title":36,"items":37},"ul","Concrete benefits of a self-hosted Mattermost",[38,39,40,41,42,43],"Unlimited message history, with no cutoff at a few thousand messages as on free SaaS offerings.","Storage of shared files on your VPS or an S3 bucket you control.","Inbound\u002Foutbound webhooks and slash commands to hook up 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 outside your infrastructure.",{"type":31,"title":45,"body":46},"Hardware and software prerequisites","Mattermost is more demanding than a Git forge because it maintains persistent WebSocket connections. Count on a VPS with 2 vCPU and 4 GB of RAM for a team of up to 50 active users; aim for 8 GB beyond that or if you enable advanced search. PostgreSQL is the recommended database. Plan for at least 30 GB of SSD, more if you store many files locally. On the software side: Docker and Docker Compose, a `chat.yourdomain.com` subdomain with an A record, and a reverse proxy able to relay WebSocket connections correctly (`Upgrade`\u002F`Connection`).",{"type":48,"title":49,"steps":50},"steps","Deploy Mattermost with Docker and SSL",[51,54,57,60,63,66],{"title":52,"body":53},"Prepare the VPS","Install Docker and Compose, then fetch the official `mattermost-docker` repository or create `\u002Fopt\u002Fmattermost`. Increase `vm.max_map_count` and the open file limits if needed; Mattermost opens many simultaneous connections.",{"title":55,"body":56},"Configure PostgreSQL and the volumes","In the `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":58,"body":59},"Launch the Mattermost stack","Fill in the `MM_SQLSETTINGS_DATASOURCE` and `MM_SERVICESETTINGS_SITEURL` (in HTTPS) variables, then run `docker compose up -d`. Follow `docker compose logs -f` until the message indicating that the server is listening on port 8065.",{"title":61,"body":62},"Configure the reverse proxy with WebSocket","With Nginx, proxy to `http:\u002F\u002F127.0.0.1:8065` and be sure to add `proxy_set_header Upgrade $http_upgrade;` and `proxy_set_header Connection \"upgrade\";`, otherwise real time will not work. With Caddy, `reverse_proxy localhost:8065` handles the WebSocket automatically.",{"title":64,"body":65},"Enable the SSL certificate","Obtain the certificate with `certbot --nginx -d chat.yourdomain.com` or let Caddy provision it on its own. Check that `SiteURL` is indeed in `https:\u002F\u002F` in the configuration, otherwise mobile clients will refuse to connect.",{"title":67,"body":68},"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, configure SMTP for notification emails, and restrict team creation to administrators.",{"type":70,"body":71},"tip","For shared files, do not store everything on the VPS disk in the long run: configure Mattermost in S3-compatible object storage mode. This decouples the data volume from the size of your VPS, radically simplifies backups (the bucket is versioned independently) and eases possible horizontal scaling. Also consider enabling data retention to automatically purge old messages and control PostgreSQL growth.",{"type":70,"title":73,"body":74},"The official documentation","For advanced configuration and options specific to the tool, refer to the \u003Ca href=\"https:\u002F\u002Fdocs.mattermost.com\" target=\"_blank\" rel=\"noopener noreferrer\">official Mattermost documentation\u003C\u002Fa>. This guide covers going live on a VPS; the vendor'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",[80,93,107],{"id":81,"slug":82,"title":83,"excerpt":84,"readTime":16,"views":85,"isPinned":13,"publishedAt":86,"category":87,"categories":88,"featuredImage":23,"bgImage":24,"posterImage":90,"relatedSolution":91},71,"heberger-nextcloud","Hosting Nextcloud on your own VPS","Take back control of your files: deploy Nextcloud on your VPS with Docker, database, reverse proxy and SSL.",2720,"2026-04-10T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[89],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":18,"appSlug":92},"nextcloud",{"id":94,"slug":95,"title":96,"excerpt":97,"readTime":98,"views":99,"isPinned":13,"publishedAt":100,"category":101,"categories":102,"featuredImage":23,"bgImage":24,"posterImage":104,"relatedSolution":105},72,"heberger-ghost","Hosting Ghost on your own VPS","Launch a professional blog or newsletter with Ghost on your VPS: Docker, database, paid subscriptions, reverse proxy and SSL.",6,2000,"2026-04-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[103],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":18,"appSlug":106},"ghost",{"id":108,"slug":109,"title":110,"excerpt":111,"readTime":16,"views":112,"isPinned":13,"publishedAt":113,"category":114,"categories":115,"featuredImage":23,"bgImage":24,"posterImage":117,"relatedSolution":118},73,"heberger-wordpress","Host WordPress on your own VPS","Host WordPress on your VPS for maximum performance and control: Docker, MariaDB, caching, reverse proxy and SSL.",501,"2026-04-08T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[116],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":18,"appSlug":119},"wordpress",1785628441228]