snapshot of https://github.com/mattermost/mattermost.git (master, 2026-09-16; blobs > 131072B omitted)
Some checks failed
Server CI / Postgres (shard 0) (push) Has been skipped
Server CI / Postgres (shard 3) (push) Has been skipped
BuildEnv Docker Image / build-image (push) Failing after 4s
BuildEnv Docker Image / build-image-fips (push) Failing after 4s
Migration Review & Release Notes / Generate migration review & release notes (push) Failing after 3s
Server CI / Build Environment (push) Failing after 3s
Server CI / Postgres (shard 1) (push) Has been skipped
Tools CI / check-style (mattermost-govet) (push) Failing after 4s
Server CI / Postgres (shard 2) (push) Has been skipped
Tools CI / check-style (mmgotool) (push) Failing after 3s
Server CI / Elasticsearch v8 Compatibility (push) Has been skipped
Server CI / OpenSearch v2 Compatibility (push) Has been skipped
Server CI / Postgres FIPS (shard 0) (push) Has been skipped
Tools CI / Test (mattermost-govet) (push) Failing after 3s
Server CI / Postgres FIPS (shard 1) (push) Has been skipped
Server CI / Postgres FIPS (shard 2) (push) Has been skipped
Tools CI / Test (mmgotool) (push) Failing after 3s
Server CI / Postgres FIPS (shard 3) (push) Has been skipped
Server CI / Run mmctl tests (push) Has been skipped
Server CI / Run mmctl tests (FIPS) (push) Has been skipped
Server CI / Merge Postgres Test Results (push) Has been skipped
Server CI / Merge Postgres FIPS Test Results (push) Has been skipped
Server CI / Check backport migrations (push) Has been skipped
Server CI / Check generated files (push) Has been skipped
Server CI / check-style (push) Has been skipped
Server CI / Vet API (push) Has been skipped
Server CI / Build mattermost server app (push) Has been skipped
Server CI / Server CI Complete (push) Failing after 2s
Server CI / Server CI Artifacts (push) Has been skipped
Server CI / Sentry Upload (push) Has been skipped
Server CI / Server CI Report (push) Failing after 5m1s
Server CI Nightly Race / Race Detector (push) Has been skipped
CodeQL / Analyze (go) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Webapp CI Cache Warm / Warm Webapp node_modules Cache (push) Has been cancelled
E2E CI Cache Warm / Warm E2E npm Registry Cache (push) Has been cancelled
API / build (push) Has been cancelled
Web App CI / check-types (push) Has been cancelled
Web App CI / check-lint (push) Has been cancelled
Web App CI / check-i18n (push) Has been cancelled
Web App CI / check-external-links (push) Has been cancelled
Web App CI / test (platform) (push) Has been cancelled
Web App CI / test (mattermost-redux) (push) Has been cancelled
Web App CI / test (channels shard 1/4) (push) Has been cancelled
Web App CI / test (channels shard 2/4) (push) Has been cancelled
Web App CI / test (channels shard 3/4) (push) Has been cancelled
Web App CI / test (channels shard 4/4) (push) Has been cancelled
Web App CI / upload-coverage (push) Has been cancelled
Web App CI / build (push) Has been cancelled
YAML Lint / yamllint (push) Has been cancelled
Push mirrored docker images / cd/Push mirrored docker images (push) Has been cancelled
docs-cd / Build and deploy docs (push) Has been cancelled
Docs CI / build (push) Has been cancelled
E2E Cache Warm: Cypress deps / Warm Cypress deps cache (push) Has been cancelled
Scorecards supply-chain security / Scorecard analysis (push) Has been cancelled
Server CI Weekly / Postgres FIPS (push) Has been skipped
Server CI Weekly / Run mmctl tests (FIPS) (push) Has been skipped
Server CI Weekly / Postgres with binary parameters (push) Has been skipped
Server CI Weekly / Build Environment (push) Failing after 1s
Server CI Nightly Race / Build Environment (push) Failing after 1s
Server CI Cache Warm / Warm Go Module and Build Cache (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-16 00:29:55 +05:00
commit 240db4e2a7
15309 changed files with 2173406 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
---
title: "Customize Mattermost"
sidebar_position: 50
---
Mattermost allows for a variety of customization options and modifications, making it possible to create a more adequate experience depending on the needs of each deployment.
There are a few limitations regarding [how the re-branding of Mattermost](https://mattermost.com/trademark-standards-of-use/) must be handled, such as the fact that changes to the Enterprise Edition's source code isn't supported. However these limitations can be overcome with the utilization of [Plugins](/developers/integrate/plugins).
# Customizable components
## Server (Team Edition only)
The [Mattermost server](https://github.com/mattermost/mattermost/tree/master/server)'s source code, written in Golang, may be customized to deliver additional functionalities or to meet specific security requirements.
It's recommended that you attempt to meet such customizations by leveraging the [Plugin framework](/developers/integrate/plugins) in order to avoid creating any breaking changes, however details on how to build a custom server may be found [here](/developers/integrate/customization/customization/server-build).
## Server files
Some parts of server-side customizations don't require changes to the source code. View more details on which server files may be customized in [here](/developers/integrate/customization/customization/server-files).
<Note title="Note">
Modifications to server files can be utilized in both Team Edition and Enterprise Editions.
</Note>
## Web app
Mattermost's web application runs on React, and [its codebase](https://github.com/mattermost/mattermost/tree/master/webapp) has been open-sourced (regardless of which edition your server uses). You can view details on how to customize the web app in [here](/developers/integrate/customization/customization/webapp). Keep in mind, however, that some changes to the web app can also leverage the [Plugin](/developers/integrate/plugins/components/webapp) framework, which can help reduce the necessity of rebasing your custom client to each Mattermost release.

View File

@@ -0,0 +1,24 @@
---
title: "Server build (Team Edition)"
sidebar_position: 1
---
If plugin functionalities don't cover your use cases, you have the freedom to customize and build your own version of the `mattermost-server` project.
Before proceeding with the steps below, make sure you have completed the [mattermost-server setup](/developers/contribute/developer-setup) process.
1. Customize the project according to your requirements.
2. Build binary files for Mattermost server.
```shell
make build
```
3. Assemble essential files.
```shell
make package
```
4. Transfer desired `.tar.gz` file to server for deployment.

View File

@@ -0,0 +1,78 @@
---
title: "Server files"
sidebar_position: 1
---
In both Mattermost Team and Enterprise editions, you have the freedom to alter how content is displayed by being able to change the contents of localized files and email templates.
Before proceeding with the steps below, make sure you have completed the [mattermost-server](/developers/contribute/developer-setup) and [mattermost-webapp](/developers/contribute/developer-setup) setup process.
## i18n files
The `i18n` files define many of the contents seen in email notifications and responses from the server.
1. Edit contents of files in the `mattermost/server/i18n` directory according to your requirements.
2. Once you're ready, create a tarball or zip the files __within__ the `i18n` directory.
```shell
cd i18n
tar -cvf i18n.tar *
```
3. Before replacing the files, stop your Mattermost instance if it's currently running.
```shell
sudo service mattermost stop
```
4. In your Mattermost deployment, back up and remove the files inside `i18n` that will no longer be in use.
```shell
cd ~/mattermost/i18n
tar -cvf i18n-yyyy-MM-dd.tar *
rm -f *.json
```
5. Transfer your custom `i18n.tar` file to the deployment server and extract it in the `i18n` directory.
```shell
mv i18n.tar mattermost/i18n
cd ~/mattermost/i18n
tar -xvf i18n.tar
```
6. Restart your Mattermost instance.
```shell
sudo service mattermost start
```
## Email templates
Similarly to the i18n files, email templates can be edited and applied onto a running Mattermost instance in the following manner:
1. Edit the `html` files inside of the `templates` directory. In this example we'll assume the `post_body_full.html` file has been customized.
2. Stop your Mattermost instance if it's currently running.
```shell
sudo service mattermost stop
```
3. (optional) Rename the template file to be replaced to keep it as a backup.
```shell
cd ~/mattermost/templates
mv post_body_full.html post_body_full_yyyy_MM_dd.html
```
4. Transfer your custom `post_body_full.html` file to the deployment server and place it inside `templates`.
```shell
mv ./post_body_full.html ~/mattermost/templates/
```
5. Restart your Mattermost instance.
```shell
sudo service mattermost start
```

View File

@@ -0,0 +1,83 @@
---
title: "Web app"
sidebar_position: 1
---
Customizations to the Mattermost Web App can be performed in cases where you need to customize branding, alter localization strings, or fulfill security requirements that are not immediately offered out-of-the-box.
## Customization steps
With that in mind, customizing and deploying your Mattermost Web App can be done in a few steps:
1. Fork the [mattermost](https://github.com/mattermost/mattermost) repository and then clone your fork in your local environment.
```shell
git clone https://github.com/<yourgithubusername>/mattermost
```
2. Create a separate branch for your customized version, as it's not recommended to perform them in the `master` branch (more details about that in the next section regarding rebasing).
```shell
git checkout -b custom_branch
```
3. Perform customization tasks by replacing image assets, changing strings, altering the UI, and whatever else may be necessary. Be mindful not to violate any of the [guidelines on trademark use](https://mattermost.com/trademark-standards-of-use/) during this process.
4. Once customization has been completed, build the files that will be used in your deployment and generate `mattermost-webapp.tar.gz` containing them.
```shell
make dist
```
5. In a Mattermost deployment, rename `client` (assuming Mattermost was deployed in the `$HOME` directory).
```shell
cd ~/mattermost
mv client client-original
```
6. Transfer compressed `dist` files inside Mattermost's `client` directory, and decompress it.
```shell
tar -xvf mattermost-webapp.tar.gz
```
7. Copy the `products` subdirectory from the original deployment into the customized one.
```shell
cp -R client-original/products client/products
```
## Rebasing to latest version
Challenges arise when creating a separate custom branch from an active open-source project like `mattermost`. As the project gets new commits and pull requests on a daily basis, your custom webapp can quickly become outdated.
To deal with that, you'll need to leverage Git's [interactive rebasing functionality](https://git-scm.com/docs/git-rebase#_interactive_mode) in the following way:
1. Add an upstream with the original `mattermost` repository.
```shell
git remote add upstream https://github.com/mattermost/mattermost.git
```
2. Update `master` branch to latest upstream commit.
```shell
git checkout master
git pull upstream master
```
3. Perform interactive rebase.
```shell
git checkout custom_branch
git rebase -i master
```
```text
Use `git rebase --continue` after resolving any conflicts that arise during rebase process
```
4. Push new version back to remote (Note: Rebasing requires that you override previous remote version with a `force` push. Be sure you've tested that your rebase was successful before completing this last command).
```shell
git push -f origin custom_branch
```

View File

@@ -0,0 +1,61 @@
---
title: "Embed Mattermost"
sidebar_position: 80
---
## Launch Mattermost from a button selection
The most common way of integrating Mattermost into another application is via a link or a button that brings up Mattermost in a new browser window or tab, with a link to a specific Mattermost channel to begin discussion.
Optionally, single-sign-on can be added to make the experience seamless.
### Mattermost launch button example in HTML
Save the below HTML code in a file called `mattermost-button-example.html` then open the file in a browser as an example.
```html
<script>
var myWindow = null;
function openMMWindow() {
myWindow = window.open("https://community.mattermost.com/core/channels/developer", "Mattermost", "top=0,left=0,width=400,height=600,status=no,toolbar=no,location=no,menubar=no,titlebar=no");
}
function closeMMWindow() {
if (myWindow) {
myWindow.close();
}
}
</script>
<html>
<br/>
<br/>
<button onclick="openMMWindow()">Open Developer Channel</button>
<br/>
<br/>
<button onclick="closeMMWindow()">Close Developer Channel</button>
<br/>
<br/>
</html>
```
## Embed Mattermost in web apps using an &lt;iframe&gt;
Any web application embedded into another using an [&lt;iframe&gt;](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe) is at risk of security exploits, since the outer application intercepts all user input into the embedded application, an exploit known as [Click-Jacking](https://en.wikipedia.org/wiki/Clickjacking). By default, Mattermost disables embedding. If you choose to embed Mattermost we highly recommend it is done only on a private network that you control.
See [this recipe](https://forum.mattermost.com/t/recipe-embedding-mattermost-in-web-applications-using-an-iframe-unsupported-recipe/10233) for details.
## Embed Mattermost in mobile apps
The open source mobile applications can serve as a guide or starter code to embed Mattermost in mobile applications. The Mattermost Javascript Driver is used to connect with the Mattermost server and product the interactivity for these applications.
The mobile applications also provide full source code for push notifications.
### Mobile apps offering Mattermost as a web view
- https://github.com/mattermost/ios
### Mobile apps offering Mattermost with React Native components
- https://github.com/mattermost/mattermost-mobile

View File

@@ -0,0 +1,12 @@
---
title: "Customize and embed"
sidebar_position: 50
---
If the [API](https://api.mattermost.com) or [plugins](/developers/integrate/plugins) don't meet your your needs, take a look at the other methods for integrating and extending Mattermost:
* Webhooks - Post to channels with [incoming webhooks](/developers/integrate/webhooks/incoming), or listen for new messages with [outgoing webhooks](/developers/integrate/webhooks/outgoing).
* Slash Commands - Enable your users to [trigger custom actions](/developers/integrate/slash-commands) from within Mattermost.
* Embed - Learn how to use the Mattermost API to [embed Mattermost](/developers/integrate/customization/embedding) into web browsers and web applications.
* Customize - Modify the source code for the server or web app to make basic [changes and customization](/developers/integrate/customization/customization).
* Interactive Messages - Create messages that include [interactive functionality](https://docs.mattermost.com/developer/interactive-messages.html).