デスクトップアプリのデプロイ
企業や学校のコンピュータに Antimatter デスクトップアプリをインストールし、Windows、macOS、Linux でサーバー、ユーザー名、更新チェックを一元設定する方法です。
アプリのダウンロード
デスクトップアプリのリリースは github.com/AntimatterChat/desktop-app/releases にあります。サーバーと同様に、アプリはベータ版です。バージョンにハイフン後のサフィックスが付いているリリースは Pre-release と表示されます。各リリースには、すべてのファイルのチェックサムを含む SHA256SUMS ファイルがあります。Linux では sha256sum --check --ignore-missing SHA256SUMS を実行してダウンロードを確認するか、PowerShell で Get-FileHash <file> -Algorithm SHA256 の出力を SHA256SUMS の該当行と比較してください。
- Windows(x64 および arm64):
.exeインストーラー、.msiパッケージ、または.zipアーカイブ。例:antimatter-desktop-<version>-win-x64.exeおよびantimatter-desktop-<version>-win-x64.msi。 - macOS:Apple silicon(
arm64)、Intel Mac(x64)、または両方(universal)向けの.dmgディスクイメージまたは.zip。 - Linux(x64 および arm64):.deb または .rpm パッケージ、AppImage、Flatpak バンドル、または
.tar.gzアーカイブ。
使用する Windows インストーラーの選択
| .exe インストーラー | .msi パッケージ | |
|---|---|---|
| 対象 | アプリを自分でインストールするユーザー | コンピュータにデプロイする企業 |
| インストール先 | 現在の Windows アカウントのみ。管理者権限なしで %LOCALAPPDATA%\Programs\antimatter-desktop にインストールされます | コンピュータのすべてのユーザー。管理者権限で C:\Program Files\Antimatter にインストールされます |
| 更新 | アプリが新しいバージョンを確認し、新しい .exe のダウンロードを提案して、インストール済みのコピーをその場で更新します | アプリは新しいバージョンを確認しません。管理者がデプロイします |
アプリは実行中、1時間ごとにGitHubで新しいバージョンを確認し、プレリリースではなく正式リリースのみを対象とします。新しいバージョンが見つかった場合、ユーザーに通知し、ダウンロードへのリンクを提供します。MSIでインストールしたコピーは、通常ソフトウェアのインストール権限がないユーザーが使用するため、デフォルトでは確認を行いません。EnableAutoUpdater設定で確認を有効にすると、提供されるダウンロードは新しい.msiファイルとなり、管理者権限が必要です。
SCCM (Configuration Manager)、Intune、またはグループポリシーによるソフトウェアインストールでの管理されたデプロイにはMSIを使用してください。MSIのインストールにより、インストールを実行したアカウントの.exeコピーが存在する場合、削除されます。
管理可能な設定
これらの設定はすべてのシステムに存在します。Windowsでは、SOFTWARE\Policies\Antimatter配下のレジストリ値として、HKEY_LOCAL_MACHINE(コンピュータ全体)またはHKEY_CURRENT_USER(単一のユーザー)に配置されます。macOSおよびLinuxでは、管理用プリファレンスまたはポリシーファイルのキーとして設定されます。
| 設定項目 | Windowsの場合 | macOSおよびLinuxの場合 | 機能 |
|---|---|---|---|
DefaultServerList | サーバーごとに1つの文字列値を持つサブキー:値の名前はタブの名前、データはそのURL | nameとurlを持つ辞書(Linuxではオブジェクト)の配列 | アプリにサーバーを追加します。ユーザーはこれらを編集したり削除したりできません。 |
DefaultUsername | 文字列 | 文字列 | これらのサーバーのログインページにユーザー名を入力します。 |
EnableServerManagement | DWORD、0または1 | ブール値 | 0またはfalse:ユーザーはDefaultServerListで設定されたサーバーのみ使用でき、サーバーの追加、編集、削除オプションは非表示になります。未設定:ユーザーは独自のサーバーを追加できます。 |
EnableAutoUpdater | DWORD、0または1 | ブール値 | 0またはfalse:アプリは新しいバージョンを確認せず、更新を確認を非表示にします。1またはtrue:MSIでインストールした場合でも確認を行います。未設定:.exeコピーは確認し、MSIコピーは確認しません。 |
TrustedEmbeddedMediaOrigins | serverOriginとembeddedOriginを持つJSONオブジェクトである文字列値を持つサブキー | serverOriginとembeddedOriginを持つ辞書の配列 | サーバーのページに埋め込まれたコンテンツ(ビデオ会議ページなど)が、そのサーバーに付与されたカメラとマイクの権限を使用できるようにします。 |
- ユーザー名は、ポリシーで設定されたサーバーのログインページでのみ入力され、ユーザーが追加したサーバーや、ユーザーが手動で入力した値の上書きは行われません。ユーザーは引き続き変更できます。パーセント記号で囲まれた環境変数は置き換えられるため、1つの値ですべてのユーザーに対応できます: Windowsでは
%USERNAME%、macOSおよびLinuxでは%USER%がアカウント名を、%USERNAME%@example.comがこのパターンに従うメールアドレスを指定します。変数が設定されていない場合、アプリは何も入力しません。 - サーバー管理を無効にする場合、
DefaultServerListに少なくとも1つのサーバーを設定してください。 - Windowsでは、コンピューターポリシー(
HKEY_LOCAL_MACHINE)がユーザーポリシー(HKEY_CURRENT_USER)よりも優先されます。両方のサーバーリストは結合されます。 - アプリは起動時に設定を読み取ります: 変更後は、ユーザーはアプリを終了して再実行する必要があります。
Windows: MSIによるサイレントインストール
MSIは、HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatterに設定をコンピューターポリシーとして書き込むパブリックプロパティを受け取ります。SCCMアプリケーション、Intuneアプリ、またはスクリプトで使用できます。PowerShellでは:
msiexec /i antimatter-desktop-<version>-win-x64.msi /qn SERVERURL=https://chat.example.com SERVERNAME=Chat DEFAULTUSERNAME='%USERNAME%' AUTOUPDATE=0 SERVERMANAGEMENT=0
| プロパティ | 書き込む内容 | 指定しない場合 |
|---|---|---|
SERVERURL | DefaultServerList内のサーバー、このURLで | サーバーなし |
SERVERNAME | そのサーバーのタブ名 | Antimatter |
DEFAULTUSERNAME | DefaultUsername | なし |
AUTOUPDATE | EnableAutoUpdater、0または1 | なし: MSIコピーは更新を確認しません |
SERVERMANAGEMENT | EnableServerManagement、0または1 | なし: ユーザーはサーバーを追加できます |
- 指定されないプロパティは何も書き込まないため、グループポリシーで設定された値を上書きしません。
AUTOUPDATEとSERVERMANAGEMENTは0または1のみを受け入れます。MSIは1つのサーバーを設定します: 複数必要な場合はグループポリシーを使用してください。 DEFAULTUSERNAMEは、アプリが各ユーザーに対して置き換えられるように、インストーラーにテキスト%USERNAME%として到達する必要があります。そうでない場合、インストールを実行しているシェルが自分のアカウント名で置き換えます。PowerShellでは、シングルクォートを使用してください。.batファイルでは、%%USERNAME%%と記述します。テストインストール後、レジストリでDefaultUsernameが%USERNAME%を保持していることを確認してください。- アップグレードのたびにプロパティを再度渡してください。MSIの新しいバージョンをインストールすると、古いバージョンが削除され、その書き込んだ値も削除されます。その後、新しいコマンドラインの値が書き込まれます。SCCMとIntuneはアプリケーションのコマンドラインを保持します: 各新しいバージョンで再利用してください。または、グループポリシーまたはIntuneでポリシーを設定してください。アップグレードはこれらに影響しません。
- MSI とグループポリシーは同じレジストリ値を書き込みます。各設定については、どちらか一方を使用してください。MSI をアンインストールすると、グループポリシーでも設定されていた場合であっても、MSI が書き込んだ値が削除されます。
- MSI は、インストール先フォルダーを
HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop(InstallDir) に記録します。これにより、アプリは MSI によってインストールされたことを認識します。
アンインストールするには: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn。Intune では、「Windows アプリ (Win32)」タイプに同じコマンドラインを使用します。「ラインオブビジネス アプリ」タイプの場合は、プロパティをコマンドライン引数に追加します。
Windows: グループポリシーと Intune
管理用テンプレート antimatter.admx と en-US\antimatter.adml は、インストールされたアプリの gpo フォルダー (MSI の場合は C:\Program Files\Antimatter\gpo) およびアプリのリポジトリの resources/windows/gpo フォルダーにあります。これらは 管理用テンプレート › Antimatter の下にこれらのポリシーを表示します:
| ポリシー | レジストリ値 | 設定 |
|---|---|---|
| サーバー (DefaultServerList) | DefaultServerList サブキー | コンピューターとユーザー |
| 事前入力するユーザー名 (DefaultUsername) | DefaultUsername | コンピューターとユーザー |
| サーバーの追加と削除を許可 (EnableServerManagement) | EnableServerManagement | コンピューターとユーザー |
| 新しいバージョンの通知 (EnableAutoUpdater) | EnableAutoUpdater | コンピューターのみ |
| 信頼できる埋め込みメディアのソース (TrustedEmbeddedMediaOrigins) | TrustedEmbeddedMediaOrigins サブキー | コンピューターとユーザー |
ドメイン内のグループポリシー
antimatter.admxを中央ストア\\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitionsに、antimatter.admlをそのen-USフォルダーにコピーします。- グループポリシー管理エディターで、コンピューター設定 (または ユーザー設定) › ポリシー › 管理用テンプレート › Antimatter を開きます。
- ポリシーを編集し、有効 を選択して値を入力します。サーバー の場合は、表示 をクリックし、サーバーごとに 1 行ずつ追加します。値の名前はタブ名、値はサーバー URL (例:
https://chat.example.com) です。
サーバーの追加と削除を許可 または 新しいバージョンの通知 を有効にすると 1 が書き込まれ、無効にすると 0 が書き込まれます。
Intune
デバイス › 設定で、ADMX のインポートを使用して antimatter.admx と en-US\antimatter.adml をインポートします。次に テンプレート › インポートされた管理テンプレートからプロファイルを作成し、Antimatter のポリシーを設定します。
単一のコンピューターまたはスクリプト
テンプレートを C:\Windows\PolicyDefinitions にコピーすると、gpedit.msc(Windows Pro および Enterprise)で使用できます。または、.reg ファイルを管理者としてインポートしてレジストリ値を直接書き込みます(reg import antimatter-policies.reg)。以下はその例です。同じフォルダーにある example-policies.reg ファイルには、これらの値がコメント付きで含まれています。
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter]
"EnableServerManagement"=dword:00000000
"EnableAutoUpdater"=dword:00000000
"DefaultUsername"="%USERNAME%"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter\DefaultServerList]
"Chat"="https://chat.example.com"
macOS:構成プロファイル
macOS では、アプリはバンドル識別子 chat.antimatter.desktop の管理された設定から設定を読み取ります。キーは設定テーブルを参照してください。MDM(Jamf、Intune、Kandji、Mosyle など)を使用して構成プロファイルとしてデプロイします。
- アプリのリポジトリの resources/mac/mdm フォルダーには、
antimatter.mobileconfigというサンプルプロファイルがあります。値を編集し、独自のPayloadIdentifierとPayloadUUID値を割り当てます(uuidgenで新しい UUID を生成できます)。その後、カスタムプロファイルとしてアップロードします。 - ほとんどの MDM は、
chat.antimatter.desktopに対する「カスタム設定」または「プリファレンスドメイン」ペイロードとして、キーのみを受け入れることもできます。同じフォルダーには、example-managed-preferences.plistにこれらが含まれています。
プロファイルのペイロード内の設定:
<key>PayloadType</key>
<string>chat.antimatter.desktop</string>
<key>DefaultServerList</key>
<array>
<dict>
<key>name</key>
<string>Chat</string>
<key>url</key>
<string>https://chat.example.com</string>
</dict>
</array>
<key>DefaultUsername</key>
<string>%USER%</string>
<key>EnableServerManagement</key>
<false/>
<key>EnableAutoUpdater</key>
<false/>
ブール値は、整数の 0 と 1 としても指定できます。
Linux:ポリシーファイル
Linux では、アプリは /etc/antimatter-desktop/policies.json を読み取ります。これは 設定テーブルのキーを持つ JSON オブジェクトです:
{
"DefaultServerList": [
{"name": "Chat", "url": "https://chat.example.com"}
],
"DefaultUsername": "%USER%",
"EnableServerManagement": false,
"EnableAutoUpdater": false,
"TrustedEmbeddedMediaOrigins": []
}
設定管理ツール(Ansible、Puppet、Salt など)を使用してデプロイします。所有者は root、全員が読み取り可能、root のみ書き込み可能にします:
sudo install -d /etc/antimatter-desktop
sudo install -m 644 policies.json /etc/antimatter-desktop/policies.json
有効な JSON ではないファイルは無視され、アプリのログに警告が表示されます。Flatpak バージョンはホストの /etc を参照できません。読み取りアクセスを付与すると、/run/host/etc/antimatter-desktop/policies.json からファイルを読み取ります:
sudo flatpak override --system --filesystem=host-etc:ro chat.antimatter.desktop
Mattermost デスクトップアプリ用に設定されたポリシー
Windows では、アプリは SOFTWARE\Policies\Mattermost 配下の Mattermost デスクトップアプリ用に設定されたポリシーもフォールバックとして読み取ります。読み取りは場所ごとに実行され、ポリシーキー直下の値、DefaultServerList サブキー、TrustedEmbeddedMediaOrigins サブキーの順で行われます。これら 3 つの場所それぞれについて、Antimatter キーに値が設定されていない場合のみ、どちらかのハイブから Mattermost キーの値が読み取られます。したがって、Antimatter キー直下に値が設定されると(例えば MSI の AUTOUPDATE プロパティによって設定された場合)、Mattermost キー直下の値はすべて読み取られなくなります。ポリシーはすべて Antimatter キーにまとめて移動してください。
macOS では、Mattermost デスクトップアプリの管理設定(com.mattermost.desktop)は読み取られません。chat.antimatter.desktop に対して設定してください。
未署名ビルド
デスクトップアプリのビルドは、まだ発行者証明書で署名されていません。
- Windows. 人がダウンロードした
.exeまたは.msiを開くと、Microsoft Defender SmartScreen により Windows がコンピューターを保護した旨が表示され、不明な発行者の名前が示されます。その場合、詳細情報 を選択し、実行 を選択してください。SmartScreen はダウンロード後に人が開くファイルをチェックするため、SCCM、Intune、グループポリシーを通じてアプリをデプロイする場合は、この警告は表示されません。コンピューターが承認された発行者からのソフトウェアのみを実行する場合(AppLocker または App Control for Business のルール)、アプリはインストールパスまたはファイルハッシュで許可してください。 - macOS. アプリはアドホック署名されていますが、Apple によるノタリゼーションは行われていません。人がダウンロードしたコピーを初めて開くと、macOS はアプリがマルウェアから安全であることを検証できないと表示し、開きません。macOS 15 以降では、システム設定 › プライバシーとセキュリティ を開き、それでも開く を選択します。以前のバージョンでは、アプリを Control クリックし、開く を選択します。Gatekeeper はダウンロードされたものとしてマークされたファイル(quarantine 属性を持つもの)のみをチェックします。独自のツールでアプリをインストールする場合は、インストールスクリプト内で
xattr -dr com.apple.quarantine /Applications/Antimatter.appを実行してマークを削除してください。