Implantação da aplicação de desktop
Como instalar a aplicação de desktop do Antimatter nos computadores de uma empresa ou escola, e definir os seus servidores, o nome de utilizador e as verificações de atualização centralmente no Windows, macOS e Linux.
Descarregar a aplicação
As versões da aplicação de desktop estão no GitHub, em github.com/AntimatterChat/desktop-app/releases. Assim como o servidor, a aplicação está em beta: uma versão com um sufixo após um hífen é marcada como Pre-release. Cada versão tem um ficheiro SHA256SUMS com o código de verificação de cada ficheiro. Verifique uma descarga com sha256sum --check --ignore-missing SHA256SUMS no Linux, ou compare a saída de Get-FileHash <file> -Algorithm SHA256 no PowerShell com a respetiva linha no SHA256SUMS.
- Windows (x64 e arm64): o instalador
.exe, o pacote.msiou um arquivo.zip. Por exemplo,antimatter-desktop-<version>-win-x64.exeeantimatter-desktop-<version>-win-x64.msi. - macOS: uma imagem de disco
.dmgou um.zip, para Apple silicon (arm64), Macs Intel (x64) ou ambos (universal). - Linux (x64 e arm64): um pacote .deb ou .rpm, um AppImage, um pacote Flatpak ou um arquivo
.tar.gz.
Qual instalador do Windows utilizar
| O instalador .exe | O pacote .msi | |
|---|---|---|
| Para | Pessoas que instalam a aplicação por conta própria | Empresas que a implantam nos seus computadores |
| Instalação | Apenas para a conta de Windows atual, em %LOCALAPPDATA%\Programs\antimatter-desktop, sem direitos de administrador | Para todos os utilizadores do computador, em C:\Program Files\Antimatter, com direitos de administrador |
| Atualizações | A aplicação verifica novas versões e oferece a descarga do novo .exe, que atualiza a cópia instalada no local | A aplicação não verifica novas versões: são as que você implanta |
A aplicação verifica novas versões no GitHub, de hora a hora enquanto está em execução, e apenas deteta lançamentos completos, não pré-lançamentos. Quando encontra uma, informa a pessoa e oferece um link para a descarregar. Uma cópia instalada com o MSI não verifica por defeito, porque as pessoas que a utilizam normalmente não podem instalar software. Pode ativar as verificações para ela com a definição EnableAutoUpdater: a descarga que oferece passa então a ser o novo .msi, que requer direitos de administrador.
Utilize o MSI para uma implantação gerida com SCCM (Configuration Manager), Intune ou instalação de software via Group Policy. A instalação do MSI remove a cópia .exe da conta que executa a instalação, se existir.
As definições que pode gerir
As mesmas definições existem em todos os sistemas. No Windows, são valores de registo sob SOFTWARE\Policies\Antimatter, em HKEY_LOCAL_MACHINE (para o computador) ou HKEY_CURRENT_USER (para um único utilizador). No macOS e Linux, são chaves das preferências geridas ou do ficheiro de política.
| Definição | No Windows | No macOS e Linux | O que faz |
|---|---|---|---|
DefaultServerList | Uma subchave com um valor de string por servidor: o nome do valor é o nome da respetiva separador, e os dados são o seu URL | Um array de dicionários (objetos no Linux) com name e url | Adiciona servidores à aplicação. As pessoas não podem editá-los ou removê-los. |
DefaultUsername | Uma string | Uma string | Preenche o nome de utilizador na página de início de sessão destes servidores. |
EnableServerManagement | Um DWORD, 0 ou 1 | Um booleano | 0 ou false: as pessoas só podem utilizar os servidores definidos por DefaultServerList, e a aplicação oculta as opções para adicionar, editar e remover servidores. Não definido: as pessoas podem adicionar os seus próprios servidores. |
EnableAutoUpdater | Um DWORD, 0 ou 1 | Um booleano | 0 ou false: a aplicação nunca verifica novas versões e oculta Verificar atualizações. 1 ou true: verifica, mesmo quando instalada com o MSI. Não definido: a cópia .exe verifica, a cópia MSI não. |
TrustedEmbeddedMediaOrigins | Uma subchave com valores de string, cada um um objeto JSON com serverOrigin e embeddedOrigin | Um array de dicionários com serverOrigin e embeddedOrigin | Permite que o conteúdo incorporado nas páginas de um servidor, como uma página de reunião de vídeo, utilize as permissões de câmara e microfone concedidas a esse servidor. |
- O nome de utilizador só é preenchido na página de início de sessão dos servidores definidos pela política, nunca num servidor adicionado por uma pessoa e nunca por cima do que alguém digitou. As pessoas ainda podem alterá-lo. As variáveis de ambiente entre sinais de percentagem são substituídas, pelo que um único valor serve para todos:
%USERNAME%no Windows ou%USER%no macOS e Linux fornece o nome da conta, e%USERNAME%@example.comum endereço de e-mail que segue este padrão. Se uma variável não estiver definida, a aplicação não preenche nada. - Se desativar a gestão de servidores, defina pelo menos um servidor em
DefaultServerList. - No Windows, uma política de computador (
HKEY_LOCAL_MACHINE) tem prioridade sobre uma política de utilizador (HKEY_CURRENT_USER). As listas de servidores de ambas são combinadas. - A aplicação lê as definições quando arranca: após uma alteração, as pessoas têm de sair e reabrir a aplicação.
Windows: instalação silenciosa com o MSI
O MSI aceita propriedades públicas que escrevem as definições como políticas de computador, em HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter. Utilize-as numa aplicação SCCM, numa aplicação Intune ou num script. No PowerShell:
msiexec /i antimatter-desktop-<version>-win-x64.msi /qn SERVERURL=https://chat.example.com SERVERNAME=Chat DEFAULTUSERNAME='%USERNAME%' AUTOUPDATE=0 SERVERMANAGEMENT=0
| Propriedade | Escreve | Se não for fornecida |
|---|---|---|
SERVERURL | Um servidor em DefaultServerList, com este URL | Nenhum servidor |
SERVERNAME | O nome da separação desse servidor | Antimatter |
DEFAULTUSERNAME | DefaultUsername | Nada |
AUTOUPDATE | EnableAutoUpdater, 0 ou 1 | Nada: a cópia do MSI não verifica atualizações |
SERVERMANAGEMENT | EnableServerManagement, 0 ou 1 | Nada: as pessoas podem adicionar servidores |
- Uma propriedade que não for fornecida não escreve nada, pelo que não substitui um valor definido pela Group Policy.
AUTOUPDATEeSERVERMANAGEMENTsó aceitam 0 ou 1. O MSI define um servidor: utilize a Group Policy para mais. DEFAULTUSERNAMEtem de chegar ao instalador como o texto%USERNAME%, para que a aplicação o substitua para cada pessoa. Caso contrário, a shell que executa a instalação substitui-o pelo nome da sua própria conta. No PowerShell, mantenha as aspas simples. Num ficheiro.bat, escreva%%USERNAME%%. Após uma instalação de teste, verifique no registo queDefaultUsernamecontém%USERNAME%.- Transmita as propriedades novamente em cada atualização. A instalação de uma nova versão do MSI remove a antiga, com os valores que escreveu, e depois escreve os valores da nova linha de comandos. O SCCM e o Intune mantêm a linha de comandos de uma aplicação: reutilize-a para cada nova versão. Ou defina as políticas com a Group Policy ou o Intune, que as atualizações não tocam.
- O MSI e a Política de Grupo escrevem os mesmos valores de registo. Para cada definição, utilize um ou o outro: desinstalar o MSI elimina os valores que este escreveu, mesmo que a Política de Grupo também os tenha definido.
- O MSI também regista a pasta de instalação em
HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop(InstallDir). É assim que a aplicação sabe que foi instalada com o MSI.
Para desinstalar: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. No Intune, o tipo "Aplicação Windows (Win32)" aceita as mesmas linhas de comando. Para o tipo "Aplicação de linha de negócios", adicione as propriedades aos argumentos da linha de comando.
Windows: Política de Grupo e Intune
Os modelos administrativos, antimatter.admx e en-US\antimatter.adml, encontram-se na pasta gpo da aplicação instalada (C:\Program Files\Antimatter\gpo para o MSI) e na pasta resources/windows/gpo do repositório da aplicação. Estes mostram as seguintes políticas, sob Modelos Administrativos › Antimatter:
| Política | Valor de registo | Configuração |
|---|---|---|
| Servidores (DefaultServerList) | Subchave DefaultServerList | computador e utilizador |
| Nome de utilizador para preencher automaticamente (DefaultUsername) | DefaultUsername | computador e utilizador |
| Permitir às pessoas adicionar e remover servidores (EnableServerManagement) | EnableServerManagement | computador e utilizador |
| Notificar sobre novas versões (EnableAutoUpdater) | EnableAutoUpdater | apenas computador |
| Origens de media incorporado de confiança (TrustedEmbeddedMediaOrigins) | Subchave TrustedEmbeddedMediaOrigins | computador e utilizador |
Política de Grupo num domínio
- Copie
antimatter.admxpara a loja central,\\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions, eantimatter.admlpara a respetiva pastaen-US. - No Editor de Gestão de Política de Grupo, abra Configuração do Computador (ou Configuração do Utilizador) › Políticas › Modelos Administrativos › Antimatter.
- Edite uma política, escolha Ativado e preencha-a. Para Servidores, clique em Mostrar e adicione uma linha por servidor: o nome do valor é o nome da separador, o valor é o URL do servidor, por exemplo
https://chat.example.com.
Ativar Permitir às pessoas adicionar e remover servidores ou Notificar sobre novas versões escreve 1; desativá-la escreve 0.
Intune
Em Dispositivos › Configuração, utilize Importar ADMX para importar antimatter.admx com en-US\antimatter.adml. Em seguida, crie um perfil a partir de Modelos › Modelos administrativos importados e defina as políticas do Antimatter nele.
Um único computador, ou um script
Copie os modelos para C:\Windows\PolicyDefinitions para os utilizar no gpedit.msc (Windows Pro e Enterprise). Ou escreva diretamente os valores do registo, com um ficheiro .reg importado como administrador (reg import antimatter-policies.reg), como este. O ficheiro example-policies.reg na mesma pasta contém estes valores, com comentários.
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: um perfil de configuração
No macOS, a aplicação lê as suas definições a partir das preferências geridas do seu identificador de pacote, chat.antimatter.desktop, com as chaves da tabela de definições. Distribua-as com o seu MDM (Jamf, Intune, Kandji, Mosyle e outros) como um perfil de configuração.
- A pasta resources/mac/mdm do repositório da aplicação contém um perfil de exemplo,
antimatter.mobileconfig. Edite os seus valores, atribua-lhe os seus próprios valores dePayloadIdentifierePayloadUUID(uuidgencria novos UUIDs) e carregue-o como um perfil personalizado. - A maioria dos MDMs também aceita apenas as chaves, como um payload de "definições personalizadas" ou "domínio de preferências" para
chat.antimatter.desktop. A mesma pasta contém-nas noexample-managed-preferences.plist.
As definições no payload do perfil:
<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/>
Os valores booleanos também podem ser fornecidos como os inteiros 0 e 1.
Linux: o ficheiro de políticas
No Linux, a aplicação lê /etc/antimatter-desktop/policies.json, um objeto JSON com as chaves da tabela de definições:
{
"DefaultServerList": [
{"name": "Chat", "url": "https://chat.example.com"}
],
"DefaultUsername": "%USER%",
"EnableServerManagement": false,
"EnableAutoUpdater": false,
"TrustedEmbeddedMediaOrigins": []
}
Distribua-o com a sua ferramenta de gestão de configuração (Ansible, Puppet, Salt e outros), pertencente à raiz, legível por todos e gravável apenas pela raiz:
sudo install -d /etc/antimatter-desktop
sudo install -m 644 policies.json /etc/antimatter-desktop/policies.json
Um ficheiro que não seja JSON válido é ignorado, com um aviso no registo da aplicação. A versão Flatpak não vê o /etc do sistema anfitrião: conceda-lhe acesso de leitura, e ela lê o ficheiro a partir de /run/host/etc/antimatter-desktop/policies.json:
sudo flatpak override --system --filesystem=host-etc:ro chat.antimatter.desktop
Políticas definidas para a aplicação de desktop do Mattermost
No Windows, a aplicação também lê as políticas definidas para a aplicação de desktop do Mattermost, em SOFTWARE\Policies\Mattermost, como alternativa. Lê-as por localização: os valores diretamente sob a chave de política, a subchave DefaultServerList e a subchave TrustedEmbeddedMediaOrigins. Para cada uma destas três localizações, lê a chave do Mattermost apenas quando a chave do Antimatter não tem valores aí, em qualquer dos registos. Assim, uma vez que um valor seja definido diretamente sob a chave do Antimatter, por exemplo pela propriedade AUTOUPDATE do MSI, nenhum dos valores diretamente sob a chave do Mattermost será lido. Transfira todas as suas políticas para a chave do Antimatter de uma só vez.
No macOS, as preferências geridas da aplicação de desktop do Mattermost (com.mattermost.desktop) não são lidas: defina-as para chat.antimatter.desktop.
Compilações não assinadas
As compilações da aplicação de desktop ainda não estão assinadas com um certificado de editor.
- Windows. Quando uma pessoa abre um
.exeou.msidescarregado, o Microsoft Defender SmartScreen indica que o Windows protegeu o computador e nomeia um editor desconhecido. A pessoa escolhe Mais informações e, em seguida, Executar de qualquer forma. O SmartScreen verifica os ficheiros que as pessoas abrem após um descarregamento, pelo que as pessoas não veem este aviso quando a aplicação é implantada através do SCCM, Intune ou Group Policy. Se os seus computadores apenas executarem software de editores aprovados (regras do AppLocker ou do App Control for Business), permita a aplicação pelo seu caminho de instalação ou pelo hash do ficheiro. - macOS. A aplicação está assinada de forma ad hoc, mas não foi autenticada pela Apple. Na primeira vez que uma pessoa abre uma cópia descarregada, o macOS indica que não pode verificar se a aplicação está livre de malware e não a abre. No macOS 15 e posterior, a pessoa abre Definições do sistema › Privacidade e Segurança e escolhe Abrir de qualquer forma. Em versões anteriores, a pessoa clica com o botão de controlo na aplicação e escolhe Abrir. O Gatekeeper apenas verifica os ficheiros marcados como descarregados (com o atributo de quarentena): quando instala a aplicação com as suas próprias ferramentas, remova a marcação no seu script de instalação, com
xattr -dr com.apple.quarantine /Applications/Antimatter.app.