Déploiement de l’application de bureau

Comment installer l’application de bureau Antimatter sur les ordinateurs d’une entreprise ou d’une école, et configurer de manière centralisée ses serveurs, le nom d’utilisateur et les vérifications de mise à jour sur Windows, macOS et Linux.

Télécharger l’application

Les versions de l’application de bureau sont sur GitHub, à l’adresse github.com/AntimatterChat/desktop-app/releases. Comme le serveur, l’application est en bêta : une version dont le numéro est suivi d’un suffixe après un tiret est marquée Préversion. Chaque version contient un fichier SHA256SUMS avec l’empreinte de chaque fichier. Vérifiez un téléchargement avec sha256sum --check --ignore-missing SHA256SUMS sous Linux, ou comparez la sortie de Get-FileHash <file> -Algorithm SHA256 dans PowerShell avec la ligne correspondante dans SHA256SUMS.

  • Windows (x64 et arm64) : l’installeur .exe, le paquet .msi ou une archive .zip. Par exemple antimatter-desktop-<version>-win-x64.exe et antimatter-desktop-<version>-win-x64.msi.
  • macOS : une image disque .dmg ou une archive .zip, pour les puces Apple (arm64), les Mac Intel (x64) ou les deux (universal).
  • Linux (x64 et arm64) : un paquet .deb ou .rpm, un AppImage, un bundle Flatpak ou une archive .tar.gz.

Quel installeur Windows utiliser

L’installeur .exeLe paquet .msi
PourLes personnes qui installent l’application elles-mêmesLes entreprises qui la déploient sur leurs ordinateurs
InstallationPour le compte Windows actuel uniquement, dans %LOCALAPPDATA%\Programs\antimatter-desktop, sans droits d’administrateurPour tous les utilisateurs de l’ordinateur, dans C:\Program Files\Antimatter, avec des droits d’administrateur
Mises à jourL’application vérifie les nouvelles versions et propose de télécharger le nouveau fichier .exe, qui met à jour la copie installée sur placeL’application ne vérifie pas les nouvelles versions : vous les déployez

L'application vérifie les nouvelles versions sur GitHub, chaque heure pendant son exécution, et ne prend en compte que les versions stables, pas les versions préliminaires. Lorsqu'elle en trouve une, elle en informe l'utilisateur et propose un lien pour la télécharger. Une copie installée avec le MSI ne vérifie pas par défaut, car les personnes qui l'utilisent ne peuvent généralement pas installer de logiciels. Vous pouvez activer les vérifications pour cette copie à l'aide du paramètre EnableAutoUpdater : le téléchargement proposé est alors le nouveau .msi, qui nécessite des droits d'administrateur.

Utilisez le MSI pour un déploiement géré avec SCCM (Configuration Manager), Intune ou l'installation de logiciels par stratégie de groupe. L'installation du MSI supprime la copie .exe du compte qui exécute l'installation, s'il en existe une.

Les paramètres que vous pouvez gérer

Les mêmes paramètres existent sur tous les systèmes. Sur Windows, ce sont des valeurs du registre sous SOFTWARE\Policies\Antimatter, dans HKEY_LOCAL_MACHINE (pour l'ordinateur) ou HKEY_CURRENT_USER (pour un utilisateur). Sur macOS et Linux, ce sont des clés des préférences gérées ou du fichier de politique.

ParamètreSur WindowsSur macOS et LinuxFonction
DefaultServerListUne sous-clé avec une valeur de chaîne par serveur : le nom de la valeur est le nom de son onglet, les données sont son URLUn tableau de dictionnaires (objets sur Linux) avec name et urlAjoute des serveurs à l'application. Les utilisateurs ne peuvent pas les modifier ni les supprimer.
DefaultUsernameUne chaîneUne chaîneRemplit le nom d'utilisateur sur la page de connexion de ces serveurs.
EnableServerManagementUn DWORD, 0 ou 1Un booléen0 ou false : les utilisateurs ne peuvent utiliser que les serveurs définis par DefaultServerList, et l'application masque les options pour ajouter, modifier et supprimer des serveurs. Non défini : les utilisateurs peuvent ajouter leurs propres serveurs.
EnableAutoUpdaterUn DWORD, 0 ou 1Un booléen0 ou false : l'application ne vérifie jamais les nouvelles versions et masque Vérifier les mises à jour. 1 ou true : elle vérifie, même si elle est installée avec le MSI. Non défini : la copie .exe vérifie, la copie MSI ne vérifie pas.
TrustedEmbeddedMediaOriginsUne sous-clé avec des valeurs de chaîne, chacune étant un objet JSON avec serverOrigin et embeddedOriginUn tableau de dictionnaires avec serverOrigin et embeddedOriginPermet au contenu intégré dans les pages d'un serveur, tel qu'une page de réunion vidéo, d'utiliser les autorisations de caméra et de microphone accordées à ce serveur.
  • Le nom d'utilisateur n'est rempli que sur la page de connexion des serveurs définis par la stratégie, jamais sur un serveur ajouté par un utilisateur, et jamais par-dessus ce qu'une personne a saisi. Les utilisateurs peuvent toujours le modifier. Les variables d'environnement entre des signes de pourcentage sont remplacées, de sorte qu'une seule valeur convient à tous : %USERNAME% sous Windows ou %USER% sous macOS et Linux fournit le nom du compte, et %USERNAME%@example.com une adresse e-mail qui suit ce modèle. Si une variable n'est pas définie, l'application ne remplit rien.
  • Si vous désactivez la gestion des serveurs, définissez au moins un serveur dans DefaultServerList.
  • Sous Windows, une stratégie d'ordinateur (HKEY_LOCAL_MACHINE) prime sur une stratégie d'utilisateur (HKEY_CURRENT_USER). Les listes de serveurs des deux sont combinées.
  • L'application lit les paramètres au démarrage : après une modification, les utilisateurs doivent la fermer puis la rouvrir.

Windows : installation silencieuse avec le MSI

Le MSI accepte des propriétés publiques qui écrivent les paramètres en tant que stratégies d'ordinateur, dans HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter. Utilisez-les dans une application SCCM, une application Intune ou un script. Dans PowerShell :

msiexec /i antimatter-desktop-<version>-win-x64.msi /qn SERVERURL=https://chat.example.com SERVERNAME=Chat DEFAULTUSERNAME='%USERNAME%' AUTOUPDATE=0 SERVERMANAGEMENT=0
PropriétéÉcritSi non fourni
SERVERURLUn serveur dans DefaultServerList, avec cette URLAucun serveur
SERVERNAMELe nom de l'onglet de ce serveurAntimatter
DEFAULTUSERNAMEDefaultUsernameRien
AUTOUPDATEEnableAutoUpdater, 0 ou 1Rien : la copie du MSI ne vérifie pas les mises à jour
SERVERMANAGEMENTEnableServerManagement, 0 ou 1Rien : les utilisateurs peuvent ajouter des serveurs
  • Une propriété non fournie n'écrit rien, de sorte qu'elle ne remplace pas une valeur définie par la stratégie de groupe. AUTOUPDATE et SERVERMANAGEMENT n'acceptent que 0 ou 1. Le MSI définit un seul serveur : utilisez la stratégie de groupe pour en définir davantage.
  • DEFAULTUSERNAME doit atteindre l'installateur sous la forme du texte %USERNAME%, afin que l'application le remplace pour chaque personne. Sinon, l'interpréteur de commandes exécutant l'installation le remplace par son propre nom de compte. Dans PowerShell, conservez les guillemets simples. Dans un fichier .bat, écrivez %%USERNAME%%. Après une installation de test, vérifiez dans le registre que DefaultUsername contient %USERNAME%.
  • Transmettez à nouveau les propriétés à chaque mise à niveau. L'installation d'une nouvelle version du MSI supprime l'ancienne, avec les valeurs qu'elle avait écrites, puis écrit les valeurs de la nouvelle ligne de commande. SCCM et Intune conservent la ligne de commande d'une application : réutilisez-la pour chaque nouvelle version. Ou définissez les stratégies avec la stratégie de groupe ou Intune, ce que les mises à niveau ne modifient pas.
  • Le MSI et la stratégie de groupe écrivent les mêmes valeurs de registre. Pour chaque paramètre, utilisez l'un ou l'autre : désinstaller le MSI supprime les valeurs qu'il a écrites, même si la stratégie de groupe les a également définies.
  • Le MSI enregistre également son dossier d'installation dans HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop (InstallDir). C'est ainsi que l'application sait qu'elle a été installée via le MSI.

Pour désinstaller : msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. Dans Intune, le type « Windows app (Win32) » utilise les mêmes lignes de commande. Pour le type « Line-of-business app », ajoutez les propriétés à ses arguments de ligne de commande.

Windows : Stratégie de groupe et Intune

Les modèles administratifs, antimatter.admx et en-US\antimatter.adml, se trouvent dans le dossier gpo de l'application installée (C:\Program Files\Antimatter\gpo pour le MSI) et dans le dossier resources/windows/gpo du dépôt de l'application. Ils affichent ces stratégies, sous Modèles administratifs › Antimatter :

StratégieValeur de registreConfiguration
Serveurs (DefaultServerList)Sous-clé DefaultServerListordinateur et utilisateur
Nom d'utilisateur à préremplir (DefaultUsername)DefaultUsernameordinateur et utilisateur
Permettre aux utilisateurs d'ajouter et de supprimer des serveurs (EnableServerManagement)EnableServerManagementordinateur et utilisateur
Notifier des nouvelles versions (EnableAutoUpdater)EnableAutoUpdaterordinateur uniquement
Origines de médias intégrés de confiance (TrustedEmbeddedMediaOrigins)Sous-clé TrustedEmbeddedMediaOriginsordinateur et utilisateur

Stratégie de groupe dans un domaine

  1. Copiez antimatter.admx dans le magasin central, \\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions, et antimatter.adml dans son dossier en-US.
  2. Dans l'Éditeur de gestion des stratégies de groupe, ouvrez Configuration ordinateur (ou Configuration utilisateur) › Stratégies › Modèles administratifs › Antimatter.
  3. Modifiez une stratégie, choisissez Activer et remplissez-la. Pour Serveurs, cliquez sur Afficher et ajoutez une ligne par serveur : le nom de la valeur est le nom de l'onglet, la valeur est l'URL du serveur, par exemple https://chat.example.com.

Activer Permettre aux utilisateurs d'ajouter et de supprimer des serveurs ou Notifier des nouvelles versions écrit 1 ; la désactiver écrit 0.

Intune

Dans Appareils › Configuration, utilisez Importer ADMX pour importer antimatter.admx avec en-US\antimatter.adml. Créez ensuite un profil à partir de Modèles › Modèles administratifs importés, et définissez-y les stratégies Antimatter.

Un ordinateur unique, ou un script

Copiez les modèles dans C:\Windows\PolicyDefinitions pour les utiliser dans gpedit.msc (Windows Pro et Enterprise). Ou écrivez directement les valeurs du registre, avec un fichier .reg importé en tant qu'administrateur (reg import antimatter-policies.reg), comme celui-ci. Le fichier example-policies.reg du même dossier contient ces valeurs, avec des commentaires.

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 : un profil de configuration

Sur macOS, l'application lit ses paramètres à partir des préférences gérées de son identifiant de bundle, chat.antimatter.desktop, avec les clés de la table des paramètres. Déployez-les avec votre MDM (Jamf, Intune, Kandji, Mosyle et autres) sous forme de profil de configuration.

  • Le dossier resources/mac/mdm du dépôt de l'application contient un profil d'exemple, antimatter.mobileconfig. Modifiez ses valeurs, attribuez-lui vos propres valeurs PayloadIdentifier et PayloadUUID (uuidgen génère de nouveaux UUID), et téléchargez-le en tant que profil personnalisé.
  • La plupart des MDM acceptent également les clés seules, en tant que charge utile « paramètres personnalisés » ou « domaine de préférence » pour chat.antimatter.desktop. Le même dossier les contient dans example-managed-preferences.plist.

Les paramètres dans la charge utile du profil :

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

Les booléens peuvent également être fournis sous forme d'entiers 0 et 1.

Linux : le fichier de stratégie

Sur Linux, l'application lit /etc/antimatter-desktop/policies.json, un objet JSON avec les clés de la table des paramètres :

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

Déployez-le avec votre outil de gestion de configuration (Ansible, Puppet, Salt et autres), en le rendant propriétaire de root, lisible par tous et modifiable uniquement par root :

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

Un fichier qui n'est pas un JSON valide est ignoré, avec un avertissement dans le journal de l'application. La version Flatpak ne voit pas le /etc de l'hôte : accordez-lui un accès en lecture, et elle lira le fichier depuis /run/host/etc/antimatter-desktop/policies.json :

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

Stratégies définies pour l'application de bureau Mattermost

Sur Windows, l’application lit également les stratégies définies pour l’application de bureau Mattermost, sous SOFTWARE\Policies\Mattermost, en tant que repli. Elle les lit par emplacement : les valeurs directement sous la clé de stratégie, la sous-clé DefaultServerList et la sous-clé TrustedEmbeddedMediaOrigins. Pour chacun de ces trois emplacements, elle ne lit la clé Mattermost que si la clé Antimatter n’y contient aucune valeur, dans les deux registres. Ainsi, dès qu’une valeur est définie directement sous la clé Antimatter, par exemple par la propriété AUTOUPDATE du MSI, aucune des valeurs directement sous la clé Mattermost n’est lue. Déplacez toutes vos stratégies sous la clé Antimatter d’un seul coup.

Sur macOS, les préférences gérées de l’application de bureau Mattermost (com.mattermost.desktop) ne sont pas lues : définissez-les pour chat.antimatter.desktop.

Versions non signées

Les versions de l’application de bureau ne sont pas encore signées avec un certificat d’éditeur.

  • Windows. Lorsqu’une personne ouvre un fichier .exe ou .msi téléchargé, Microsoft Defender SmartScreen indique que Windows a protégé l’ordinateur et cite un éditeur inconnu. Elle choisit Plus d’infos, puis Exécuter quand même. SmartScreen vérifie les fichiers ouverts après un téléchargement, donc cette avertissement n’apparaît pas lorsque vous déployez l’application via SCCM, Intune ou la stratégie de groupe. Si vos ordinateurs n’exécutent que des logiciels d’éditeurs approuvés (règles AppLocker ou App Control for Business), autorisez l’application par son chemin d’installation ou son empreinte de fichier.
  • macOS. L’application est signée ad hoc, mais non notarisée par Apple. La première fois qu’une personne ouvre une copie téléchargée, macOS indique qu’il ne peut pas vérifier que l’application est exempte de logiciels malveillants et ne l’ouvre pas. Sur macOS 15 et versions ultérieures, elle ouvre Paramètres du système › Confidentialité et sécurité et choisit Ouvrir quand même. Sur les versions antérieures, elle effectue un clic de contrôle sur l’application et choisit Ouvrir. Gatekeeper ne vérifie que les fichiers marqués comme téléchargés (avec l’attribut de quarantaine) : lorsque vous installez l’application avec vos propres outils, supprimez cette marque dans votre script d’installation, avec xattr -dr com.apple.quarantine /Applications/Antimatter.app.