Skip to content

Developer Setup

Once you have your server and webapp set up, you can start developing on plugins.

Plugin development doesn't require a development build of Mattermost. Development builds of Mattermost are only required if you want to develop for Mattermost internally.

For developing on Mattermost-managed plugins, each plugin's setup instructions can be found in the plugin repository's README. Some plugins do not have external dependencies and require little to no setup, like the Todo Plugin while others require an external service to be set up, like the Jira Plugin and GitHub Plugin.

Set up your environment to deploy plugins

Deploy with local mode

Deploying with local mode will only work for plugins that have been updated with the functionality from the Plugin Starter Template.

If your Mattermost server is running locally, you can enable local mode and plugin uploads to streamline deploying your plugin. Edit your server configuration as follows:

{
    "ServiceSettings": {
        // ...
        "EnableLocalMode": true,
        "LocalModeSocketLocation": "/var/tmp/mattermost_local.socket"
    },
    "PluginSettings": {
        // ...
        "Enable": true,
        "EnableUploads": true
    }
}

and then deploy your plugin:

make deploy

You may also customize the Unix socket path:

export MM_LOCALSOCKETPATH=/var/tmp/alternate_local.socket
make deploy

Deploy with authentication credentials

Alternatively, you can authenticate with the server's API with credentials:

export MM_SERVICESETTINGS_SITEURL=http://localhost:8065
export MM_ADMIN_USERNAME=admin
export MM_ADMIN_PASSWORD=password
make deploy

or with a personal access token:

export MM_SERVICESETTINGS_SITEURL=http://localhost:8065
export MM_ADMIN_TOKEN=j44acwd8obn78cdcx7koid4jkr
make deploy

Different plugin projects may require specific versions of Node.js. The recommended version for the given project is always defined in a file in the root of the repository called .nvmrc. You can use the tool Node Version Manager to install and switch between node versions in your terminal. If you have nvm installed, you can run nvm install anywhere in the plugin repository, and it will automatically find the .nvmrc file in the root, and install and use that version. If you already have that version installed, you can run nvm use, though nvm install can be easier since you don't need to check if you already have the specific Node version installed.