Разгръщане на настолното приложение

Как да инсталирате настолното приложение 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), Intel Mac (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 или инсталиране на софтуер чрез Group Policy. Инсталирането на 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Логическа стойност (boolean)0 или false: потребителите могат да използват само сървърите, зададени чрез DefaultServerList, и приложението скрива опциите за добавяне, редактиране и премахване на сървъри. Ако не е зададено: потребителите могат да добавят свои собствени сървъри.
EnableAutoUpdaterDWORD, 0 или 1Логическа стойност (boolean)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%, така че приложението да го замени за всеки потребител. В противен случай обвивката (shell), която изпълнява инсталацията, го заменя с името на собствения си акаунт. В 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:

ПолитикаСтойност в регистъраКонфигурация
Servers (DefaultServerList)Подключ DefaultServerListза компютър и потребител
Username to prefill (DefaultUsername)DefaultUsernameза компютър и потребител
Let people add and remove servers (EnableServerManagement)EnableServerManagementза компютър и потребител
Notify about new versions (EnableAutoUpdater)EnableAutoUpdaterсамо за компютър
Trusted embedded media origins (TrustedEmbeddedMediaOrigins)Подключ TrustedEmbeddedMediaOriginsза компютър и потребител

Group Policy в домейн

  1. Копирайте antimatter.admx в централното хранилище \\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions и antimatter.adml в неговата папка en-US.
  2. В редактора за управление на Group Policy отворете Computer Configuration (или Конфигурация на потребителя) › Policies › Administrative Templates › Antimatter.
  3. Редактирайте политика, изберете Разрешено и я попълнете. За Servers кликнете на Покажи и добавете по един ред за всеки сървър: името на стойността е името на раздела, а стойността е URL адресът на сървъра, например https://chat.example.com.

Разрешаването на Let people add and remove servers или Notify about new versions записва 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 системи приемат и само ключовете като полезна натоварване (payload) за „персонализирани настройки“ или „домейн с предпочитания“ за 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 няма стойности там, в нито един от двата клона (hive). Следователно, щом една стойност е зададена директно под ключа на Antimatter (например чрез свойството AUTOUPDATE на MSI), нито една от стойностите директно под ключа на Mattermost не се чете. Преместете всички свои политики в ключа на Antimatter наведнъж.

В macOS управляваните предпочитания на настолното приложение Mattermost (com.mattermost.desktop) не се четат: задайте ги за chat.antimatter.desktop.

Неподписани версии

Версиите на настолното приложение все още не са подписани с сертификат на издател.

  • Windows. Когато потребител отвори изтеглен .exe или .msi файл, Microsoft Defender SmartScreen съобщава, че Windows е защитил компютъра, и посочва неизвестен издател. Потребителят избира Още информация, след което Run anyway. SmartScreen проверява файлове, които потребителите отварят след изтегляне, така че това предупреждение няма да се появи, ако разгърнете приложението чрез SCCM, Intune или Group Policy. Ако вашите компютри изпълняват само софтуер от одобрени издатели (правилата на AppLocker или App Control for Business), разрешете приложението по неговия път на инсталация или хеш на файла.
  • macOS. Приложението е подписано ad hoc, но не е нотариализирано от Apple. При първото отваряне на изтеглено копие macOS съобщава, че не може да провери дали приложението е свободно от зловреден софтуер, и не го отваря. В macOS 15 и по-нови версии потребителите отварят System Settings › Privacy & Security и избират Open Anyway. В по-ранни версии те кликват с Control върху приложението и избират Open. Gatekeeper проверява само файлове, маркирани като изтеглени (с атрибута за карантина): когато инсталирате приложението със собствени инструменти, премахнете маркера в скрипта за инсталация с командата xattr -dr com.apple.quarantine /Applications/Antimatter.app.