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, you can click the Deploy to Render button below.

Deploy to Render

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!