---
title: 'Облачный сервер с Mattermost'
sidebar_label: 'Mattermost'
sidebar_position: 19
toc_max_heading_level: 3
description: 'Как создать облачный сервер с мессенджером для корпоративного общения'
---

import EditIcon from '@selectel/docux/icons/edit'
import CheckIcon from '@selectel/docux/icons/check'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import {CustomTable} from '@selectel/docux/components'
import Formbricks from '@theme/MDXComponents/Formbricks'
import CopyIcon from '@selectel/docux/icons/copy'
import CreateServer from '@site/docs/_partials/cloud-servers/applications/create-server-for-apps.mdx'

# Облачный сервер с Mattermost

Mattermost — это мессенджер с открытым исходным кодом для обмена мгновенными сообщениями. Можно использовать как альтернативу другим мессенджерам (например, Rocket.Chat) в качестве корпоративного внутреннего чата в компаниях. В Mattermost можно обмениваться файлами и автоматизировать рутинные действия с помощью сценариев.

Mattermost можно развернуть локально или в облаке — [создать облачный сервер с готовыми приложением Mattermost](#create-cloud-server-with-mattermost).

Перед созданием облачного сервера с приложением ознакомьтесь с [лицензионными соглашениями программного обеспечения](https://423.selcdn.ru/kb/license-agreements-for-application-images-LANG.pdf), которое входит в образ.

## Минимальные требования к ресурсам \{#minimum-requirements}

<CustomTable>
  <table>
    <thead>
      <th />

      <th>Тестовая среда</th>
      <th>Рабочая среда</th>
    </thead>

    <tbody>
      <tr>
        <th>Количество vCPU</th>
        <td>2</td>
        <td>2</td>
      </tr>

      <tr>
        <th>RAM</th>
        <td>2 ГБ</td>
        <td>4 ГБ</td>
      </tr>

      <tr>
        <th>Загрузочный диск</th>
        <td>20 ГБ</td>
        <td>20 ГБ</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## Создать облачный сервер с Mattermost \{#create-cloud-server-with-mattermost}

Для работы Mattermost облачный сервер должен быть доступен из интернета.
Для этого при создании сервера нужно создать приватную подсеть и подключить публичный плавающий IP-адрес.

Чтобы настроить Mattermost, при создании сервера необходимо указать user data — пользовательские параметры конфигурации операционной системы.
Вы можете задать один из двух набор параметров:

* с автоматическим созданием базы данных PostgreSQL на сервере;
* с подключением созданной [облачной базы данных PostgreSQL](/managed-databases/postgresql/) версии выше 12.

После создания сервера с Mattermost автоматически выпустится бесплатный [TLS-сертификат от Let’s Encrypt®](/certificates-manager/certificates/lets-encrypt.mdx) для домена, который вы укажете.
Для выпуска сертификата нужно добавить A-запись для домена и указать в значении записи публичный плавающий IP-адрес сервера.
Домен можно добавить в [DNS-хостинг Selectel (actual)](/dns-hosting/).

1. [Создайте публичный плавающий IP-адрес](#create-floating-ip).

2. [Добавьте A-запись для домена](#add-a-record).

3. [Создайте облачный сервер с Mattermost](#create-mattermost-server).

### 1. Создать публичный плавающий IP-адрес \{#create-floating-ip}

Создайте публичный плавающий IP-адрес, чтобы облачный сервер с Mattermost был доступен из интернета.

Используйте подраздел [Создать публичный плавающий IP-адрес](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx#create-public-floating-ip) инструкции [Публичные плавающие IP-адреса](/cloud-servers/cloud-networks/public-floating-ip-addresses.mdx).

### 2. Добавить А-запись для домена⁠ \{#add-a-record}

[Добавьте ресурсную запись](/dns-hosting/records/add-record.mdx), чтобы получить доступ к Mattermost по домену.

Укажите:

* [тип ресурсных записей](/dns-hosting/records/add-record.mdx#record-types) в группе — A;
* значение записи — публичный плавающий IP-адрес, который вы [создали на этапе 1](#create-floating-ip).

### 3. Создать облачный сервер с Mattermost \{#create-mattermost-server}

<CreateServer AppNameInPanel="Cloud Mattermost" MinConfig="2 vCPU, RAM от 4 ГБ и размером загрузочного диска от 20 ГБ" OptionalVolumes="Опционально: чтобы добавить дополнительные" VolumeSize="Укажите размер сетевого диска в ГБ или ТБ" />

<div style={{paddingLeft:'2em'}}>
  <Tabs queryString="add-user-data">
    <TabItem value="standard" default>
      <TabItemLabel>
        Создание базы данных на сервере
      </TabItemLabel>

      ```yaml
      #cloud-config

      write_files:
      - path: "/opt/gomplate/values/user-values.yaml"
        permissions: "0644"
        content: |
          mattermostDomain: "<example.com>"
          mattermostAcmeEmail: "<root@example.com>"
          mattermostPostgresDB: "<database_name>"
          mattermostPostgresUser: "<database_user_name>"
          mattermostPostgresPassword: "<database_user_password>"
          mattermostTimezone: "<time_zone>"
          useExternalDB: false
      ```

      Укажите:

      * `<example.com>` — домен для доступа к Mattermost, который вы [добавили ранее](#add-a-record);
      * `<root@example.com>` — электронная почта администратора;
      * `<database_name>` — имя базы данных PostgreSQL;
      * `<database_user_name>` — имя пользователя базы данных PostgreSQL;
      * `<database_user_password>` — пароль пользователя базы данных PostgreSQL;
      * `<time_zone>` — часовой пояс, например `Europe/Moscow`;
      * `useExternalDB: false` — параметр для использования базы данных на сервере.
    </TabItem>

    <TabItem value="with-dbaas">
      <TabItemLabel>
        Подключение существующей облачной базы данных
      </TabItemLabel>

      ```yaml
      #cloud-config

      write_files:
      - path: "/opt/gomplate/values/user-values.yaml"
        permissions: "0644"
        content: |
          mattermostDomain: "<example.com>"
          mattermostAcmeEmail: "<root@example.com>"
          mattermostPostgresDB: "<database_name>"
          mattermostPostgresUser: "<database_user_name>"
          mattermostPostgresPassword: "<database_user_password>"
          mattermostTimezone: "<time_zone>"
          useExternalDB: true
          externalDBHost: "<host>"
          externalDBSSLMode: verify-ca
          externalDBPort: "<port>"
      ```

      Укажите:

      * `<example.com>` — домен для доступа к Mattermost, который вы [добавили ранее](#add-a-record);
      * `<root@example.com>` — электронная почта администратора Mattermost для создания аккаунта и получения уведомлений Let’s Encrypt®;
      * `<database_name>` — имя облачной базы данных PostgreSQL. Можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/dbaas/): в верхнем меню нажмите **Продукты** → **Облачные базы данных** → страница кластера → вкладка **Базы данных**;
      * `<database_user_name>` — имя пользователя облачной базы данных PostgreSQL. Можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/dbaas/): в верхнем меню нажмите **Продукты** → **Облачные базы данных** → страница кластера → вкладка **Базы данных** → карточка базы данных → поле **Владелец базы**;
      * `<database_user_password>` — пароль пользователя облачной базы данных PostgreSQL. Пароль не хранится в панели управления — если вы его потеряли, [измените пароль](/managed-databases/postgresql/manage-users.mdx#change-user-password);
      * `<time_zone>` — часовой пояс, например `Europe/Moscow`;
      * `useExternalDB: true` — параметр для использования облачной базы данных;
      * `<host>` — DNS-адрес облачной базы данных PostgreSQL. Можно посмотреть в [панели управления](https://my.selectel.ru/vpc/default/dbaas/): в верхнем меню нажмите **Продукты** → **Облачные базы данных** → страница кластера → вкладка **Настройки** → блок **Адреса и статусы нод** → вкладка **DNS-адреса**;
      * опционально: `<port>` — порт для подключения к PostgreSQL:
        * `5432` — порт для подключения напрямую к процессу PostgreSQL;
        * `5433` — порт для подключения к выбранной ноде через [пулер соединений](/managed-databases/postgresql/connection-pooler.mdx) — позволяет снизить нагрузку на PostgreSQL. Используйте только [режим сессии (session)](/managed-databases/postgresql/connection-pooler.mdx#session-mode). Не используйте режим транзакции (transaction), так как при инициализации Mattermost не будут проходить миграции.
    </TabItem>
  </Tabs>
</div>

<Formbricks />
