Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 99 commits ahead, 6 commits behind tommyvn:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Deploy Mattermost Team or Enterprise Edition to Heroku


This buildpack is an inline buildpack (tldr: this repo deploys to Heroku and uses itself as a buildpack) for deploying Mattermost to Heroku. It must be used in tandem with This customized Nginx Buildpack that allow mattermost to communicate with Nginx using a TCP port instead of a socket.

Known to work with Mattermost 4.5.0 Team and Enterprise editions

Configuration options

Buildpack Specific Variables

Set MATTERMOST_VERSION to the release version you'd like to install. i.e. '4.5.0' Set MATTERMOST_TYPE to either 'team' or 'enterprise'

Mattermost Configuration

Mattermost-Heroku supports every configuration option available in Mattermost (although some make no sense to use with Mattermost+Nginx on Heroku, i.e. "Forward80To443"). To set an environment variable, prefix it with "MM_" followed by the setting type, and then the setting key, in all upper case. You can read up about how this works in the Mattermost configuration documentation


If you maintain a fork of this repo, you can link the Heroku app to your fork, which will enable you to build from the Heroku dashboard's deploy page.

An alternative to this would be to use the Heroku Build API to create a new build

For example, a curl request like this would do the trick (substitute the right variables):

curl -n -X POST$YOUR_APP/builds \
-d '{"source_blob": {"url":"{$LATEST_BUILDPACK_VERSION}.tar.gz", "version": "${COMMIT_HASH}"}}' \
-H 'Accept: application/vnd.heroku+json; version=3' \
-H "Content-Type: application/json"

The "version" parameter is optional in the example above.

This curl request can be made manually from a developer's machine, or it can be set up as a job in something like Jenkins Keep in mind that Authorization headers will need to be included in the request.

Also, the example above assumes that the machine it's being run on has credentials saved in your ~/.netrc file.


  1. Don't make configuration changes in the Mattermost admin console. Any configuration changes in the Mattermost admin console will be lost on dyno restart (which may be every 24 hours) and will not be distributed across multiple dynos.
  2. Not using s3 means any uploads will be lost on dyno restart or application reconfiguration or redeploy and won't be consistent across multiple dynos. Without s3 backing this is not anything more than a one time demo.

Enterprise Edition

Activate it as instructed in the docs


Run mattermost on Heroku with an Nginx reverse proxy








No packages published


  • Shell 100.0%