設定
Antimatter が設定を保存する場所、設定を変更する 3 つの方法 (システムコンソール、環境変数、amctl)、ログの保存場所。
設定の保存場所
すべてのサーバー設定には、セクション名とキー名からなる名前があります。例えば ServiceSettings.SiteURL や EmailSettings.SMTPServer などです。これらが組み合わさって 1 つの設定となり、以下の 2 つの場所のいずれかに保存されます。
- データベース内。 サイトの compose ファイルで
AM_CONFIGに PostgreSQL の接続 URL を設定すると、設定はデータベース内の 1 行として保存され、コンテナはディスク上に何も保持しません。1 つのデータベースを共有する複数のサーバーは、設定も共有します。 - ファイルによる設定。
AM_CONFIGが設定されていない場合、サーバーはbin/ディレクトリ(Dockerイメージでは/antimatter/config/config.json)の隣にあるconfig/config.jsonを読み込みます。antimatter-dockerのリリースアーカイブや本番環境用のcomposeファイル、.debおよび.rpmパッケージもこの方式を採用しており、パッケージの場合は/etc/antimatter/config/config.jsonに配置されます。このファイルにはパスワードや鍵が含まれるため、サーバーのユーザーのみが読み取れるようにしてください。
AM_CONFIG (または antimatter コマンドの --config フラグ) には、ファイルパスまたは postgres:// URL を指定できます。指定しない設定はデフォルト値が使用されます。
既存の設定をファイルからデータベースに移行するには、サーバー上でこれを実行し、その後 AM_CONFIG に同じ URL を設定してサーバーを起動してください。
amctl --local config migrate /opt/antimatter/config/config.json \
"postgres://antimatter:PASSWORD@localhost:5432/antimatter?sslmode=disable&connect_timeout=10"
環境変数
すべての設定は環境変数としても指定できます。環境変数は保存された設定よりも優先されるため、デプロイメントに属するもの (データベース、サイト URL、ファイルストレージ、ポートなど) に適しています。
命名規則
AM_ の後にセクション名、さらにキー名を大文字とアンダースコアで区切った形で記述します。セクション名やキー名内の単語間は区切りません。
| 設定項目 | 変数 |
|---|---|
ServiceSettings.SiteURL | AM_SERVICESETTINGS_SITEURL |
SqlSettings.DataSource | AM_SQLSETTINGS_DATASOURCE |
EmailSettings.SMTPServer | AM_EMAILSETTINGS_SMTPSERVER |
PrivacySettings.EnableUserBlocking | AM_PRIVACYSETTINGS_ENABLEUSERBLOCKING |
- 真偽値の設定には
trueまたはfalseを、数値の設定には通常の数字を指定します。 - リスト形式の設定は、値をスペースで区切ります。例えば
AM_SERVICESETTINGS_TRUSTEDPROXYIPHEADER="X-Forwarded-For X-Real-IP"のように指定します。 - オブジェクト形式の設定には JSON を指定します。アプリに関する唯一のこのような変数は
AM_PLUGINSETTINGS_PLUGINSで、これは すべての アプリの設定を一度に置き換えます。アプリの設定は、システムコンソールまたはamctlを使用して設定してください (下記を参照)。 - 旧バージョンのMattermostセットアップでは
MM_プレフィックスが使用されていました。例えばMM_SQLSETTINGS_DATASOURCEなどです。これはレガシーエイリアスとして引き続き動作します。両方が設定されている場合、AM_変数が優先されます。
環境変数によって設定された項目は、システムコンソール内でロックされ、「この設定は環境変数によって設定されています。システムコンソールからは変更できません。」という注記が表示されます。保存された設定ファイルには書き込まれず、環境変数を削除すると、保存済みの値が再び適用されます。
Docker Composeを使用する場合
antimatterサービスのenvironment:セクションに、またはcompose.yamlの隣にcompose.override.yamlファイルを作成して変数を追加します(Composeはこれを自動的に読み込み、ダウンロードされたファイルの更新後も保持されます):
services:
antimatter:
environment:
AM_EMAILSETTINGS_SMTPSERVER: smtp.example.com
AM_EMAILSETTINGS_SMTPPORT: "587"
AM_LOGSETTINGS_CONSOLELEVEL: INFO
docker compose up -dを実行して変更を適用します。これによりコンテナが再作成されます。
アプリが読み取る変数
いくつかの変数は設定項目ではなく、システムコンソールにフィールドがありません:AM_CONFIG(設定ファイルの場所)、AM_AI_ENCRYPTION_KEYおよびAM_AI_ENCRYPTION_PREVIOUS_KEYS(モデル接続のAPIキーを暗号化する鍵、AIを参照)。
一部のアプリは、antimatterサービスに設定された独自の環境変数を読み取ります。CallsアプリはAM_CALLS_*を読み取ります(通話と音声を参照)、GIFsアプリはAM_GIFS_SERVICE_URL、AM_GIFS_API_KEY、AM_GIFS_UPLOAD_KEYを読み取ります(バンドルアプリを参照)。
システムコンソール
システムコンソールはWebアプリの管理領域で、システム管理者向けです。開くには、アプリレールの上部にある自分のプロフィール画像をクリックし、システムコンソールを選択するか、https://chat.example.com/admin_consoleにアクセスしてください。サイドバーには、すべてのページを検索できる設定の検索ボックスがあります。

セクションは以下の通りです:
- レポート:統計情報とサーバーログ。
- ユーザー管理:ユーザー、グループ、コミュニティ(チームとしてリスト表示)、チャンネル、権限、および委任管理。
- システム属性:カスタムプロフィール属性と属性ベースのアクセス制御。
- 環境:Webサーバー、データベース、ファイルストレージ、イメージプロキシ、SMTP、プッシュ通知、レート制限、ログ出力、セッション期間、パフォーマンス監視。
- サイト設定:ブランディング、ユーザーとチーム、通知、投稿、ファイル共有、およびその他のサーバー全体にわたる動作設定。
- 認証:サインアップ、メールとパスワードによるサインイン、MFA、AD/LDAP、SAML 2.0、OAuth 2.0、OpenID Connect、およびゲストアクセス。
- AI:モデル接続と組み込みのAI機能(書き換え、要約、自動翻訳、テキスト読み上げ)。AIを参照。
- プラグイン:アプリの管理と、インストール済み各アプリの設定。
- 統合機能:Webhook、スラッシュコマンド、ボットアカウント、GIF、テキスト読み上げ、CORS。
- コンプライアンス: データ保持、コンプライアンスエクスポートと監視、監査ログ、カスタム利用規約。
- 実験的機能: 変更される可能性のある機能。
このガイドでは、設定はシステムコンソール内のパス、ラベル、設定キーの順で記載します。例: システムコンソール › サイト設定 › ユーザーとチーム › 無視、ブロック、メッセージリクエストを有効にする (PrivacySettings.EnableUserBlocking)。
ほとんどの変更は保存するをクリックした時点で適用されます。一部の項目(リスニングアドレス、一部のデータベースおよびキャッシュ設定)は再起動が必要であり、ページにその旨が記載されています。
ワークプレイスまたはコミュニティ
各コミュニティには種類があり、これによって一部のデフォルト値が設定されます:
- コミュニティ:公開または趣味のコミュニティ向け。チャンネルでの通話は無効(音声チャンネルで会話)となり、チャンネルのアーカイブは管理者と、チャンネル管理権限を持つロールのみ可能です。
- ワークプレイス:企業や組織向け。チャンネルでの通話は有効となり、チャンネルのアーカイブは、そのチャンネルの管理者(作成者および管理者に任命された者)も実行できます。
システムコンソール › サイト設定 › ユーザーとチーム › 新しいコミュニティの種類(TeamSettings.DefaultCommunityKind、AM_TEAMSETTINGS_DEFAULTCOMMUNITYKIND)は、以降作成されるコミュニティのデフォルトの種類を指定します:community(デフォルト)またはworkplace。コミュニティ作成時にレイアウトプリセットを選択すると、それに応じて種類が設定されます。各コミュニティの管理者は、チーム設定 › チャンネル › コミュニティの種類で後から種類を変更できます。
amctl コマンドラインツール
amctl はコマンドラインからサーバーを管理します: ユーザー、コミュニティ、チャンネル、アプリ、設定、ジョブなど。サーバーとの通信は2つの方法のいずれかで行います。
ローカルモード(サーバー上)
ローカルモードでは、amctlがサインインせずにUnixソケット経由でサーバーと通信できます。Dockerイメージおよび.debと.rpmパッケージでは、このモードが有効になっています。アーカイブからインストールしたサーバーでは、ServiceSettings.EnableLocalMode(AM_SERVICESETTINGS_ENABLELOCALMODE=true)を有効にしてください。ソケットのデフォルトの場所は/var/tmp/antimatter_local.socketです(ServiceSettings.LocalModeSocketLocation)。
# with Docker Compose
docker compose exec antimatter amctl --local system status
# with a release archive
sudo -u antimatter /opt/antimatter/bin/amctl --local system status
# with the .deb or .rpm package
sudo -u antimatter amctl --local system status
docker compose exec を実行できる者は、完全なシステム管理者権限を有します。リモート(アカウント使用)
任意のマシンから、システム管理者アカウント(またはパーソナルアクセストークン)でサインインし、そのサーバーに対してコマンドを実行します:
amctl auth login https://chat.example.com --name prod --username admin
amctl system status
設定コマンド
| コマンド | 機能 |
|---|---|
amctl config get ServiceSettings.SiteURL | 1つの設定を表示します。 |
amctl config set TeamSettings.EnableOpenServer false | 1つの設定を変更します。リスト形式の設定は複数の値を受け取ります。 |
amctl config patch settings.json | 設定の JSON ファイルを現在の設定にマージします。 |
amctl config show | 設定全体を JSON として表示します。 |
amctl config edit | エディター($EDITOR)で設定を開きます。 |
amctl config reset | 設定をデフォルト値にリセットします。 |
amctl config reload | サーバー外部で変更が行われた後、保存先から設定を再読み込みします。 |
アプリの設定は PluginSettings.Plugins.<app id> の下にあり、キーは小文字です。例えば、Docker ホストから GIFs アプリのサービス URL とキーを設定するには:
docker compose exec -T antimatter amctl --local config patch /dev/stdin <<'EOF'
{"PluginSettings": {"Plugins": {"com.antimatterchat.gifs": {
"serviceurl": "http://gifs:8080/v2",
"apikey": "the GIFS_API_KEY of your .env"
}}}}
EOF
その他の有用なコマンド: amctl user create、amctl user deactivate、amctl team create、amctl plugin list、amctl plugin enable、amctl system supportpacket、amctl logs。各コマンドのオプションについては amctl help <command> を実行してください。
ログ
サーバーはログを2つの場所に出力します。それぞれに独自のレベル(DEBUG、INFO、WARNまたはERROR)が設定されており、システムコンソール › 環境 › ログで設定します。
| 出力先 | 設定 | デフォルト値 |
|---|---|---|
| コンソール(標準出力) | ログをコンソールに出力する(LogSettings.EnableConsole)、コンソールログレベル(LogSettings.ConsoleLevel)、コンソールログをJSONで出力する(LogSettings.ConsoleJson) | オン、DEBUG、JSON |
ファイル(antimatter.log) | ログをファイルに出力する(LogSettings.EnableFile)、ファイルログレベル(LogSettings.FileLevel)、ログファイルの出力ディレクトリー(LogSettings.FileLocation) | オン、INFO、bin/の隣にあるlogs/ディレクトリー |
ログファイルは100 MBでローテーションされ、古いファイルは圧縮されます。
サイトのcomposeファイルではファイルへのログ出力がオフに設定されています(AM_LOGSETTINGS_ENABLEFILE=false)そのため、ログはコンテナの出力にのみ記録されます。
docker compose logs -f antimatter
docker compose logs --since 1h antimatter | grep -i error
コンソールレベルのデフォルトはDEBUGで、詳細なログが出力されます。負荷の高いサーバーでは、AM_LOGSETTINGS_CONSOLELEVEL=INFOに設定してください。リリースアーカイブおよびパッケージのconfig.jsonは、すでにINFOに設定されています。systemd下でリリースアーカイブを使用する場合、コンソール出力はジャーナル(journalctl -u antimatter)に、ファイルは/opt/antimatter/logs/antimatter.logに記録されます。パッケージではファイルログが無効化されているため、ログはジャーナルにのみ記録されます。
ファイルへのログ出力がオンになっている場合、システム管理者はシステムコンソール › レポート › サーバーログまたはamctl logsコマンドで、最新のログ行を読み取ることができます。