Встроенные приложения

Образы Docker Antimatter поставляются с набором приложений (в Системной консоли они называются плагинами). На этой странице перечислены эти приложения, указано, какие из них включены после установки, и описаны параметры, которые администратору необходимо настроить для каждого из них.

Встроенные приложения

Приложения отображаются в Системной консоли как Плагины. Они находятся в образе (в /antimatter/prepackaged_plugins), подписаны ключом подписи приложений Antimatter, поэтому устанавливаются без подключения к Интернету.

В архиве релиза и в пакетах .deb и .rpm содержится меньше приложений: см. Приложения в пакетах и архиве.

ПриложениеИдентификатор приложенияОбразВключено после установки
Agents (AI)mattermost-aiобада
Callscom.mattermost.callsобада
Kanbanfocalboardобада
Плейбукиplaybooksобада
GitHubgithubобанет
GitLabcom.github.manland.mattermost-plugin-gitlabобанет
Jirajiraобанет
Метрикиcom.mattermost.mattermost-plugin-metricsобанет
Voice Channelscom.antimatterchat.voice-channelsantimatter-nextда
Опросыcom.antimatterchat.pollsantimatter-nextда
Заметкиcom.antimatterchat.notesantimatter-nextда
Доска для рисованияcom.antimatterchat.whiteboardantimatter-nextда
Почтаcom.antimatterchat.mailantimatter-nextда
Календарьcom.antimatterchat.calendarantimatter-nextда
GIFscom.antimatterchat.gifsantimatter-nextда
Memesmemesantimatter-nextнет
Список делcom.mattermost.plugin-todoantimatter-nextнет

Приложения, включённые по умолчанию, устанавливаются при каждом запуске, если они ещё не установлены, или обновляются, если в образе есть более новая версия. Если вы отключите приложение, оно останется отключённым: значение по умолчанию применяется только к тем приложениям, которые ещё не упомянуты в конфигурации. Приложения, сохраняющие идентификатор Mattermost (Agents, Calls, Kanban, Playbooks и интеграции), являются собственными сборками Antimatter.

Включение, отключение и настройка приложений

Перейдите в Системная консоль › Плагины › Управление плагинами. В разделе Установленные плагины для каждого приложения доступны кнопки Включить или Отключить, Настройки и Удалить, а также отображается его состояние (Running, Not running, Failed to start…). Для каждого приложения с настройками также есть отдельная страница в разделе Системная консоль › Плагины.

Встроенные приложения, отключённые по умолчанию, устанавливаются из собственной копии образа: нажмите на свой аватар в верхней части панели приложений и выберите Магазин приложений (в классическом интерфейсе — в меню продукта), найдите приложение и нажмите Установить, затем включите его в управлении плагинами. Из командной строки:

docker compose exec antimatter amctl --local plugin marketplace install github
docker compose exec antimatter amctl --local plugin enable github

Другие команды: amctl plugin list, amctl plugin disable <id>, amctl plugin delete <id>.

Включение приложений через конфигурацию

Список включённых приложений задаётся параметром PluginSettings.PluginStates — это карта идентификаторов приложений. Вы можете добавить записи в неё с помощью amctl; если включён параметр Включить автоматически предустановленные плагины (включён по умолчанию), включённое встроенное приложение будет установлено при следующем запуске:

docker compose exec -T antimatter amctl --local config patch /dev/stdin <<'EOF'
{"PluginSettings": {"PluginStates": {"com.mattermost.plugin-todo": {"Enable": true}}}}
EOF
docker compose restart antimatter

Таким же образом можно установить Todo, который не предлагается в диалоге Marketplace. Переменная AM_PLUGINSETTINGS_PLUGINSTATES также работает, но она заменяет весь словарь: перечислите все приложения, которые вы хотите включить.

Настройки приложений

Настройки приложения хранятся в PluginSettings.Plugins.<app id>, где ключи записаны в нижнем регистре. Измените их на странице Системной консоли приложения или с помощью amctl config patch, как описано в разделе Конфигурация. Переменная AM_PLUGINSETTINGS_PLUGINS заменяет настройки всех приложений сразу и блокирует их, поэтому избегайте её использования.

GIFs

Приложение GIFs добавляет вкладки с GIF и стикерами в выборщик эмодзи. Оно работает на базе сервиса GIF Antimatter (gifs-server), который использует API Tenor. Compose-файл сайта запускает сервис и настраивает приложение через переменные. Его настройки, доступные в Системная консоль › Плагины › GIFs:

ПараметрПеременная (значение по умолчанию)Значение по умолчаниюНазначение
URL сервиса GIFAM_GIFS_SERVICE_URLпустоБазовый URL API сервиса, например http://gifs:8080/v2. Если поле пустое, функция GIF отключена.
Ключ APIAM_GIFS_API_KEYпустоОдна из переменных AM_GIFS_API_KEYS сервиса.
Ключ загрузкиAM_GIFS_UPLOAD_KEYпустоОдин из ключей AM_GIFS_UPLOAD_KEYS. Позволяет пользователям добавлять GIF и стикеры из пикера, а также удалять добавленные таким образом. Если поле пустое, загрузка отключена.
Кто может добавлять GIF и стикерыСистемные администраторыСистемные администраторы или Все. Гости никогда не могут, как и в случае с пользовательскими эмодзи. Добавленные элементы доступны всем; их могут удалить только тот, кто их добавил, и системные администраторы.
Включить стикерывклПоказывает вкладку со стикерами.
Фильтр контентасреднийвысокий, средний, низкий или отключен.
Поставлять медиафайлы через AntimatterвклБраузеры загружают GIF из Antimatter, который получает их из сервиса. Оставьте включенным, если сервис доступен только во внутренней сети.
URL медиафайлов/media/ сервисаМесто хранения медиафайлов при их прямой поставке.
Размер кэша (МБ)64 МБКэш памяти приложения.

Для этого приложения переменные служат только значениями по умолчанию: значения, установленные в Системной консоли, имеют приоритет. Если выборщик GIF остается пустым, проверьте URL сервиса и API-ключ на этой странице.

Пока настроено приложение GIF, его вкладка заменяет встроенный выборщик Giphy (Системная консоль › Интеграции › GIF › Включить выбор GIF, ServiceSettings.EnableGifPicker).

Сервис GIF

Сервис хранит все данные в своей директории данных (/data, том gifs): поисковый индекс и медиафайлы. Его основные переменные:

ПеременнаяЗначение по умолчаниюНазначение
AM_GIFS_API_KEYSнетAPI-ключи, разделенные запятыми. Без ключа API открыт для всех, кто имеет к нему доступ. Наличие нескольких ключей позволяет выполнять их ротацию.
AM_GIFS_UPLOAD_KEYSнетКлючи, разрешающие загрузку и удаление загруженных элементов. Без ключа загрузка невозможна.
AM_GIFS_RATE_LIMIT20Количество запросов в секунду на клиента (API-ключ и адрес); 0 отключает ограничение. Compose-файл устанавливает 0, так как все запросы Antimatter используют один и тот же ключ и адрес.
AM_GIFS_LISTEN:8080Адрес прослушивания.
AM_GIFS_PUBLIC_URLиз запросовВнешний URL, если сервис доступен извне.
AM_GIFS_TRUST_PROXYfalseДоверять заголовкам X-Forwarded-*, только за прокси.
AM_GIFS_UPLOAD_MAX_MB16Максимальный размер загружаемого файла.

Чтобы массово добавить собственные GIF, импортируйте их с помощью манифеста из каталога, смонтированного в одноразовый контейнер:

docker compose run --rm -v "$PWD/my-gifs:/import:ro" gifs import -manifest /import/manifest.json

Чтобы повторно импортировать стартовые стикеры после обновления: docker compose run --rm gifs stickers. Формат манифеста и другие команды описаны в README gifs-server.

Почта и календарь

Почта и календарь подключают каждого пользователя к его собственному почтовому ящику (IMAP и SMTP) и календарю (CalDAV). Пользователи вводят адрес сервера и пароль в приложении; пароли хранятся в зашифрованном виде. Вам не нужно настраивать почтовые или календарные серверы для них, но вы определяете, к каким серверам они могут подключаться:

ПриложениеПараметрЗначение по умолчаниюНазначение
Почта, календарьРазрешить почтовые серверы в частных сетях, Разрешить календарные серверы в частных сетях (AllowPrivateNetworks)выключеноЕсли параметр выключен, сервер отказывает в подключении к loopback, частным и link-local адресам, поэтому приложения нельзя использовать для доступа к вашей внутренней сети. Включите его, если ваш почтовый или календарный сервер находится по частному адресу.
Почта, календарьРазрешить незашифрованные соединения (AllowInsecureConnections)выключеноЕсли параметр выключен, соединения должны использовать TLS (Почта: TLS или STARTTLS; Календарь: HTTPS).
ПочтаИнтервал проверки непрочитанных (минуты) (UnreadCheckMinutes)2 минутыКак часто проверяется количество непрочитанных сообщений, если почтовый сервер не может отправлять их в реальном времени.
ПочтаМаксимальный размер сообщения (МБ) (MaxMessageSizeMB)25 МБОграничение размера отправляемых и читаемых сообщений.
КалендарьОтправлять напоминания (EnableReminders)вклБот календаря отправляет личное сообщение перед событиями (за 10 минут, для событий без собственных напоминаний).

Чтобы позволить пользователям входить в почтовые ящики Gmail или Microsoft 365 с помощью своих учетных записей, а не паролей, создайте OAuth-клиент и заполните поля Google или Microsoft в приложении «Почта»:

  • Google: веб-OAuth-клиент с Gmail API и областью доступа https://mail.google.com/.
  • Microsoft: приложение Entra ID с делегированными разрешениями IMAP.AccessAsUser.All, SMTP.Send, offline_access, openid, email и profile. По умолчанию используется tenant common.
  • В обоих случаях URI перенаправления — https://chat.example.com/plugins/com.antimatterchat.mail/oauth/callback (URL вашего сайта).

Kanban, заметки, доски для рисования, опросы и плейбуки

  • Kanban (focalboard) открывается в боковой панели рядом с разговором, как и Playbooks. Старые ссылки на страницы /kanban/… и /boards/… открывают ту же доску или карточку в сообществе. Единственный параметр, Разрешить публичное шаринг досок (EnablePublicSharedBoards, выключен), позволяет редакторам доски делиться ею с любым, у кого есть ссылка, без входа в систему.
  • У Notes и Polls нет настроек.
  • Whiteboard: системные администраторы могут загрузить библиотеки фигур (файлы Excalidraw .excalidrawlib, до 5 МБ каждый) для всего сервера на странице настроек. Администраторы сообществ управляют библиотеками своих сообществ.
  • Playbooks открывается в боковой панели. Старые ссылки на страницы /playbooks/… открывают тот же запуск или плейбук в сообществе. У него есть несколько параметров, в основном экспериментальные функции; значения по умолчанию подходят для большинства серверов.
  • Memes: Кто может добавлять шаблоны мемов: Все (по умолчанию), Системные администраторы или Никто (пользовательские шаблоны отключены), что запрещает создание новых шаблонов, но уже добавленные остаются доступными. Гости никогда не добавляют шаблоны. Шаблон могут удалить только его создатель и системные администраторы.
  • У Todo нет серверных настроек.

GitHub, GitLab и Jira

Эти приложения связывают Antimatter с вашим хостингом кода и трекером задач. Каждому из них требуется OAuth-приложение на стороне внешнего сервиса и вебхук, указывающий обратно на Antimatter. Включите приложение, затем выполните его команду настройки в любом канале, которая проведёт вас по шагам: /github setup, /gitlab setup или /jira setup.

ПриложениеURL перенаправления OAuthURL вебхука
GitHubhttps://chat.example.com/plugins/github/oauth/completehttps://chat.example.com/plugins/github/webhook
GitLabhttps://chat.example.com/plugins/com.github.manland.mattermost-plugin-gitlab/oauth/completehttps://chat.example.com/plugins/com.github.manland.mattermost-plugin-gitlab/webhook
Jira/jira instance install server <url> или /jira instance install cloud-oauth <url>; /jira webhook выводит URL вебхуков.
Оставьте Use Preregistered OAuth Application выключенным в приложениях GitHub и GitLab: оно опирается на сервис Mattermost, которого нет в Antimatter, и приложение отказывается запускаться, если эта опция включена. Зарегистрируйте собственное OAuth-приложение.

Приложения GitHub и GitLab генерируют секрет вебхука и ключ шифрования при первом сохранении. Приложение GitHub можно ограничить организациями (GithubOrg), а приложение GitLab — группой (GitlabGroup); для GitHub Enterprise или self-hosted GitLab задайте его базовый URL.

Метрики

Приложение Metrics собирает метрики производительности сервера в небольшую базу данных временных рядов внутри Antimatter, поэтому вы можете скачать их или включить в пакет поддержки без запуска Prometheus. При запуске оно включает метрический endpoint сервера (MetricsSettings.Enable). См. Operations.

Установка других приложений

Antimatter запускает приложения Mattermost (плагины). Три способа добавить одно из них:

  • Из удалённого магазина. Параметр Включить другой магазин плагинов (PluginSettings.EnableRemoteMarketplace) отключён по умолчанию, а URL магазина плагинов (PluginSettings.MarketplaceURL) пуст: Antimatter не использует магазин Mattermost и игнорирует его адрес, если он остался в конфигурации из Mattermost. Чтобы отобразить приложения из сервера магазина, которому вы доверяете, включите этот параметр и укажите его URL. Сборки из этого магазина для приложений, поставляемых с Antimatter (Calls, Playbooks, Kanban и другие), скрыты, чтобы они не могли заменить оригинальные: параметр Разрешить сборкам из Marketplace заменять плагины Antimatter (PluginSettings.AllowMarketplaceToReplaceAntimatterPlugins) отключён по умолчанию.
  • Загрузкой пакета (.tar.gz). Загрузка выключена по умолчанию и не имеет переключателя в Системной консоли: установите AM_PLUGINSETTINGS_ENABLEUPLOADS=true, затем используйте Загрузить плагин в управлении плагинами или команду amctl --local plugin add app.tar.gz.
  • По URL: amctl plugin install-url <url>, также при включённой загрузке.

Antimatter проверяет подписи приложений по ключам, которым он доверяет: ключ Antimatter, ключ Mattermost, Inc., которым подписываются публикуемые приложения (поэтому приложение Mattermost, которое вы скачали сами, устанавливается), и любой ключ, который вы добавите в PluginSettings.SignaturePublicKeyFiles. Если Требовать подпись плагина (PluginSettings.RequirePluginSignature, выключен по умолчанию) включён, неподписанные приложения отклоняются, а загрузка отключается.

Приложение работает внутри сервера с полным доступом к его данным. Устанавливайте только те приложения, которым вы доверяете.

Некоторые приложения, созданные для платных редакций Mattermost, сами проверяют наличие лицензии Mattermost и отказываются работать; Antimatter не выдаёт себя за обладателя такой лицензии для них.