From 7edc53aacd7bb501f0e771f8e3341ec5bb5944e7 Mon Sep 17 00:00:00 2001 From: Ben Prescott Date: Thu, 16 Sep 2021 14:08:10 +0100 Subject: [PATCH] Move Mattermost doc from Omnibus to main project --- doc/administration/index.md | 2 +- doc/development/architecture.md | 2 +- .../mattermost/gitlab-mattermost.msc | 28 + .../mattermost/img/gitlab-mattermost.png | Bin 0 -> 88419 bytes doc/integration/mattermost/index.md | 495 ++++++++++++++++++ .../integrations/mattermost_slash_commands.md | 2 +- 6 files changed, 526 insertions(+), 3 deletions(-) create mode 100644 doc/integration/mattermost/gitlab-mattermost.msc create mode 100644 doc/integration/mattermost/img/gitlab-mattermost.png create mode 100644 doc/integration/mattermost/index.md diff --git a/doc/administration/index.md b/doc/administration/index.md index d3e018c976959b..9412994edb7825 100644 --- a/doc/administration/index.md +++ b/doc/administration/index.md @@ -111,7 +111,7 @@ Learn how to install, configure, update, and maintain your GitLab instance. ### GitLab platform integrations -- [Mattermost](https://docs.gitlab.com/omnibus/gitlab-mattermost/): Integrate with [Mattermost](https://mattermost.com), an open source, private cloud workplace for web messaging. +- [Mattermost](../integration/mattermost/index.md): Integrate with [Mattermost](https://mattermost.com), an open source, private cloud workplace for web messaging. - [PlantUML](integration/plantuml.md): Create diagrams in AsciiDoc and Markdown documents created in snippets, wikis, and repositories. - [Web terminals](integration/terminal.md): Provide terminal access to your applications deployed to Kubernetes from GitLab CI/CD [environments](../ci/environments/index.md#web-terminals). diff --git a/doc/development/architecture.md b/doc/development/architecture.md index 2b64dcbe5c1ceb..fe2b621da2976c 100644 --- a/doc/development/architecture.md +++ b/doc/development/architecture.md @@ -610,7 +610,7 @@ to make sure we were logging responsibly. This is just a packaged version of the - [Project page](https://github.com/mattermost/mattermost-server/blob/master/README.md) - Configuration: - - [Omnibus](https://docs.gitlab.com/omnibus/gitlab-mattermost/) + - [Omnibus](../integration/mattermost/index.md) - [Charts](https://docs.mattermost.com/install/install-mmte-helm-gitlab-helm.html) - Layer: Core Service (Processor) - GitLab.com: [Mattermost](../user/project/integrations/mattermost.md) diff --git a/doc/integration/mattermost/gitlab-mattermost.msc b/doc/integration/mattermost/gitlab-mattermost.msc new file mode 100644 index 00000000000000..f6d4bf7aa68234 --- /dev/null +++ b/doc/integration/mattermost/gitlab-mattermost.msc @@ -0,0 +1,28 @@ +msc { + # Use https://mscgen.js.org or mscgen to convert this into PNG + hscale="1.5", + wordwraparcs=on; + + user [ label="User", textbgcolor="blue", textcolor="white" ], + mattermost [ label="Mattermost", textbgcolor="red", textcolor="white"], + gitlab [ label="GitLab", textbgcolor="indigo", textcolor="white"]; + + user=>mattermost [label="GET https://mm.domain.com"]; + mattermost note gitlab [label="Obtain access code", textcolor="green"]; + mattermost=>gitlab [label="GET https://gitlab.domain.com/oauth/authorize", textcolor="indigo"]; + gitlab rbox user [label="GitLab user logs in (if necessary)"]; + gitlab rbox gitlab [label="GitLab verifies client_id matches an OAuth application"]; + gitlab=>user [label="GitLab asks user to authorize Mattermost OAuth app"]; + user=>gitlab [label="User clicks 'Allow'"]; + gitlab rbox gitlab [label="GitLab verifies redirect_uri matches list of valid URLs"]; + gitlab=>user [label="302 Redirect: https://mm.domain.com/signup/gitlab/complete"]; + user=>mattermost [label="GET https://mm.domain.com/signup/gitlab/complete", textcolor="red"]; + mattermost note gitlab [label="Exchange access code for access token", textcolor="green"]; + mattermost=>gitlab [label="POST http://gitlab.domain.com/oauth/token", textcolor="indigo"]; + gitlab=>gitlab [label="Doorkeeper::TokensController#create"]; + gitlab=>mattermost [label="Access token", textcolor="red"]; + mattermost note gitlab [label="Mattermost looks up GitLab user", textcolor="green"]; + mattermost=>gitlab [label="GET https://gitlab.domain.com/api/v4/user", textcolor="indigo"]; + gitlab=>mattermost [label="User details", textcolor="red"]; + mattermost=>user [label="Mattermost/GitLab user ready"]; +} diff --git a/doc/integration/mattermost/img/gitlab-mattermost.png b/doc/integration/mattermost/img/gitlab-mattermost.png new file mode 100644 index 0000000000000000000000000000000000000000..1eedcb391b05935272dd4661f5e722ac5ccfb7c3 GIT binary patch literal 88419 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%0A48d`VV{FuN0Z`ihEZMD2CYkQW8 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 Applications** area of GitLab. Then follow the steps below to complete authorization. + +### Authorize GitLab Mattermost + +Navigate to the **Settings > Applications** area in GitLab. Create a new application and for the **Redirect URI** use the following (replace `http` with `https` if you use HTTPS): + +```plaintext +http://mattermost.example.com/signup/gitlab/complete +http://mattermost.example.com/login/gitlab/complete +``` + +Note that you do not need to select any options under **Scopes**. Choose **Save application**. + +Once the application is created you will be provided with an `Application ID` and `Secret`. One other piece of information needed is the URL of GitLab instance. +Return to the server running GitLab Mattermost and edit the `/etc/gitlab/gitlab.rb` configuration file as follows using the values you received above: + +```ruby +mattermost['gitlab_enable'] = true +mattermost['gitlab_id'] = "12345656" +mattermost['gitlab_secret'] = "123456789" +mattermost['gitlab_scope'] = "" +mattermost['gitlab_auth_endpoint'] = "http://gitlab.example.com/oauth/authorize" +mattermost['gitlab_token_endpoint'] = "http://gitlab.example.com/oauth/token" +mattermost['gitlab_user_api_endpoint'] = "http://gitlab.example.com/api/v4/user" +``` + +Save the changes and then run `sudo gitlab-ctl reconfigure`. If there are no errors your GitLab and GitLab Mattermost should be configured correctly. + +### Specify numeric user and group identifiers + +Omnibus GitLab creates a user and group `mattermost`. You can specify the +numeric identifiers for these users in `/etc/gitlab/gitlab.rb` as follows: + +```ruby +mattermost['uid'] = 1234 +mattermost['gid'] = 1234 +``` + +Run `sudo gitlab-ctl reconfigure` to apply the changes. + +### Setting custom environment variables + +If necessary you can set custom environment variables to be used by Mattermost +via `/etc/gitlab/gitlab.rb`. This can be useful if the Mattermost server +is operated behind a corporate internet proxy. In `/etc/gitlab/gitlab.rb` +supply a `mattermost['env']` with a hash value. For example: + +```ruby +mattermost['env'] = {"HTTP_PROXY" => "my_proxy", "HTTPS_PROXY" => "my_proxy", "NO_PROXY" => "my_no_proxy"} +``` + +Run `sudo gitlab-ctl reconfigure` to apply the changes. + +### Connecting to the bundled PostgreSQL database + +If you need to connect to the bundled PostgreSQL database and are using the default Omnibus GitLab database configuration, you can connect as +the PostgreSQL superuser: + +```shell +sudo gitlab-psql -d mattermost_production +``` + +### Back up GitLab Mattermost + +GitLab Mattermost is not included in the regular [Omnibus GitLab backup](../../raketasks/backup_restore.md#back-up-gitlab) Rake task. + +The general Mattermost [backup and disaster recovery](https://docs.mattermost.com/deploy/backup-disaster-recovery.html) documentation can be used as a guide +on what needs to be backed up. + +#### Back up the bundled PostgreSQL database + +If you need to back up the bundled PostgreSQL database and are using the default Omnibus GitLab database configuration, you can back up using this command: + +```shell +sudo -i -u gitlab-psql -- /opt/gitlab/embedded/bin/pg_dump -h /var/opt/gitlab/postgresql mattermost_production | gzip > mattermost_dbdump_$(date --rfc-3339=date).sql.gz +``` + +#### Back up the `data` directory and `config.json` + +Mattermost has a `data` directory and `config.json` file that will need to be backed up as well: + +```shell +sudo tar -zcvf mattermost_data_$(date --rfc-3339=date).gz -C /var/opt/gitlab/mattermost data config.json +``` + +### Restore GitLab Mattermost + +If you have previously [created a backup of GitLab Mattermost](#back-up-gitlab-mattermost), you can run the following commands to restore it: + +```shell +# Stop Mattermost so we don't have any open database connections +sudo gitlab-ctl stop mattermost + +# Drop the Mattermost database +sudo -u gitlab-psql /opt/gitlab/embedded/bin/dropdb -U gitlab-psql -h /var/opt/gitlab/postgresql -p 5432 mattermost_production + +# Create the Mattermost database +sudo -u gitlab-psql /opt/gitlab/embedded/bin/createdb -U gitlab-psql -h /var/opt/gitlab/postgresql -p 5432 mattermost_production + +# Perform the database restore +# Replace /tmp/mattermost_dbdump_2021-08-05.sql.gz with your backup +sudo -u mattermost sh -c "zcat /tmp/mattermost_dbdump_2021-08-05.sql.gz | /opt/gitlab/embedded/bin/psql -U gitlab_mattermost -h /var/opt/gitlab/postgresql -p 5432 mattermost_production" + +# Restore the data directory and config.json +# Replace /tmp/mattermost_data_2021-08-09.gz with your backup +sudo tar -xzvf /tmp/mattermost_data_2021-08-09.gz -C /var/opt/gitlab/mattermost + +# Fix permissions if required +sudo chown -R mattermost:mattermost /var/opt/gitlab/mattermost/data +sudo chown mattermost:mattermost /var/opt/gitlab/mattermost/config.json + +# Start Mattermost +sudo gitlab-ctl start mattermost +``` + +### Mattermost Command Line Tools (CLI) + +NOTE: +This CLI will be replaced in a future release with the new [`mmctl` Command Line Tool](https://docs.mattermost.com/administration/mmctl-cli-tool.html). + +To use the [Mattermost Command Line Tools (CLI)](https://docs.mattermost.com/administration/command-line-tools.html), ensure that you are in the `/opt/gitlab/embedded/service/mattermost` directory when you run the CLI commands and that you specify the location of the configuration file. The executable is `/opt/gitlab/embedded/bin/mattermost`. + +```shell +cd /opt/gitlab/embedded/service/mattermost + +sudo /opt/gitlab/embedded/bin/chpst -e /opt/gitlab/etc/mattermost/env -P -U mattermost:mattermost -u mattermost:mattermost /opt/gitlab/embedded/bin/mattermost --config=/var/opt/gitlab/mattermost/config.json version +``` + +Until [#4745](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/4745) has been implemented, the command requires quite of bit typing and is hard to remember, so let's make a bash/zsh alias to make it a bit easier to remember. Add the following to your `~/.bashrc` or `~/.zshrc` file: + +```shell +alias mattermost-cli="cd /opt/gitlab/embedded/service/mattermost && sudo /opt/gitlab/embedded/bin/chpst -e /opt/gitlab/etc/mattermost/env -P -U mattermost:mattermost -u mattermost:mattermost /opt/gitlab/embedded/bin/mattermost --config=/var/opt/gitlab/mattermost/config.json $1" +``` + +Then source `~/.zshrc` or `~/.bashrc` with `source ~/.zshrc` or `source ~/.bashrc`. + +If successful, you can now run any Mattermost CLI command with your new shell alias `mattermost-cli`: + +```shell +$ mattermost-cli version + +[sudo] password for username: +{"level":"info","ts":1569614421.9058893,"caller":"utils/i18n.go:83","msg":"Loaded system translations for 'en' from '/opt/gitlab/embedded/service/mattermost/i18n/en.json'"} +{"level":"info","ts":1569614421.9062793,"caller":"app/server_app_adapters.go:58","msg":"Server is initializing..."} +{"level":"info","ts":1569614421.90976,"caller":"sqlstore/supplier.go:223","msg":"Pinging SQL master database"} +{"level":"info","ts":1569614422.0515099,"caller":"mlog/log.go:165","msg":"Starting up plugins"} +{"level":"info","ts":1569614422.0515954,"caller":"app/plugin.go:193","msg":"Syncing plugins from the file store"} +{"level":"info","ts":1569614422.086005,"caller":"app/plugin.go:228","msg":"Found no files in plugins file store"} +{"level":"info","ts":1569614423.9337213,"caller":"sqlstore/post_store.go:1301","msg":"Post.Message supports at most 16383 characters (65535 bytes)"} +{"level":"error","ts":1569614425.6317747,"caller":"go-plugin/stream.go:15","msg":" call to OnConfigurationChange failed, error: Must have a GitLab oauth client id","plugin_id":"com.github.manland.mattermost-plugin-gitlab","source":"plugin_stderr"} +{"level":"info","ts":1569614425.6875598,"caller":"mlog/sugar.go:19","msg":"Ensuring Surveybot exists","plugin_id":"com.mattermost.nps"} +{"level":"info","ts":1569614425.6953356,"caller":"app/server.go:216","msg":"Current version is 5.14.0 (5.14.2/Fri Aug 30 20:20:48 UTC 2019/817ee89711bf26d33f840ce7f59fba14da1ed168/none)"} +{"level":"info","ts":1569614425.6953766,"caller":"app/server.go:217","msg":"Enterprise Enabled: false"} +{"level":"info","ts":1569614425.6954057,"caller":"app/server.go:219","msg":"Current working directory is /opt/gitlab/embedded/service/mattermost/i18n"} +{"level":"info","ts":1569614425.6954265,"caller":"app/server.go:220","msg":"Loaded config","source":"file:///var/opt/gitlab/mattermost/config.json"} +Version: 5.14.0 +Build Number: 5.14.2 +Build Date: Fri Aug 30 20:20:48 UTC 2019 +Build Hash: 817ee89711bf26d33f840ce7f59fba14da1ed168 +Build Enterprise Ready: false +DB Version: 5.14.0 +``` + +For more details see [Mattermost Command Line Tools (CLI)](https://docs.mattermost.com/administration/command-line-tools.html) and the [Troubleshooting Mattermost CLI](#troubleshooting-the-mattermost-cli) below. + +## Configuring GitLab and Mattermost integrations + +As of 12.3, the Mattermost GitLab plugin is shipped with Omnibus GitLab: [Mattermost Plugin for GitLab documentation](https://github.com/mattermost/mattermost-plugin-gitlab). + +You can use the plugin to subscribe Mattermost to receive notifications about issues, merge requests, and pull requests as well as personal notifications regarding merge request reviews, unread messages, and task assignments. If you want to use slash commands to perform actions +such as creating and viewing issues, or to trigger deployments use GitLab [Mattermost slash commands](../../user/project/integrations/mattermost_slash_commands.md). + +The plugin and slash commands can be used together or individually. + +## Email Notifications + +### Setting up SMTP for GitLab Mattermost + +These settings are configured through the Mattermost System Console by the System Administrator. +On the **Environment > SMTP** tab of the **System Console**, you can enter the SMTP credentials given by your SMTP provider, or `127.0.0.1` and port `25` to use `sendmail`. More information on the specific settings +that are needed is available in the [Mattermost documentation](https://docs.mattermost.com/install/smtp-email-setup.html). + +These settings can also be configured in `/var/opt/gitlab/mattermost/config.json`. + +### Email batching + +Enabling this feature allows users to control how often they receive email notifications. + +Email batching can be enabled in the Mattermost **System Console** by going to the **Environment > SMTP** tab, and setting the **Enable Email Batching** setting to **True**. + +This setting can also be configured in `/var/opt/gitlab/mattermost/config.json`. + +## Upgrading GitLab Mattermost + +Below is a list of Mattermost versions for GitLab 11.10 and later: + +| GitLab Version | Mattermost Version | +| :------------ |:----------------| +| 11.11 | 5.10 | +| 12.0 | 5.11 | +| 12.1 | 5.12 | +| 12.2 | 5.13 | +| 12.3 | 5.14 | +| 12.4 | 5.15 | +| 12.5 | 5.16 | +| 12.6 | 5.17 | +| 12.7 | 5.17 | +| 12.8 | 5.19 | +| 12.9 | 5.20 | +| 12.10 | 5.21 | +| 13.0 | 5.22 | +| 13.1 | 5.23 | +| 13.2 | 5.24 | +| 13.3 | 5.25 | +| 13.4 | 5.26 | +| 13.5 | 5.27 | +| 13.6 | 5.28 | +| 13.7 | 5.29 | +| 13.8 | 5.30 | +| 13.9 | 5.31 | +| 13.10 | 5.32 | +| 13.11 | 5.33 | +| 13.12 | 5.34 | +| 14.0 | 5.35 | +| 14.1 | 5.36 | +| 14.2 | 5.37 | +| 14.3 | 5.38 | + +NOTE: +When upgrading the Mattermost version, it is essential to check the +[Important Upgrade Notes](https://docs.mattermost.com/administration/important-upgrade-notes.html) +for Mattermost to address any changes or migrations that need to be performed. + +Starting with GitLab 11.0, GitLab Mattermost can be upgraded through the regular Omnibus GitLab update process. When upgrading previous versions of +GitLab that process can only be used if Mattermost configuration settings have not been changed outside of GitLab (i.e., no changes to Mattermost's `config.json` +file have been made, either directly or via the Mattermost **System Console** which saves back changes to `config.json`.) + +If you are upgrading to at least GitLab 11.0 or have only configured Mattermost using `gitlab.rb`, you can upgrade GitLab using Omnibus and then run `gitlab-ctl reconfigure` to upgrade GitLab Mattermost to the latest version. + +If this is not the case, there are two options: + +1. Update [`gitlab.rb`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template#L706) + with the changes done to `config.json`. This might require adding some parameters as not all + settings in `config.json` are available in `gitlab.rb`. Once complete, Omnibus GitLab should be + able to upgrade GitLab Mattermost from one version to the next. +1. Migrate Mattermost outside of the directory controlled by Omnibus GitLab so it can be administered + and upgraded independently. Follow the [Mattermost Migration Guide](https://docs.mattermost.com/administration/migrating.html) + to move your Mattermost configuration settings and data to another directory or server independent + from Omnibus GitLab. + +For a complete list of upgrade notices and special considerations for older versions, see the [Mattermost documentation](https://docs.mattermost.com/administration/important-upgrade-notes.html). + +## Upgrading GitLab Mattermost from versions prior to 11.0 + +With version 11.0, GitLab introduced breaking changes which affected Mattermost configuration. +In versions prior to GitLab 11.0 all +Mattermost-related settings were configurable from the `gitlab.rb` file, which +generated the Mattermost `config.json` file. However, Mattermost also +permitted configuration via its System Console. This configuration ended up in +the same `config.json` file, which resulted in changes made via the System Console being +overwritten when users ran `gitlab-ctl reconfigure`. + +To resolve this problem, `gitlab.rb` includes only the +configuration necessary for GitLab<=>Mattermost integration in 11.0. GitLab no longer +generates the `config.json` file, and instead passes limited configuration settings via environment variables. + +The settings that continue to be supported in `gitlab.rb` can be found in +[`gitlab.rb.template`](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/files/gitlab-config-template/gitlab.rb.template). + +From GitLab 11.0, other Mattermost settings can be configured through Mattermost's System Console, +by editing `/var/opt/gitlab/mattermost/config.json`, or by using `mattermost['env']` in `gitlab.rb`. + +If you would like to keep configuring Mattermost using `gitlab.rb`, you can take the following actions +in preparation for GitLab 11.0: + +1. Upgrade to version 10.x which supports the new `mattermost['env']` setting. +1. Configure any settings not listed above through the `mattermost['env']` setting. Mattermost requires + environment variables to be provided in `MM_SETTINGS_` format. Below is an example + of how to convert the old settings syntax to the new one. + +The following settings in `gitlab.rb`: + +```ruby +mattermost['service_maximum_login_attempts'] = 10 +mattermost['team_teammate_name_display'] = "full_name" +mattermost['sql_max_idle_conns'] = 10 +mattermost['log_file_level'] = 'INFO' +mattermost['email_batching_interval'] = 30 +mattermost['file_enable_file_attachments'] = true +mattermost['ratelimit_memory_store_size'] = 10000 +mattermost['support_terms_of_service_link'] = "/static/help/terms.html" +mattermost['privacy_show_email_address'] = true +mattermost['localization_available_locales'] = "en,es,fr,ja,pt-BR" +mattermost['webrtc_enable'] = false +``` + +Would translate to: + +```ruby +mattermost['env'] = { + 'MM_SERVICESETTINGS_MAXIMUMLOGINATTEMPTS' => '10', + 'MM_TEAMSETTINGS_TEAMMATENAMEDISPLAY' => 'full_name', + 'MM_SQLSETTINGS_MAXIDLECONNS' => '10', + 'MM_LOGSETTINGS_FILELEVEL' => 'INFO', + 'MM_EMAILSETTINGS_BATCHINGINTERVAL' => '30', + 'MM_FILESETTINGS_ENABLEFILEATTACHMENTS' => 'true', + 'MM_RATELIMITSETTINGS_MEMORYSTORESIZE' => '10000', + 'MM_SUPPORTSETTINGS_TERMSOFSERVICELINK' => '/static/help/terms.html', + 'MM_PRIVACYSETTINGS_SHOWEMAILADDRESS' => 'true', + 'MM_LOCALIZATIONSETTINGS_AVAILABLELOCALES' => 'en,es,fr,ja,pt-BR', + 'MM_WEBRTCSETTINGS_ENABLE' => 'false' + } +``` + +Refer to the [Mattermost Configuration Settings +documentation](https://docs.mattermost.com/administration/config-settings.html) +for details about categories, configuration values, etc. + +There are a few exceptions to this rule: + +1. `ServiceSettings.ListenAddress` configuration of Mattermost is configured + by `mattermost['service_address']` and `mattermost['service_port']` settings. +1. Configuration settings named in an inconsistent way are given in the + following table. Use these mappings when converting them to environment + variables. + +|`gitlab.rb` configuration|Environment variable| +|---|---| +|`mattermost['service_lets_encrypt_cert_cache_file']`|`MM_SERVICESETTINGS_LETSENCRYPTCERTIFICATECACHEFILE`| +|`mattermost['service_user_access_tokens']`|`MM_SERVICESETTINGS_ENABLEUSERACCESSTOKENS`| +|`mattermost['log_console_enable']`|`MM_LOGSETTINGS_ENABLECONSOLE`| +|`mattermost['email_enable_batching']`|`MM_EMAILSETTINGS_ENABLEEMAILBATCHING`| +|`mattermost['email_batching_buffer_size']`|`MM_EMAILSETTINGS_EMAILBATCHINGBUFFERSIZE`| +|`mattermost['email_batching_interval']`|`MM_EMAILSETTINGS_EMAILBATCHINGINTERVAL`| +|`mattermost['email_smtp_auth']`|`MM_EMAILSETTINGS_ENABLESMTPAUTH`| +|`mattermost['email_notification_content_type']`|`MM_EMAILSETTINGS_NOTIFICATIONCONTENTTYPE`| +|`mattermost['ratelimit_enable_ratelimiter']`|`MM_RATELIMITSETTINGS_ENABLE`| +|`mattermost['support_email']`|`MM_SUPPORTSETTINGS_SUPPORTEMAIL`| +|`mattermost['localization_server_locale']`|`MM_LOCALIZATIONSETTINGS_DEFAULTSERVERLOCALE`| +|`mattermost['localization_client_locale']`|`MM_LOCALIZATIONSETTINGS_DEFAULTCLIENTLOCALE`| +|`mattermost['webrtc_gateway_stun_uri']`|`MM_WEBRTCSETTINGS_STUN_URI`| +|`mattermost['webrtc_gateway_turn_uri']`|`MM_WEBRTCSETTINGS_TURN_URI`| +|`mattermost['webrtc_gateway_turn_username']`|`MM_WEBRTCSETTINGS_TURN_USERNAME`| +|`mattermost['webrtc_gateway_turn_sharedkey']`|`MM_WEBRTCSETTINGS_TURN_SHAREDKEY`| + +NOTE: +GitLab 11.0 no longer generates `config.json` file from the configuration specified +in `gitlab.rb`. Users are responsible for managing this file which can be done via the +Mattermost System Console or manually. +If a configuration setting is specified via both the `gitlab.rb` (as an environment variable) +and `config.json` files, the environment variable gets precedence. + +If you encounter any issues [visit the GitLab Mattermost troubleshooting forum](https://forum.mattermost.org/t/upgrading-to-gitlab-mattermost-in-gitlab-8-9/1735) and share any relevant portions of `mattermost.log` along with the step at which you encountered issues. + +### Upgrading GitLab Mattermost outside of GitLab + +If you choose to upgrade Mattermost outside of the Omnibus GitLab automation, [follow this guide](https://docs.mattermost.com/administration/upgrade.html). + +## OAuth2 sequence diagram + +The following image is a sequence diagram for how GitLab works as an OAuth2 +provider for Mattermost. You can use this to troubleshoot errors +in getting the integration to work: + +![sequence diagram](img/gitlab-mattermost.png) + +## Troubleshooting the Mattermost CLI + +### Failed to ping DB retrying in 10 seconds err=dial tcp: lookup dockerhost: no such host + +As of version 11.0, majority of the Mattermost settings are now configured via environmental variables. The error is mainly due to the database connection string being commented out in `gitlab.rb` and the database connection settings being set in environmental variables. Additionally, the connection string in the `gitlab.rb` is for MySQL which is no longer supported as of 12.1. + +You can fix this by setting up a `mattermost-cli` [shell alias](#mattermost-command-line-tools-cli). + +## Community support resources + +For help and support around your GitLab Mattermost deployment please see: + +- [Troubleshooting Forum](https://forum.mattermost.org/t/how-to-use-the-troubleshooting-forum/150) for configuration questions and issues. +- [Troubleshooting FAQ](https://docs.mattermost.com/install/troubleshooting.html). +- [Mattermost GitLab Issues Support Handbook](https://docs.mattermost.com/process/support.html?highlight=omnibus#gitlab-issues). +- [GitLab Mattermost issue tracker](https://gitlab.com/gitlab-org/gitlab-mattermost/-/issues) for verified bugs with repro steps. diff --git a/doc/user/project/integrations/mattermost_slash_commands.md b/doc/user/project/integrations/mattermost_slash_commands.md index 8824d0c549c364..8027cc1c61e80f 100644 --- a/doc/user/project/integrations/mattermost_slash_commands.md +++ b/doc/user/project/integrations/mattermost_slash_commands.md @@ -22,7 +22,7 @@ on your configuration: - **Omnibus GitLab installations**: Mattermost is bundled with [Omnibus GitLab](https://docs.gitlab.com/omnibus/). To configure Mattermost for Omnibus GitLab, read the - [Omnibus GitLab Mattermost documentation](https://docs.gitlab.com/omnibus/gitlab-mattermost/). + [Omnibus GitLab Mattermost documentation](../../../integration/mattermost/index.md). - **If Mattermost is installed on the same server as GitLab**, use the [automated configuration](#automated-configuration). - **For all other installations**, use the [manual configuration](#manual-configuration). -- GitLab