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 .msi ou um arquivo .zip. Por exemplo, antimatter-desktop-<version>-win-x64.exe e antimatter-desktop-<version>-win-x64.msi.
  • macOS: uma imagem de disco .dmg ou 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 .exeO pacote .msi
ParaPessoas que instalam a aplicação por conta própriaEmpresas que a implantam nos seus computadores
InstalaçãoApenas para a conta de Windows atual, em %LOCALAPPDATA%\Programs\antimatter-desktop, sem direitos de administradorPara todos os utilizadores do computador, em C:\Program Files\Antimatter, com direitos de administrador
AtualizaçõesA aplicação verifica novas versões e oferece a descarga do novo .exe, que atualiza a cópia instalada no localA 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çãoNo WindowsNo macOS e LinuxO que faz
DefaultServerListUma subchave com um valor de string por servidor: o nome do valor é o nome da respetiva separador, e os dados são o seu URLUm array de dicionários (objetos no Linux) com name e urlAdiciona servidores à aplicação. As pessoas não podem editá-los ou removê-los.
DefaultUsernameUma stringUma stringPreenche o nome de utilizador na página de início de sessão destes servidores.
EnableServerManagementUm DWORD, 0 ou 1Um booleano0 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.
EnableAutoUpdaterUm DWORD, 0 ou 1Um booleano0 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.
TrustedEmbeddedMediaOriginsUma subchave com valores de string, cada um um objeto JSON com serverOrigin e embeddedOriginUm array de dicionários com serverOrigin e embeddedOriginPermite 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.com um 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
PropriedadeEscreveSe não for fornecida
SERVERURLUm servidor em DefaultServerList, com este URLNenhum servidor
SERVERNAMEO nome da separação desse servidorAntimatter
DEFAULTUSERNAMEDefaultUsernameNada
AUTOUPDATEEnableAutoUpdater, 0 ou 1Nada: a cópia do MSI não verifica atualizações
SERVERMANAGEMENTEnableServerManagement, 0 ou 1Nada: 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. AUTOUPDATE e SERVERMANAGEMENT só aceitam 0 ou 1. O MSI define um servidor: utilize a Group Policy para mais.
  • DEFAULTUSERNAME tem 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 que DefaultUsername conté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íticaValor de registoConfiguração
Servidores (DefaultServerList)Subchave DefaultServerListcomputador e utilizador
Nome de utilizador para preencher automaticamente (DefaultUsername)DefaultUsernamecomputador e utilizador
Permitir às pessoas adicionar e remover servidores (EnableServerManagement)EnableServerManagementcomputador e utilizador
Notificar sobre novas versões (EnableAutoUpdater)EnableAutoUpdaterapenas computador
Origens de media incorporado de confiança (TrustedEmbeddedMediaOrigins)Subchave TrustedEmbeddedMediaOriginscomputador e utilizador

Política de Grupo num domínio

  1. Copie antimatter.admx para a loja central, \\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions, e antimatter.adml para a respetiva pasta en-US.
  2. 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.
  3. 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 de PayloadIdentifier e PayloadUUID (uuidgen cria 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 no example-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 .exe ou .msi descarregado, 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.