• Docs
  • Changelog
Sign in
Get started
    • Home
    • Your first deploy
    • Free instances
    • Platform features by plan
    • Use with coding agents
    • FAQ
    • Templates
      • Migrate from…
        • Heroku
        • Railway
    • Compute plans
    • SandboxesBeta
      • Service types
        • Which to use?
        • Static sites
        • Web services
        • Private services
        • Background workers
        • Cron jobs
        • Workflows
        • Multi-service architectures
      • Data storage
        • Render Postgres
        • Render Key Value (Redis®-compatible)
        • Persistent disks
    • How deploys work
    • Supported languages
    • Git providers (GitHub, etc.)
    • Build pipeline
    • Deploy hooks
    • Monorepo support
    • Troubleshooting deploys
      • Previewing changes
        • Single-service previews
        • Preview environments (multi-service)
      • Docker deploys
        • Overview
        • Deploy a registered image
        • Using secrets
      • Runtime
        • Native runtimes
        • Environment variables & secrets
        • Default environment variables
    • Intro to sandboxes
    • Limits
      • How to…
        • Create & configure sandboxes
        • Execute commands
        • Manage files
        • Manage snapshots
      • Use with…
        • Claude Managed Agents
        • Cursor Cloud Agents
        • OpenAI Agents API
      • SDK/CLI reference
        • TypeScript SDK
        • Python SDK
        • CLI commands
    • Intro to workflows
    • Tutorial
    • Limits & pricing
      • How to…
        • Define tasks
        • Define flowsNew
        • Trigger runs
        • Develop locally
      • SDK reference
        • TypeScript SDK
        • Python SDK
      • Example workflows
        • TypeScript examples
        • Python examples
    • Overview
    • Create & connect
    • Database credentials
    • Extensions
    • Version upgrades
    • Logical replication
    • Legacy instance types
      • Database recovery
        • Recovery & backups
        • High availability
      • Database performance
        • Read replicas
        • Connection pooling
        • Admin apps
        • Repacking tables
        • Troubleshooting performance
    • Regions
    • Inbound IP rules
    • Edge caching
    • WebSockets
    • TLS certificates
      • Custom domains
        • Overview
        • Cloudflare
        • Namecheap
        • Other DNS providers
      • Internal traffic
        • Private network
        • Private links
      • Outbound traffic
        • Default IP ranges
        • Dedicated IP addresses
        • Outbound bandwidth
        • Handling network changes
      • Static site config
        • Custom response headers
        • Redirects & rewrites
    • The Render Dashboard
    • SSH / Shell access
    • Projects & environments
      • Service actions
        • Scaling
        • Rollbacks
        • Maintenance mode
        • One-off jobs
      • Infrastructure as code
        • Blueprints overview
        • render.yaml reference
        • Terraform provider
    • In-dashboard metrics
    • Health checks
    • Uptime best practices
      • Logging
        • In-dashboard logs
        • Log streams (syslog/HTTPS)
      • OpenTelemetry (OTel) metrics
        • Provider setup
        • Metrics reference
      • Notifications
        • Webhooks
        • Email / Slack
    • MCP Server
      • Render CLI
        • Overview
        • Command reference
      • REST API
        • Overview
        • API reference
      • Third-party connections
        • OIDC support
        • Datadog
    • Workspaces, members, & roles
    • Login settings
    • Audit logs
      • Organizations
        • Overview
        • SAML SSO
    • DDoS protection
    • Platform maintenance
      • Compliance
        • Overview
        • HIPAA (US health data)
        • HIPAA best practices
        • Shared responsibility model
        • Pentest policy
    • Heroku vs Render
    • Vercel vs Render

Deploy Mattermost

Mattermost is an open source messaging platform with an easy-to-use and familiar web interface. It is customizable and can run as a simple standalone web server or as a complex, clustered, multi-process service connected to separate database, object storage, LDAP directory, search engine, and mail service, among other things. All of these configurations can be installed on Render.

In this tutorial, you'll run a Mattermost instance consisting of a Mattermost web service, a PostgreSQL database, and a MinIO object store backed by a persistent, snapshotted disk. Alternatively, if you just want Mattermost up and running, follow the one-click deploy steps.

One-Click Deploy

Click Deploy to Render below and follow the prompts to set up Mattermost on Render.

Deploy to Render

Manual Deploy

We'll be using github.com/render-examples/mattermost, so start by forking that repository.

Create the Database

Create a new PostgreSQL database on Render.

You'll need various properties from this database when you're creating the Mattermost service.

Create the MinIO Service

  1. Go here to begin creating a new private service.

  2. Use the forked Mattermost repository.

  3. Add these two environment variables:

    KeyValue
    MINIO_ACCESS_KEYSupply your own value or generate it
    MINIO_SECRET_KEYSupply your own value or generate it

    These values will be needed for the Mattermost service later.

  4. Add a disk with /data as the mount path.

  5. Set the Docker build context directory to ./minio and the Dockerfile path to ./minio/Dockerfile.

  6. Create the service.

Create the Mattermost Service

  1. Go here to begin creating a new web service.

  2. Use the forked Mattermost repository.

  3. Add the following environment variables:

    KeyValue
    MM_SQLSETTINGS_DRIVERNAMEpostgres
    MM_USERNAMEThe username from the database created earlier
    MM_PASSWORDThe password from the database created earlier
    MM_DBNAMEThe database name from the database created earlier
    DB_HOSTThe hostname from the database created earlier
    MM_FILESETTINGS_DRIVERNAMEamazons3
    MM_FILESETTINGS_AMAZONS3BUCKETmattermost
    MM_FILESETTINGS_AMAZONS3ACCESSKEYIDThe MINIO_ACCESS_KEY from MinIO created earlier
    MM_FILESETTINGS_AMAZONS3SECRETACCESSKEYThe MINIO_SECRET_KEY from MinIO created earlier
    MM_FILESETTINGS_AMAZONS3ENDPOINTThe host:port from the MinIO created earlier
    MM_FILESETTINGS_AMAZONS3SSLfalse
  4. Add a disk with /mattermost/config as the mount path.

  5. Set the Docker build context directory to ./app and the Dockerfile path to ./app/Dockerfile.

  6. Create the service.

Your Mattermost cluster should be ready to use with regular backups and disk snapshots!

Deploy Mattermost
  • One-Click Deploy
  • Manual Deploy
    • Create the Database
    • Create the MinIO Service
    • Create the Mattermost Service
All Systems Operational
© Render Inc. All rights reserved.