Розгортання десктопного застосунку

Як встановити десктопний застосунок Antimatter на комп’ютерах компанії чи навчального закладу та централізовано налаштувати його сервери, імена користувачів і перевірки оновлень на Windows, macOS і Linux.

Завантаження застосунку

Релізи десктопного застосунку доступні на GitHub за адресою github.com/AntimatterChat/desktop-app/releases. Як і сервер, застосунок перебуває на етапі бета-тестування: реліз із суфіксом після дефіса у версії позначено як Pre-release. Кожен реліз містить файл SHA256SUMS з контрольними сумами всіх файлів. Перевірте завантаження командою sha256sum --check --ignore-missing SHA256SUMS у Linux або порівняйте вихідні дані команди Get-FileHash <file> -Algorithm SHA256 у PowerShell із відповідним рядком у файлі SHA256SUMS.

  • Windows (x64 та arm64): інсталятор .exe, пакет .msi або архів .zip. Наприклад, antimatter-desktop-<version>-win-x64.exe та antimatter-desktop-<version>-win-x64.msi.
  • macOS: образ диска .dmg або архів .zip для Apple silicon (arm64), Mac на Intel (x64) або для обох (universal).
  • Linux (x64 та arm64): пакет .deb або .rpm, AppImage, Flatpak-пакет або архів .tar.gz.

Який інсталятор Windows використовувати

Інсталятор .exeПакет .msi
ДляКористувачів, які встановлюють застосунок самостійноКомпаній, які розгортають його на своїх комп’ютерах
ВстановленняЛише для поточного облікового запису Windows, у каталозі %LOCALAPPDATA%\Programs\antimatter-desktop, без прав адміністратораДля всіх користувачів комп’ютера, у каталозі C:\Program Files\Antimatter, з правами адміністратора
ОновленняЗастосунок перевіряє наявність нових версій і пропонує завантажити новий файл .exe, який оновлює встановлену копію на місціЗастосунок не перевіряє наявність нових версій: ви розгортаєте їх самостійно

Додаток перевіряє наявність нових версій на GitHub щогодини під час роботи та бачить лише повні релізи, а не попередні. Якщо нова версія знайдена, додаток повідомляє про це користувача та пропонує посилання для завантаження. Копія, встановлена за допомогою MSI, за замовчуванням не виконує перевірки, оскільки користувачі зазвичай не мають прав на встановлення програмного забезпечення. Ви можете увімкнути перевірки для неї за допомогою параметра EnableAutoUpdater: тоді завантаження пропонує новий файл .msi, для встановлення якого потрібні права адміністратора.

Використовуйте MSI для керованого встановлення за допомогою SCCM (Configuration Manager), Intune або встановлення програмного забезпечення через групову політику. Встановлення MSI видаляє копію .exe для облікового запису, під яким виконується встановлення, якщо така існує.

Параметри, які можна керувати

Одні й ті самі параметри існують на всіх системах. На Windows це значення реєстру в SOFTWARE\Policies\Antimatter, у HKEY_LOCAL_MACHINE (для комп’ютера) або HKEY_CURRENT_USER (для одного користувача). На macOS і Linux це ключі керованих параметрів або файлу політики.

НалаштуванняНа WindowsНа macOS і LinuxПризначення
DefaultServerListПідключ із одним рядковим значенням на сервер: назва значення — назва його вкладки, дані — його URLМасив словників (об’єктів на Linux) з name та urlДодає сервери до додатка. Користувачі не можуть їх редагувати або видаляти.
DefaultUsernameРядокРядокЗаповнює ім’я користувача на сторінці входу до цих серверів.
EnableServerManagementDWORD, 0 або 1Булеве значення0 або false: користувачі можуть використовувати лише сервери, задані в DefaultServerList, а додаток приховує опції додавання, редагування та видалення серверів. Не задано: користувачі можуть додавати власні сервери.
EnableAutoUpdaterDWORD, 0 або 1Булеве значення0 або false: додаток ніколи не перевіряє наявність нових версій і приховує Перевірити наявність оновлень. 1 або true: виконує перевірку, навіть якщо встановлено за допомогою MSI. Не задано: копію .exe перевіряє, а копію MSI — ні.
TrustedEmbeddedMediaOriginsПідключ із рядковими значеннями, кожне з яких є JSON-об’єктом з serverOrigin та embeddedOriginМасив словників з serverOrigin та embeddedOriginДозволяє контенту, вбудованому в сторінки сервера (наприклад, сторінку відеозустрічі), використовувати дозволи на камеру та мікрофон, надані цьому серверу.
  • Ім’я користувача заповнюється лише на сторінці входу серверів, заданих за допомогою політики, ніколи на сервері, який додала людина, і ніколи не перезаписує те, що хтось ввів вручну. Користувачі все одно можуть його змінити. Змінні середовища між відсотковими знаками підставляються, тому одне значення підходить для всіх: %USERNAME% у Windows або %USER% у macOS і Linux дає ім’я облікового запису, а %USERNAME%@example.com — адресу електронної пошти, що відповідає цьому шаблону. Якщо змінна не задана, додаток нічого не заповнює.
  • Якщо ви вимкнете керування серверами, задайте принаймні один сервер у DefaultServerList.
  • У 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
DEFAULTUSERNAMEDefaultUsernameНічого
AUTOUPDATEEnableAutoUpdater, 0 або 1Нічого: копія MSI не перевіряє наявність оновлень
SERVERMANAGEMENTEnableServerManagement, 0 або 1Нічого: користувачі можуть додавати сервери
  • Властивість, яка не задана, нічого не записує, тому не перезаписує значення, встановлене за допомогою Group Policy. AUTOUPDATE і SERVERMANAGEMENT приймають лише 0 або 1. MSI задає лише один сервер: для кількох серверів використовуйте Group Policy.
  • DEFAULTUSERNAME має надійти до засобу встановлення як текст %USERNAME%, щоб додаток підставив його для кожного користувача. Інакше командна оболонка, що виконує встановлення, замінить його на ім’я власного облікового запису. У PowerShell зберігайте одинарні лапки. У файлі .bat пишіть %%USERNAME%%. Після тестового встановлення перевірте в реєстрі, що DefaultUsername містить %USERNAME%.
  • Передавайте властивості повторно під час кожного оновлення. Встановлення нової версії MSI видалить стару, разом із записаними нею значеннями, а потім запише значення з нового рядка команди. SCCM і Intune зберігають рядок команди застосунку: використовуйте його для кожної нової версії. Або встановлюйте політики за допомогою Group Policy або Intune, оскільки оновлення їх не чіпає.
  • MSI та Group Policy записують однакові значення реєстру. Для кожного налаштування використовуйте один із цих способів: видалення MSI також видаляє значення, які він записав, навіть якщо Group Policy встановила їх також.
  • MSI також записує папку встановлення в HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop (InstallDir). Саме так додаток дізнається, що його встановлено за допомогою MSI.

Щоб видалити: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. В Intune тип «Windows app (Win32)» приймає ті самі рядки команд. Для типу «Line-of-business app» додайте властивості до аргументів командного рядка.

Windows: Group Policy та Intune

Адміністративні шаблони antimatter.admx та en-US\antimatter.adml розташовані в папці gpo встановленого додатка (C:\Program Files\Antimatter\gpo для MSI) та в папці resources/windows/gpo сховища додатка. Вони містять такі політики, розташовані в Administrative Templates › Antimatter:

ПолітикаЗначення реєструНалаштування
Сервери (DefaultServerList)підключ DefaultServerListкомп’ютер і користувач
Ім’я користувача для попереднього заповнення (DefaultUsername)DefaultUsernameкомп’ютер і користувач
Дозволити додавати та видаляти сервери (EnableServerManagement)EnableServerManagementкомп’ютер і користувач
Сповіщати про нові версії (EnableAutoUpdater)EnableAutoUpdaterтільки комп’ютер
Довірені джерела вбудованих медіа (TrustedEmbeddedMediaOrigins)підключ TrustedEmbeddedMediaOriginsкомп’ютер і користувач

Group Policy в домені

  1. Скопіюйте antimatter.admx до центрального сховища \\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions, а antimatter.adml — до його папки en-US.
  2. У редакторі керування Group Policy відкрийте Computer Configuration (або User Configuration) › Policies › Administrative Templates › Antimatter.
  3. Відредагуйте політику, виберіть Увімкнено та заповніть її. Для Серверів натисніть Показати і додайте по одному рядку на сервер: ім’я значення — це ім’я вкладки, значення — 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 додаток також читає політики, встановлені для настільного додатка Mattermost, у розділі SOFTWARE\Policies\Mattermost, як резервний варіант. Він читає їх за розташуванням: значення безпосередньо під ключем політики, підключ DefaultServerList та підключ TrustedEmbeddedMediaOrigins. Для кожного з цих трьох місць він читає ключ Mattermost лише тоді, коли під ключем Antimatter немає значень у жодному з реєстрів. Отже, щойно одне значення буде встановлено безпосередньо під ключем Antimatter, наприклад, за допомогою властивості AUTOUPDATE MSI, жодне з значень безпосередньо під ключем Mattermost не буде прочитано. Перенесіть усі свої політики під ключ Antimatter одразу.

У macOS керувані параметри настільного додатка Mattermost (com.mattermost.desktop) не читаються: встановіть їх для chat.antimatter.desktop.

Непідписані збірки

Збірки настільного додатка ще не підписані сертифікатом видавця.

  • Вікна. Коли користувач відкриває завантажений файл .exe або .msi, Microsoft Defender SmartScreen повідомляє, що Windows захистила комп’ютер, і вказує невідомого видавця. Користувач обирає Детальніше, а потім Відкрити. SmartScreen перевіряє файли, які користувачі відкривають після завантаження, тому вони не бачать цього попередження, якщо ви встановлюєте додаток через SCCM, Intune або Group Policy. Якщо ваші комп’ютери запускають лише програмне забезпечення від затверджених видавців (правила AppLocker або App Control for Business), дозвольте додаток за його шляхом встановлення або хешем файлу.
  • macOS. Додаток підписано ad hoc, але не нотаріалізовано Apple. Уперше, коли користувач відкриває завантажену копію, macOS повідомляє, що не може перевірити додаток на наявність шкідливого програмного забезпечення, і не відкриває його. У macOS 15 та новіших версіях користувач відкриває Системні параметри › Конфіденційність та безпека і обирає Відкрити. У попередніх версіях вони натискають Control і клікають по додатку, потім обирають Відкрити. Gatekeeper перевіряє лише файли, позначені як завантажені (з атрибутом карантину): коли ви встановлюєте додаток власними інструментами, приберіть цю позначку у сценарії встановлення за допомогою команди xattr -dr com.apple.quarantine /Applications/Antimatter.app.