번들 앱

Antimatter의 Docker 이미지에는 일련의 앱(시스템 콘솔의 플러그인)이 포함되어 있습니다. 이 페이지에서는 해당 앱을 나열하고, 설치 후 활성화되는 앱, 그리고 각 앱에 필요한 관리자 설정을 설명합니다.

함께 포함된 앱

앱은 시스템 콘솔에서 플러그인으로 나열됩니다. 이미지(/antimatter/prepackaged_plugins)에 포함되어 있으며 Antimatter 앱 서명 키로 서명되어 있어 인터넷 연결 없이 설치할 수 있습니다.

릴리스 아카이브와 .deb, .rpm 패키지에는 포함된 앱이 더 적습니다. 패키지와 아카이브에 포함된 앱을 참고하세요.

앱앱 ID이미지설치 후 활성화 여부
Agents (AI)mattermost-ai둘 다예
Callscom.mattermost.calls둘 다예
칸반focalboard둘 다예
플레이북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 ID를 유지하는 앱(Agents, Calls, Kanban, Playbooks 및 통합)은 Antimatter 자체 빌드입니다.

앱 활성화, 비활성화 및 설정

시스템 콘솔 › 플러그인 › 플러그인 관리로 이동합니다. 설치된 플러그인 아래에서 각 앱은 활성화 또는 Disabled, 설정, 제거 옵션을 제공하며 상태(실행 중, 실행 안 함, 시작 실패 등)를 표시합니다. 설정이 있는 각 앱은 시스템 콘솔 › 플러그인 아래에 자체 페이지가 있습니다.

기본적으로 비활성화된 번들 앱은 이미지 자체의 복사본에서 설치됩니다. 앱 레일 상단의 프로필 사진을 클릭하고 플러그인 마켓플레이스(클래식 인터페이스에서는 제품 메뉴에 위치)를 선택한 후, 해당 앱을 찾아 설치를 클릭하고 플러그인 관리에서 활성화합니다. 명령줄에서는 다음과 같습니다:

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 설정, 즉 앱 ID의 맵으로 결정됩니다. 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를 설치하는 방법도 이것입니다. 변수 AM_PLUGINSETTINGS_PLUGINSTATES도 작동하지만, 이는 전체 맵을 대체합니다: 활성화하려는 모든 앱을 나열해야 합니다.

앱 설정

앱 설정은 PluginSettings.Plugins.<app id> 아래에 저장되며, 키는 소문자로 사용됩니다. 앱의 시스템 콘솔 페이지에서 변경하거나, 구성에 나와 있는 대로 amctl config patch를 사용할 수 있습니다. AM_PLUGINSETTINGS_PLUGINS는 모든 앱의 설정을 한 번에 대체하고 잠그므로 사용하지 않는 것이 좋습니다.

GIFs

GIF 앱은 이모지 선택기에 GIF와 스티커 탭을 추가하며, Antimatter의 GIF 서비스(gifs-server)를 기반으로 합니다. 이 서비스는 Tenor API를 사용합니다. 사이트의 compose 파일은 서비스를 실행하고 변수를 통해 앱을 구성합니다. 시스템 콘솔 › 플러그인 › GIF에 있는 설정은 다음과 같습니다:

설정변수 (기본값)기본값기능
GIF 서비스 URLAM_GIFS_SERVICE_URL빈 값서비스의 API 기본 URL, 예: 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를 통해 미디어 서빙켜짐브라우저가 Antimatter에서 GIF를 로드하고, Antimatter가 서비스에서 가져옵니다. 서비스가 내부 네트워크에만 있는 경우 켜 두세요.
미디어 URL서비스의 /media/직접 서빙할 때 미디어가 위치한 곳.
캐시 크기 (MB)64 MB앱의 메모리 캐시.

이 앱의 경우, 변수는 기본값일 뿐입니다. 시스템 콘솔에서 설정한 값이 우선합니다. GIF 선택기가 비어 있으면 해당 페이지의 서비스 URL과 API 키를 확인하세요.

GIF 앱이 설정된 동안, 해당 탭은 내장 Giphy 선택기를 대체합니다(시스템 콘솔 › 통합 › 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. 매니페스트 형식과 기타 명령은 gifs-server README에 있습니다.

메일 및 캘린더

메일 및 캘린더는 각 사용자의 메일함(IMAP 및 SMTP)과 캘린더(CalDAV)를 연결합니다. 사용자는 앱에서 서버와 비밀번호를 입력하며, 비밀번호는 암호화되어 저장됩니다. 메일 또는 캘린더 서버를 대신 설정할 필요는 없지만, 사용자가 연결할 수 있는 대상은 다음과 같이 결정할 수 있습니다:

앱설정기본값기능
메일, 캘린더개인 네트워크의 메일 서버 허용, 개인 네트워크의 캘린더 서버 허용 (AllowPrivateNetworks)꺼짐끄기: 서버는 루프백, 개인 및 링크 로컬 주소로의 연결을 거부하여 앱이 내부 네트워크에 접근하는 것을 방지합니다. 메일 또는 캘린더 서버가 개인 주소에 있는 경우 이 설정을 켜세요.
메일, 캘린더암호화되지 않은 연결 허용 (AllowInsecureConnections)꺼짐끄기: 연결은 TLS를 사용해야 합니다(메일: TLS 또는 STARTTLS; 캘린더: HTTPS).
메일읽지 않은 항목 확인 간격(분) (UnreadCheckMinutes)2분메일 서버가 읽지 않은 항목 수를 푸시할 수 없을 때 이를 확인하는 주기입니다.
메일메시지 최대 크기(MB) (MaxMessageSizeMB)25 MB보내고 읽는 메시지의 크기 제한입니다.
캘린더리마인더 보내기 (EnableReminders)켜짐캘린더 봇은 이벤트 시작 10분 전에 다이렉트 메시지를 보냅니다(자체 알림이 없는 이벤트의 경우).

사용자가 비밀번호 대신 계정으로 Gmail 또는 Microsoft 365 메일함에 로그인할 수 있도록 하려면 OAuth 클라이언트를 생성하고 메일 앱의 Google 또는 Microsoft 필드를 채우세요:

  • Google: Gmail API와 https://mail.google.com/ 범위를 가진 Web OAuth 클라이언트.
  • Microsoft: 위임된 권한 IMAP.AccessAsUser.All, SMTP.Send, offline_access, openid, email 및 profile을 가진 Entra ID 앱. 기본 테넌트는 common입니다.
  • 두 경우 모두 리다이렉트 URI는 https://chat.example.com/plugins/com.antimatterchat.mail/oauth/callback(사이트 URL)입니다.

Kanban, 메모, 화이트보드, 투표 및 플레이북

  • Kanban(focalboard)은 플레이북과 마찬가지로 대화 옆의 사이드 패널에서 열립니다. /kanban/… 및 /boards/… 페이지를 가리키는 기존 링크는 커뮤니티에서 동일한 보드 또는 카드를 엽니다. 유일한 설정인 공개 공유 보드 활성화(EnablePublicSharedBoards, 기본값: 비활성)는 보드 편집자가 로그인 없이 링크를 가진 누구나와 보드를 공유할 수 있도록 합니다.
  • Notes와 Polls에는 설정이 없습니다.
  • Whiteboard: 시스템 관리자는 설정 페이지에서 전체 서버를 위한 형식 라이브러리(Excalidraw .excalidrawlib 파일, 각 파일 최대 5 MB)를 업로드할 수 있습니다. 커뮤니티 관리자는 자신의 커뮤니티 라이브러리를 관리합니다.
  • 플레이북은 사이드 패널에서 열립니다. /playbooks/… 페이지를 가리키는 기존 링크는 커뮤니티에서 동일한 실행 또는 플레이북을 엽니다. 몇 가지 설정이 있으며 대부분 실험性功能입니다. 기본값은 대부분의 서버에 적합합니다.
  • 밈: 밈 템플릿을 추가할 수 있는 사용자: 전체(기본값), 시스템 관리자, 또는 없음(커스텀 템플릿 비활성)입니다. 후자는 새 템플릿 추가를 막되 이미 추가된 템플릿은 계속 사용할 수 있게 합니다. 게스트는 템플릿을 추가할 수 없습니다. 템플릿을 추가한 사용자 및 시스템 관리자가 삭제할 수 있습니다.
  • Todo에는 서버 설정이 없습니다.

GitHub, GitLab, Jira

이러한 앱은 Antimatter를 코드 호스팅 및 이슈 트래커와 연결합니다. 각 앱은 상대방 측의 OAuth 애플리케이션과 Antimatter로 되돌아가는 웹훅이 필요합니다. 앱을 활성화한 후, 모든 채널에서 해당 설정 명령을 실행하면 단계별로 안내를 받을 수 있습니다: /github setup, /gitlab setup 또는 /jira setup.

앱OAuth 리다이렉트 URLWebhook URL
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을 출력합니다.
GitHub 및 GitLab 앱에서 Use Preregistered OAuth Application를 끔으로 설정하세요. 이 옵션은 Antimatter에 없는 Mattermost 서비스에 의존하며, 켜져 있으면 앱이 시작을 거부합니다. 자체 OAuth 애플리케이션을 등록하세요.

GitHub 및 GitLab 앱은 첫 저장 시 웹훅 시크릿 및 암호화 키를 생성합니다. GitHub 앱은 조직(GithubOrg)으로, GitLab 앱은 그룹(GitlabGroup)으로 제한할 수 있으며, GitHub Enterprise 또는 자체 호스팅 GitLab의 경우 기본 URL을 설정해야 합니다.

메트릭스

Metrics 앱은 서버의 성능 메트릭을 Antimatter 내부의 작은 시계열 데이터베이스에 수집하여, Prometheus를 실행하지 않고도 메트릭을 다운로드하거나 지원 패키지에 포함할 수 있습니다. 앱이 시작되면 서버의 메트릭 엔드포인트(MetricsSettings.Enable)를 활성화합니다. Operations를 참조하세요.

다른 앱 설치

Antimatter는 Mattermost 앱(플러그인)을 실행합니다. 앱을 추가하는 세 가지 방법:

  • 원격 마켓 플레이스에서. 원격 마켓 플레이스 활성화(PluginSettings.EnableRemoteMarketplace)는 기본적으로 꺼져 있고, 마켓플레이스 URL(PluginSettings.MarketplaceURL)은 비어 있습니다. Antimatter는 Mattermost의 마켓플레이스를 사용하지 않으며, Mattermost의 설정 파일에 해당 주소가 남아 있어도 이를 무시합니다. 신뢰하는 마켓플레이스 서버의 앱을 나열하려면 이 설정을 켜고 URL을 설정하세요. Antimatter가 자체적으로 제공하는 앱(Calls, Playbooks, Kanban 등)의 마켓플레이스 빌드는 숨겨지므로 Antimatter의 앱으로 대체될 수 없습니다. 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.가 공개 앱을 서명하는 데 사용하는 키, 그리고 PluginSettings.SignaturePublicKeyFiles에 추가한 모든 키)와 비교하여 앱 서명을 확인합니다. 플러그인 서명 필요(PluginSettings.RequirePluginSignature, 기본적으로 꺼져 있음)를 켜면 서명되지 않은 앱은 설치되지 않고 업로드도 비활성화됩니다.

앱은 서버 내에서 데이터에 대한 완전한 접근 권한을 가지고 실행됩니다. 신뢰할 수 있는 앱만 설치하세요.

Mattermost 유료 에디션용으로 제작된 일부 앱은 자체적으로 Mattermost 라이선스를 확인하며, 라이선스가 없으면 실행을 거부합니다. Antimatter는 이러한 앱에 대해 라이선스가 있다고 주장하지 않습니다.