Wdrażanie aplikacji na urządzenia stacjonarne

Jak zainstalować aplikację Antimatter na komputerach firmy lub szkoły oraz jak centralnie ustawić serwery, nazwę użytkownika i sprawdzanie aktualizacji w systemach Windows, macOS i Linux.

Pobieranie aplikacji

Wydania aplikacji na urządzenia stacjonarne są dostępne na GitHub, pod adresem github.com/AntimatterChat/desktop-app/releases. Podobnie jak serwer, aplikacja jest w fazie beta: wydanie, którego wersja ma przyrostek po myślniku, jest oznaczane jako Pre-release. Każde wydanie zawiera plik SHA256SUMS z sumami kontrolnymi wszystkich plików. Na systemie Linux możesz zweryfikować pobrany plik poleceniem sha256sum --check --ignore-missing SHA256SUMS, a w PowerShell porównać wynik polecenia Get-FileHash <file> -Algorithm SHA256 z odpowiednią linią w pliku SHA256SUMS.

  • Windows (x64 i arm64): instalator .exe, pakiet .msi lub archiwum .zip. Na przykład antimatter-desktop-<version>-win-x64.exe i antimatter-desktop-<version>-win-x64.msi.
  • macOS: obraz dysku .dmg lub archiwum .zip dla procesorów Apple silicon (arm64), Maców z procesorami Intel (x64) lub dla obu architektur (universal).
  • Linux (x64 i arm64): pakiet .deb lub .rpm, AppImage, pakiet Flatpak lub archiwum .tar.gz.

Który instalator Windows wybrać

Instalator .exePakiet .msi
DlaOsób, które instalują aplikację samodzielnieFirm, które wdrażają ją na komputerach
InstalacjaTylko dla bieżącego konta Windows, w katalogu %LOCALAPPDATA%\Programs\antimatter-desktop, bez uprawnień administratoraDla wszystkich użytkowników komputera, w katalogu C:\Program Files\Antimatter, z uprawnieniami administratora
AktualizacjeAplikacja sprawdza, czy są dostępne nowe wersje, i proponuje pobranie nowego pliku .exe, który aktualizuje zainstalowaną kopię w miejscu docelowymAplikacja nie sprawdza, czy są dostępne nowe wersje: to Ty wdrażasz aktualizacje

Aplikacja sprawdza na GitHubie, czy pojawiła się nowa wersja, co godzinę podczas działania i wykrywa wyłącznie pełne wydania, nie wersje przedwstępne. Gdy znajdzie nową wersję, informuje o tym użytkownika i oferuje link do pobrania. Kopia zainstalowana za pomocą pliku MSI domyślnie nie wykonuje takich sprawdzeń, ponieważ użytkownicy zwykle nie mają uprawnień do instalowania oprogramowania. Możesz włączyć te sprawdzenia za pomocą ustawienia EnableAutoUpdater: w takim przypadku oferowany do pobrania jest nowy plik .msi, który wymaga uprawnień administratora.

Użyj pliku MSI do zarządzanej instalacji za pomocą SCCM (Configuration Manager), Intune lub instalacji oprogramowania przez zasady grupy. Instalacja pliku MSI usuwa kopię .exe konta, pod którym wykonywana jest instalacja, jeśli taka kopia istnieje.

Ustawienia, które możesz zarządzać

Te same ustawienia istnieją na każdym systemie. Na Windows są to wartości rejestru pod SOFTWARE\Policies\Antimatter, w HKEY_LOCAL_MACHINE (dla komputera) lub HKEY_CURRENT_USER (dla jednego użytkownika). Na macOS i Linux są to klucze preferencji zarządzanych lub pliku zasad.

UstawienieNa WindowsNa macOS i LinuxOpis
DefaultServerListPodklucz z jedną wartością tekstową na serwer: nazwa wartości to nazwa jego karty, dane to jego adres URLTablica słowników (obiektów na Linux) z polami name i urlDodaje serwery do aplikacji. Użytkownicy nie mogą ich edytować ani usuwać.
DefaultUsernameWartość tekstowaWartość tekstowaWypełnia nazwę użytkownika na stronie logowania tych serwerów.
EnableServerManagementWartość DWORD, 0 lub 1Wartość logiczna0 lub false: użytkownicy mogą korzystać wyłącznie z serwerów ustawionych przez DefaultServerList, a aplikacja ukrywa opcje dodawania, edytowania i usuwania serwerów. Nie ustawiono: użytkownicy mogą dodać własne serwery.
EnableAutoUpdaterWartość DWORD, 0 lub 1Wartość logiczna0 lub false: aplikacja nigdy nie sprawdza nowych wersji i ukrywa opcję Sprawdź aktualizacje. 1 lub true: sprawdza nowe wersje, nawet gdy jest zainstalowana za pomocą pliku MSI. Nie ustawiono: kopia .exe sprawdza nowe wersje, a kopia MSI nie.
TrustedEmbeddedMediaOriginsPodklucz z wartościami tekstowymi, z których każda jest obiektem JSON z polami serverOrigin i embeddedOriginTablica słowników z polami serverOrigin i embeddedOriginPozwala treści osadzonym w stronach serwera, takim jak strona spotkania wideo, korzystać z uprawnień do kamery i mikrofonu przyznanych temu serwerowi.
  • Nazwa użytkownika jest wypełniana wyłącznie na stronie logowania serwerów ustawionych przez politykę, nigdy na serwerze dodanym przez użytkownika oraz nigdy nad tym, co ktoś wpisał. Użytkownicy mogą ją nadal zmieniać. Zmienne środowiskowe między znakami procenta są podmieniane, dzięki czemu jedna wartość pasuje do wszystkich: %USERNAME% w systemie Windows lub %USER% w systemach macOS i Linux podaje nazwę konta, a %USERNAME%@example.com adres e-mail zgodny z tym wzorcem. Jeśli zmienna nie jest ustawiona, aplikacja nie wpisze nic.
  • Jeśli wyłączysz zarządzanie serwerami, ustaw co najmniej jeden serwer w DefaultServerList.
  • W systemie Windows polityka komputera (HKEY_LOCAL_MACHINE) ma pierwszeństwo przed polityką użytkownika (HKEY_CURRENT_USER). Listy serwerów z obu są łączone.
  • Aplikacja odczytuje ustawienia przy starcie: po zmianie użytkownicy muszą ją zamknąć i otworzyć ponownie.

Windows: cicha instalacja za pomocą pliku MSI

Plik MSI przyjmuje publiczne właściwości, które zapisują ustawienia jako polityki komputera w HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter. Używaj ich w aplikacji SCCM, aplikacji Intune lub skrypcie. W PowerShell:

msiexec /i antimatter-desktop-<version>-win-x64.msi /qn SERVERURL=https://chat.example.com SERVERNAME=Chat DEFAULTUSERNAME='%USERNAME%' AUTOUPDATE=0 SERVERMANAGEMENT=0
WłaściwośćZapisujeJeśli nie zostanie podana
SERVERURLSerwer w DefaultServerList z tym adresem URLBrak serwera
SERVERNAMENazwa karty tego serweraAntimatter
DEFAULTUSERNAMEDefaultUsernameNic
AUTOUPDATEEnableAutoUpdater, 0 lub 1Nic: kopia MSI nie sprawdza aktualizacji
SERVERMANAGEMENTEnableServerManagement, 0 lub 1Nic: użytkownicy mogą dodawać serwery
  • Właściwość, która nie zostanie podana, nie zapisze nic, więc nie nadpisze wartości ustawionej przez Group Policy. AUTOUPDATE i SERVERMANAGEMENT akceptują wyłącznie 0 lub 1. Plik MSI ustawia jeden serwer: użyj Group Policy dla większej liczby.
  • DEFAULTUSERNAME musi dotrzeć do instalatora jako tekst %USERNAME%, aby aplikacja mogła go podmienić dla każdego użytkownika. W przeciwnym razie powłoka uruchamiająca instalację podmieni go na nazwę własnego konta. W PowerShell zachowaj pojedyncze cudzysłowy. W pliku .bat zapisz %%USERNAME%%. Po instalacji testowej sprawdź w rejestrze, czy DefaultUsername zawiera %USERNAME%.
  • Przekazuj właściwości ponownie przy każdej aktualizacji. Instalacja nowej wersji pliku MSI usuwa starą, wraz z wartościami, które zapisała, a następnie zapisuje wartości z nowej linii poleceń. SCCM i Intune zachowują linię poleceń aplikacji: użyj jej ponownie dla każdej nowej wersji. Albo ustaw polityki za pomocą Group Policy lub Intune, których aktualizacje nie dotykają.
  • Plik MSI i Group Policy zapisują te same wartości rejestru. Dla każdego ustawienia użyj jednego lub drugiego: odinstalowanie pliku MSI usuwa wartości, które zapisał, nawet jeśli Group Policy również je ustawiła.
  • Plik MSI zapisuje również folder instalacji w HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop (InstallDir). Dzięki temu aplikacja wie, że została zainstalowana za pomocą pliku MSI.

Aby odinstalować: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. W Intune typ „Windows app (Win32)” przyjmuje te same wiersze poleceń. Dla typu „Line-of-business app” dodaj właściwości do argumentów wiersza poleceń.

Windows: Group Policy i Intune

Szablony administracyjne, antimatter.admx i en-US\antimatter.adml, znajdują się w folderze gpo zainstalowanej aplikacji (C:\Program Files\Antimatter\gpo dla pliku MSI) oraz w folderze resources/windows/gpo w repozytorium aplikacji. Wyświetlają one te zasady pod Administrative Templates › Antimatter:

ZasadaWartość rejestruKonfiguracja
Serwery (DefaultServerList)Podklucz DefaultServerListkomputer i użytkownik
Nazwa użytkownika do wstępnie wypełnienia (DefaultUsername)DefaultUsernamekomputer i użytkownik
Pozwalaj osobom dodawać i usuwać serwery (EnableServerManagement)EnableServerManagementkomputer i użytkownik
Powiadomienia o nowych wersjach (EnableAutoUpdater)EnableAutoUpdatertylko komputer
Ufane źródła osadzonego multimediów (TrustedEmbeddedMediaOrigins)Podklucz TrustedEmbeddedMediaOriginskomputer i użytkownik

Group Policy w domenie

  1. Skopiuj antimatter.admx do centralnego magazynu, \\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions, a antimatter.adml do jego folderu en-US.
  2. W edytorze zarządzania Group Policy otwórz Computer Configuration (lub User Configuration) › Policies › Administrative Templates › Antimatter.
  3. Edytuj zasadę, wybierz Włączony i wypełnij ją. Dla Serwery, kliknij Pokaż i dodaj jeden wiersz na serwer: nazwa wartości to nazwa karty, a wartość to adres URL serwera, np. https://chat.example.com.

Włączenie Pozwalaj osobom dodawać i usuwać serwery lub Powiadomienia o nowych wersjach zapisuje 1; wyłączenie zapisuje 0.

Intune

W Urządzenia › Konfiguracja użyj Importuj ADMX, aby zaimportować antimatter.admx wraz z en-US\antimatter.adml. Następnie utwórz profil z Szablony › Zaimportowane szablony administracyjne i ustaw w nim zasady Antimatter.

Pojedynczy komputer lub skrypt

Skopiuj szablony do C:\Windows\PolicyDefinitions, aby używać ich w gpedit.msc (Windows Pro i Enterprise). Możesz też bezpośrednio zapisać wartości rejestru, importując plik .reg jako administrator (reg import antimatter-policies.reg), np. w ten sposób. Plik example-policies.reg w tym samym folderze zawiera te wartości wraz z komentarzami.

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: profil konfiguracji

Na macOS aplikacja odczytuje swoje ustawienia z preferencji zarządzanych identyfikatora pakietu chat.antimatter.desktop, używając kluczy z tabeli ustawień. Rozmieść je za pomocą swojego MDM (Jamf, Intune, Kandji, Mosyle i innych) jako profil konfiguracji.

  • Folder resources/mac/mdm w repozytorium aplikacji zawiera przykładowy profil antimatter.mobileconfig. Edytuj jego wartości, nadaj mu własne wartości PayloadIdentifier i PayloadUUID (uuidgen generuje nowe UUID-y) i wgraj go jako niestandardowy profil.
  • Większość systemów MDM akceptuje również same klucze jako obciążenie „niestandardowych ustawień” lub „domeny preferencji” dla chat.antimatter.desktop. Ten sam folder zawiera je w pliku example-managed-preferences.plist.

Ustawienia w obciążeniu profilu:

<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/>

Wartości logiczne można również podać jako liczby całkowite 0 i 1.

Linux: plik zasad

Na Linuxie aplikacja odczytuje /etc/antimatter-desktop/policies.json, obiekt JSON z kluczami z tabeli ustawień:

{
    "DefaultServerList": [
        {"name": "Chat", "url": "https://chat.example.com"}
    ],
    "DefaultUsername": "%USER%",
    "EnableServerManagement": false,
    "EnableAutoUpdater": false,
    "TrustedEmbeddedMediaOrigins": []
}

Rozmieść go za pomocą swojego narzędzia do zarządzania konfiguracją (Ansible, Puppet, Salt i innych), z właścicielem root, odczytywalnym przez wszystkich i zapisywalnym tylko przez roota:

sudo install -d /etc/antimatter-desktop
sudo install -m 644 policies.json /etc/antimatter-desktop/policies.json

Plik, który nie jest poprawnym JSON-em, jest ignorowany, a w dzienniku aplikacji pojawia się ostrzeżenie. Wersja Flatpak nie widzi /etc systemu hosta: przyznaj mu dostęp do odczytu, a odczyta plik z /run/host/etc/antimatter-desktop/policies.json:

sudo flatpak override --system --filesystem=host-etc:ro chat.antimatter.desktop

Zasady ustawione dla aplikacji desktopowej Mattermost

Na systemie Windows aplikacja czyta również polityki ustawione dla aplikacji Mattermost desktop, pod kluczem SOFTWARE\Policies\Mattermost, jako rozwiązanie awaryjne. Czyta je w trzech miejscach: wartości bezpośrednio pod kluczem polityki, podkluczu DefaultServerList oraz podkluczu TrustedEmbeddedMediaOrigins. W każdym z tych trzech miejsc klucz Mattermost jest odczytywany tylko wtedy, gdy klucz Antimatter nie ma tam żadnych wartości, w żadnej z uli. Dlatego, gdy tylko jedna wartość zostanie ustawiona bezpośrednio pod kluczem Antimatter, na przykład przez właściwość AUTOUPDATE pakietu MSI, żadna z wartości bezpośrednio pod kluczem Mattermost nie zostanie odczytana. Przenieś wszystkie swoje polityki do klucza Antimatter naraz.

Na systemie macOS preferencje zarządzane aplikacji Mattermost desktop (com.mattermost.desktop) nie są odczytywane: ustaw je dla chat.antimatter.desktop.

Niepodpisane buildy

Buildy aplikacji desktop nie są jeszcze podpisane certyfikatem wydawcy.

  • Windows. Gdy użytkownik otwiera pobrany plik .exe lub .msi, Microsoft Defender SmartScreen informuje, że Windows chroni komputer, i wskazuje nieznanego wydawcę. Użytkownik wybiera Więcej Informacji, a następnie Uruchom mimo to. SmartScreen sprawdza pliki, które użytkownicy otwierają po pobraniu, więc to ostrzeżenie nie jest wyświetlane, gdy aplikacja jest wdrażana za pomocą SCCM, Intune lub Group Policy. Jeśli komputery w Twojej organizacji uruchamiają tylko oprogramowanie od zatwierdzonych wydawców (reguły AppLocker lub App Control for Business), zezwól na aplikację na podstawie ścieżki instalacji lub sumy kontrolnej pliku.
  • macOS. Aplikacja jest podpisana ad hoc, ale nie została notaryzowana przez Apple. Przy pierwszym otwarciu pobranej kopii macOS informuje, że nie może zweryfikować, czy aplikacja jest wolna od złośliwego oprogramowania, i nie otwiera jej. Na systemie macOS 15 i nowszych użytkownik otwiera Ustawienia systemowe › Prywatność i bezpieczeństwo i wybiera Otwórz mimo to. Na wcześniejszych wersjach użytkownik klika aplikację przytrzymując klawisz Control i wybiera Otwórz. Gatekeeper sprawdza tylko pliki oznaczone jako pobrane (z atrybutem kwarantanny): gdy instalujesz aplikację własnymi narzędziami, usuń to oznaczenie w skrypcie instalacyjnym, używając polecenia xattr -dr com.apple.quarantine /Applications/Antimatter.app.