Встроенные приложения
Образы Docker Antimatter поставляются с набором приложений (в Системной консоли они называются плагинами). На этой странице перечислены эти приложения, указано, какие из них включены после установки, и описаны параметры, которые администратору необходимо настроить для каждого из них.
Встроенные приложения
Приложения отображаются в Системной консоли как Плагины. Они находятся в образе (в /antimatter/prepackaged_plugins), подписаны ключом подписи приложений Antimatter, поэтому устанавливаются без подключения к Интернету.
В архиве релиза и в пакетах .deb и .rpm содержится меньше приложений: см. Приложения в пакетах и архиве.
| Приложение | Идентификатор приложения | Образ | Включено после установки |
|---|---|---|---|
| Agents (AI) | mattermost-ai | оба | да |
| Calls | com.mattermost.calls | оба | да |
| Kanban | focalboard | оба | да |
| Плейбуки | playbooks | оба | да |
| GitHub | github | оба | нет |
| GitLab | com.github.manland.mattermost-plugin-gitlab | оба | нет |
| Jira | jira | оба | нет |
| Метрики | com.mattermost.mattermost-plugin-metrics | оба | нет |
| Voice Channels | com.antimatterchat.voice-channels | antimatter-next | да |
| Опросы | com.antimatterchat.polls | antimatter-next | да |
| Заметки | com.antimatterchat.notes | antimatter-next | да |
| Доска для рисования | com.antimatterchat.whiteboard | antimatter-next | да |
| Почта | com.antimatterchat.mail | antimatter-next | да |
| Календарь | com.antimatterchat.calendar | antimatter-next | да |
| GIFs | com.antimatterchat.gifs | antimatter-next | да |
| Memes | memes | antimatter-next | нет |
| Список дел | com.mattermost.plugin-todo | antimatter-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 сервиса GIF | AM_GIFS_SERVICE_URL | пусто | Базовый URL API сервиса, например http://gifs:8080/v2. Если поле пустое, функция GIF отключена. |
| Ключ API | AM_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_LIMIT | 20 | Количество запросов в секунду на клиента (API-ключ и адрес); 0 отключает ограничение. Compose-файл устанавливает 0, так как все запросы Antimatter используют один и тот же ключ и адрес. |
AM_GIFS_LISTEN | :8080 | Адрес прослушивания. |
AM_GIFS_PUBLIC_URL | из запросов | Внешний URL, если сервис доступен извне. |
AM_GIFS_TRUST_PROXY | false | Доверять заголовкам X-Forwarded-*, только за прокси. |
AM_GIFS_UPLOAD_MAX_MB | 16 | Максимальный размер загружаемого файла. |
Чтобы массово добавить собственные 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. По умолчанию используется tenantcommon. - В обоих случаях 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 перенаправления OAuth | URL вебхука |
|---|---|---|
| GitHub | https://chat.example.com/plugins/github/oauth/complete | https://chat.example.com/plugins/github/webhook |
| GitLab | https://chat.example.com/plugins/com.github.manland.mattermost-plugin-gitlab/oauth/complete | https://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 вебхуков. | |
Приложения 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 не выдаёт себя за обладателя такой лицензии для них.