Distribuzione dell'app desktop
Come installare l'app desktop di Antimatter sui computer di un'azienda o di una scuola e impostare centralmente i server, il nome utente e le verifiche degli aggiornamenti su Windows, macOS e Linux.
Scarica l'app
Le release dell'app desktop sono disponibili su GitHub, all'indirizzo github.com/AntimatterChat/desktop-app/releases. Come il server, l'app è in fase beta: una release la cui versione ha un suffisso dopo un trattino è contrassegnata come Pre-release. Ogni release include un file SHA256SUMS con il checksum di ogni file. Verifica il download con sha256sum --check --ignore-missing SHA256SUMS su Linux, oppure confronta l'output di Get-FileHash <file> -Algorithm SHA256 in PowerShell con la riga corrispondente in SHA256SUMS.
- Windows (x64 e arm64): l'installatore
.exe, il pacchetto.msio un archivio.zip. Ad esempioantimatter-desktop-<version>-win-x64.exeeantimatter-desktop-<version>-win-x64.msi. - macOS: un'immagine disco
.dmgo un.zip, per Apple silicon (arm64), Mac Intel (x64) o entrambi (universal). - Linux (x64 e arm64): un pacchetto .deb o .rpm, un AppImage, un bundle Flatpak o un archivio
.tar.gz.
Quale installatore Windows utilizzare
| L'installatore .exe | Il pacchetto .msi | |
|---|---|---|
| Per | Per chi installa l'app da solo | Per le aziende che la distribuiscono sui propri computer |
| Installazione | Solo per l'account Windows corrente, in %LOCALAPPDATA%\Programs\antimatter-desktop, senza diritti di amministratore | Per tutti gli utenti del computer, in C:\Program Files\Antimatter, con diritti di amministratore |
| Aggiornamenti | L'app verifica la presenza di nuove versioni e propone di scaricare il nuovo .exe, che aggiorna la copia installata in loco | L'app non verifica la presenza di nuove versioni: sono distribuite da te |
L'app verifica la presenza di nuove versioni su GitHub ogni ora durante l'esecuzione, rilevando solo le release complete e non quelle preliminari. Quando ne trova una, lo comunica all'utente e offre un link per il download. Una copia installata tramite MSI non esegue la verifica di default, poiché gli utenti che la utilizzano di solito non possono installare software. È possibile abilitare le verifiche per questa copia tramite l'impostazione EnableAutoUpdater: in tal caso, il download proposto sarà il nuovo file .msi, che richiede i diritti di amministratore.
Utilizza il file MSI per una distribuzione gestita tramite SCCM (Configuration Manager), Intune o l'installazione software tramite Criteri di gruppo. L'installazione del MSI rimuove la copia .exe dell'account che esegue l'installazione, se presente.
Le impostazioni gestibili
Le stesse impostazioni sono presenti su tutti i sistemi. Su Windows si tratta di valori di registro sotto SOFTWARE\Policies\Antimatter, in HKEY_LOCAL_MACHINE (per il computer) o in HKEY_CURRENT_USER (per un singolo utente). Su macOS e Linux sono chiavi delle preferenze gestite o del file di policy.
| Impostazione | Su Windows | Su macOS e Linux | Funzione |
|---|---|---|---|
DefaultServerList | Una sottochiave con un valore stringa per ogni server: il nome del valore è il nome della sua scheda, i dati sono il relativo URL | Un array di dizionari (oggetti su Linux) con name e url | Aggiunge server all'app. Gli utenti non possono modificarli o rimuoverli. |
DefaultUsername | Una stringa | Una stringa | Compila il nome utente nella pagina di accesso di questi server. |
EnableServerManagement | Un DWORD, 0 o 1 | Un booleano | 0 o false: gli utenti possono utilizzare solo i server impostati tramite DefaultServerList e l'app nasconde le opzioni per aggiungere, modificare o rimuovere i server. Non impostato: gli utenti possono aggiungere i propri server. |
EnableAutoUpdater | Un DWORD, 0 o 1 | Un booleano | 0 o false: l'app non verifica mai la presenza di nuove versioni e nasconde Verifica aggiornamenti. 1 o true: esegue la verifica, anche se installata tramite MSI. Non impostato: la copia .exe esegue la verifica, la copia MSI no. |
TrustedEmbeddedMediaOrigins | Una sottochiave con valori stringa, ciascuno un oggetto JSON con serverOrigin e embeddedOrigin | Un array di dizionari con serverOrigin e embeddedOrigin | Permette al contenuto incorporato nelle pagine di un server, come una pagina di videochiamata, di utilizzare i permessi per fotocamera e microfono concessi a quel server. |
- Il nome utente viene compilato solo nella pagina di accesso dei server impostati dalla policy, mai su un server aggiunto manualmente da una persona e mai sovrascrivendo ciò che qualcuno ha digitato. Le persone possono comunque modificarlo. Le variabili di ambiente tra parentesi percentuali vengono sostituite, in modo che un unico valore funzioni per tutti:
%USERNAME%su Windows o%USER%su macOS e Linux restituisce il nome dell'account, mentre%USERNAME%@example.comgenera un indirizzo e-mail che segue questo schema. Se una variabile non è impostata, l'app non compila nulla. - Se disattivi la gestione dei server, imposta almeno un server in
DefaultServerList. - Su Windows, una policy del computer (
HKEY_LOCAL_MACHINE) ha la precedenza su una policy dell'utente (HKEY_CURRENT_USER). Gli elenchi dei server di entrambe vengono combinati. - L'app legge le impostazioni all'avvio: dopo una modifica, le persone devono uscire e riaprirla.
Windows: installazione silenziosa tramite MSI
L'MSI accetta proprietà pubbliche che scrivono le impostazioni come policy del computer, in HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter. Usale in un'applicazione SCCM, in un'app Intune o in uno script. In PowerShell:
msiexec /i antimatter-desktop-<version>-win-x64.msi /qn SERVERURL=https://chat.example.com SERVERNAME=Chat DEFAULTUSERNAME='%USERNAME%' AUTOUPDATE=0 SERVERMANAGEMENT=0
| Proprietà | Scrive | Se non specificato |
|---|---|---|
SERVERURL | Un server in DefaultServerList, con questo URL | Nessun server |
SERVERNAME | Il nome della scheda di quel server | Antimatter |
DEFAULTUSERNAME | DefaultUsername | Niente |
AUTOUPDATE | EnableAutoUpdater, 0 o 1 | Niente: la copia MSI non verifica gli aggiornamenti |
SERVERMANAGEMENT | EnableServerManagement, 0 o 1 | Niente: le persone possono aggiungere server |
- Una proprietà non specificata non scrive nulla, quindi non sovrascrive un valore impostato da Group Policy.
AUTOUPDATEeSERVERMANAGEMENTaccettano solo 0 o 1. L'MSI imposta un solo server: usa Group Policy per più server. DEFAULTUSERNAMEdeve raggiungere l'installatore come il testo%USERNAME%, in modo che l'app lo sostituisca per ciascuna persona. Altrimenti la shell che esegue l'installazione lo sostituisce con il proprio nome account. In PowerShell, mantieni le virgolette singole. In un file.bat, scrivi%%USERNAME%%. Dopo un'installazione di prova, verifica nel registro cheDefaultUsernamecontenga%USERNAME%.- Passa di nuovo le proprietà a ogni aggiornamento. L'installazione di una nuova versione dell'MSI rimuove quella precedente, insieme ai valori scritti, e poi scrive i valori della nuova riga di comando. SCCM e Intune mantengono la riga di comando di un'applicazione: riutilizzala per ogni nuova versione. Oppure imposta le policy con Group Policy o Intune, che gli aggiornamenti non toccano.
- L'MSI e la Group Policy scrivono gli stessi valori di registro. Per ogni impostazione, usa uno o l'altro: la disinstallazione dell'MSI elimina i valori scritti da quest'ultimo, anche se la Group Policy li ha impostati.
- L'MSI registra anche la cartella di installazione in
HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop(InstallDir). Questo è il modo in cui l'app sa di essere stata installata tramite MSI.
Per disinstallare: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. In Intune, il tipo "Windows app (Win32)" accetta le stesse righe di comando. Per il tipo "Line-of-business app", aggiungi le proprietà ai suoi argomenti della riga di comando.
Windows: Group Policy e Intune
I modelli amministrativi, antimatter.admx e en-US\antimatter.adml, si trovano nella cartella gpo dell'app installata (C:\Program Files\Antimatter\gpo per l'MSI) e nella cartella resources/windows/gpo del repository dell'app. Mostrano queste policy, sotto Administrative Templates › Antimatter:
| Policy | Valore di registro | Configurazione |
|---|---|---|
| Servers (DefaultServerList) | Sottocle DefaultServerList | computer e utente |
| Username to prefill (DefaultUsername) | DefaultUsername | computer e utente |
| Let people add and remove servers (EnableServerManagement) | EnableServerManagement | computer e utente |
| Notify about new versions (EnableAutoUpdater) | EnableAutoUpdater | solo computer |
| Trusted embedded media origins (TrustedEmbeddedMediaOrigins) | Sottocle TrustedEmbeddedMediaOrigins | computer e utente |
Group Policy in un dominio
- Copia
antimatter.admxnell'archivio centrale,\\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions, eantimatter.admlnella sua cartellaen-US. - Nell'Editor di gestione Group Policy, apri Computer Configuration (o User Configuration) › Policies › Administrative Templates › Antimatter.
- Modifica una policy, scegli Abilitato e compila i campi. Per Servers, fai clic su Mostra e aggiungi una riga per ogni server: il nome del valore è il nome della scheda, il valore è l'URL del server, ad esempio
https://chat.example.com.
L'abilitazione di Let people add and remove servers o Notify about new versions scrive 1; la disabilitazione scrive 0.
Intune
In Dispositivi › Configurazione, usa Importa ADMX per importare antimatter.admx con en-US\antimatter.adml. Quindi crea un profilo da Modelli › Modelli amministrativi importati e imposta le policy di Antimatter al suo interno.
Un singolo computer, o uno script
Copia i modelli in C:\Windows\PolicyDefinitions per usarli in gpedit.msc (Windows Pro e Enterprise). Oppure scrivi i valori del registro direttamente, con un file .reg importato come amministratore (reg import antimatter-policies.reg), come questo. Il file example-policies.reg nella stessa cartella contiene questi valori, con commenti.
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 profilo di configurazione
Su macOS, l'app legge le sue impostazioni dalle preferenze gestite del suo identificativo bundle, chat.antimatter.desktop, con le chiavi di la tabella delle impostazioni. Distribuiscile con il tuo MDM (Jamf, Intune, Kandji, Mosyle e altri) come profilo di configurazione.
- La cartella resources/mac/mdm del repository dell'app contiene un profilo di esempio,
antimatter.mobileconfig. Modifica i suoi valori, assegnagli i tuoi valoriPayloadIdentifierePayloadUUID(uuidgengenera nuovi UUID) e caricalo come profilo personalizzato. - La maggior parte degli MDM accetta anche solo le chiavi, come payload "impostazioni personalizzate" o "dominio preferenze" per
chat.antimatter.desktop. La stessa cartella le contiene inexample-managed-preferences.plist.
Le impostazioni all'interno del payload del profilo:
<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/>
I valori booleani possono anche essere forniti come interi 0 e 1.
Linux: il file di policy
Su Linux, l'app legge /etc/antimatter-desktop/policies.json, un oggetto JSON con le chiavi di la tabella delle impostazioni:
{
"DefaultServerList": [
{"name": "Chat", "url": "https://chat.example.com"}
],
"DefaultUsername": "%USER%",
"EnableServerManagement": false,
"EnableAutoUpdater": false,
"TrustedEmbeddedMediaOrigins": []
}
Distribuiscilo con il tuo strumento di gestione della configurazione (Ansible, Puppet, Salt e altri), di proprietà di root, leggibile da tutti e scrivibile solo da root:
sudo install -d /etc/antimatter-desktop
sudo install -m 644 policies.json /etc/antimatter-desktop/policies.json
Un file che non è un JSON valido viene ignorato, con un avviso nel log dell'app. La versione Flatpak non vede la cartella /etc dell'host: concedile l'accesso in lettura e leggerà il file da /run/host/etc/antimatter-desktop/policies.json:
sudo flatpak override --system --filesystem=host-etc:ro chat.antimatter.desktop
Policy impostate per l'app desktop di Mattermost
Su Windows, l'app legge anche le policy configurate per l'app desktop Mattermost, sotto SOFTWARE\Policies\Mattermost, come fallback. Le legge in base alla posizione: i valori direttamente sotto la chiave di policy, la sottochiave DefaultServerList e la sottochiave TrustedEmbeddedMediaOrigins. Per ciascuna di queste tre posizioni, legge la chiave Mattermost solo quando la chiave Antimatter non ha valori lì, in entrambi gli hive. Quindi, una volta impostato un valore direttamente sotto la chiave Antimatter, ad esempio tramite la proprietà AUTOUPDATE dell'MSI, nessuno dei valori direttamente sotto la chiave Mattermost viene letto. Sposta tutte le tue policy nella chiave Antimatter in un'unica volta.
Su macOS, le preferenze gestite dell'app desktop Mattermost (com.mattermost.desktop) non vengono lette: impostale per chat.antimatter.desktop.
Build non firmate
Le build dell'app desktop non sono ancora firmate con un certificato del publisher.
- Windows. Quando una persona apre un file
.exeo.msiscaricato, Microsoft Defender SmartScreen avvisa che Windows ha protetto il computer e indica un publisher sconosciuto. La persona sceglie Maggiori informazioni, poi Esegui comunque. SmartScreen controlla i file che le persone aprono dopo un download, quindi non vedranno questo avviso se distribuisci l'app tramite SCCM, Intune o Group Policy. Se i tuoi computer eseguono solo software da publisher approvati (regole AppLocker o App Control for Business), autorizza l'app tramite il percorso di installazione o l'hash del file. - macOS. L'app è firmata ad hoc, ma non è stata notarizzata da Apple. La prima volta che una persona apre una copia scaricata, macOS avvisa che non può verificare che l'app sia priva di malware e non la apre. Su macOS 15 e versioni successive, la persona apre Impostazioni di Sistema › Privacy e Sicurezza e sceglie Apri comunque. Su versioni precedenti, fa clic di controllo sull'app e sceglie Apri. Gatekeeper controlla solo i file contrassegnati come scaricati (con l'attributo di quarantena): quando installi l'app con i tuoi strumenti, rimuovi il contrassegno nel tuo script di installazione, con
xattr -dr com.apple.quarantine /Applications/Antimatter.app.