Server deployment planning#

This section provides comprehensive guidance on deploying and managing your Mattermost server. Mattermost is a flexible, high-performance messaging platform built with Go and React, designed to provide secure team collaboration at scale.

Core technology stack#

Mattermost’s architecture is built on modern, reliable technologies:

  • Backend: Written in Go, providing high performance and concurrent processing

  • Frontend: React-based web application and mobile apps

  • Database: PostgreSQL for primary data storage

  • Search: Elasticsearch (optional) for advanced search capabilities

  • File Storage: Local filesystem or cloud storage (S3, MinIO) for media and attachments

  • Caching: Built-in support for Redis for enhanced performance

Deployment options#

Mattermost offers several deployment options to suit your organization’s needs:

  1. Kubernetes (Recommended)

    Our recommended approach for production deployments offers:

    • Scalability and high availability

    • Automated updates and rollbacks

    • Infrastructure as code

    • Built-in monitoring and logging

    • Easy integration with existing DevOps workflows

  2. Linux Server Installation

    A direct installation on Linux servers offers:

    • Simple, straightforward setup

    • Full control over the installation

    • For situations where containers aren’t preferred

  3. Container-Based Deployment

    Docker containers are suitable for smaller deployments only as it offers:

    • Simplified installation and updates

    • Consistent environments

    • Easy dependency management

    • No support for high availability

Prerequisites#

Before deploying Mattermost, ensure you have reviewed the software and hardware requirements, and have:

  • A supported Linux distribution

  • Database server (PostgreSQL 13+)

  • Reverse proxy (NGINX recommended)

  • SSL/TLS certificates for secure communication

  • Adequate storage for files and database

  • Network access and firewall configurations

  • System requirements met based on expected user load

Plan your deployment#

When planning your Mattermost deployment, consider the following when choosing the deployment method that best aligns with your organization’s requirements, technical expertise, and infrastructure capabilities:

  • Expected user count and growth

  • High availability requirements

  • Backup and disaster recovery needs

  • Integration with existing systems

  • Security and compliance requirements

  • Monitoring and maintenance strategy

The following server, desktop, and mobile application sections provide detailed instructions for each deployment approach.

v10.10+ deployment enhancements#

Starting with Mattermost v10.10, significant improvements have been made to the deployment and upgrade experience for administrators:

Enhanced admin tooling

  • Configuration validation: New mattermost config validate command helps identify configuration issues before deployment

  • Migration planning: Enhanced mattermost db migrate --save-plan provides detailed migration plans for better upgrade planning

  • Health checks: Improved system health monitoring with more granular metrics and alerts

Deployment automation improvements

  • Infrastructure as code: Better integration with automation tools and configuration management systems

  • Container optimization: Improved Docker and Kubernetes deployment patterns with enhanced resource management

  • Zero-downtime upgrades: Enhanced rolling upgrade capabilities for high-availability deployments

Performance and monitoring

  • Database optimization: Improved connection pooling and query performance for PostgreSQL 13+ deployments

  • Observability: Enhanced metrics collection and logging for better operational visibility

  • Resource monitoring: Real-time system resource monitoring during deployment and upgrade processes

Best practices for v10.10+ deployments

  1. Pre-deployment validation: Always run configuration validation before deploying to production

  2. Migration planning: Generate and review migration plans for complex schema changes

  3. Monitoring setup: Configure enhanced monitoring from the start of your deployment

  4. Backup automation: Implement automated backup verification as part of your deployment pipeline

  5. Performance baseline: Establish performance baselines early in your deployment lifecycle

Minimum database version policy#

To make planning easier and ensure your Mattermost deployment remains fast and secure, we are introducing a policy for updating the minimum supported version of PostgreSQL. The oldest supported PostgreSQL version Mattermost supports will match the oldest version supported by the PostgreSQL community. This ensures you benefit from the latest features and security updates.

This policy change takes effect from Mattermost v10.6, where the minimum PostgreSQL version required will be PostgreSQL 13. This aligns with the PostgreSQL community’s support policy, which provides 5 years of support for each major version.

Note

Mattermost v10.6 is not an Extended Support Release (ESR). Going forward, this database version support policy will only apply to ESR releases.

When a PostgreSQL version reaches its end of life (EOL), Mattermost will require a newer version starting with the next scheduled ESR release. This means the following future PostgreSQL minimum version increases as follows:

Mattermost Version

Release Date

Minimum PostgreSQL Version

v9.11 ESR

2024-8-15

11.x

v10.5 ESR

2025-2-15

11.x

v10.6

2025-3-15

13.x

v10.10

2025-6-15

13.x

v10.11 ESR

2025-8-15

13.x

v11.5 ESR *

2026-2-15

14.x (EOL 2026-11-12)

* Forcasted release version and date.

Customers will have 9 months to plan, test, and upgrade their PostgreSQL version before the new requirement takes effect. This policy aims to provide clarity and transparency so you can align database upgrades with the Mattermost release schedule. Contact a Mattermost Expert. to discuss your options.