Implantação do aplicativo para desktop

Como instalar o aplicativo Antimatter para desktop nos computadores de uma empresa ou escola e configurar seus servidores, o nome de usuário e as verificações de atualização centralmente no Windows, macOS e Linux.

Baixar o aplicativo

As versões do aplicativo para desktop estão no GitHub, em github.com/AntimatterChat/desktop-app/releases. Assim como o servidor, o aplicativo está em beta: uma versão cujo número tem um sufixo após um hífen é marcada como Pre-release. Cada versão tem um arquivo SHA256SUMS com o checksum de cada arquivo. Verifique um download com sha256sum --check --ignore-missing SHA256SUMS no Linux, ou compare a saída de Get-FileHash <file> -Algorithm SHA256 no PowerShell com a linha correspondente em 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 bundle Flatpak ou um arquivo .tar.gz.

Qual instalador do Windows usar

O instalador .exeO pacote .msi
ParaPessoas que instalam o aplicativo por conta própriaEmpresas que o implantam nos próprios computadores
InstalaçãoSomente para a conta de usuário atual do Windows, em %LOCALAPPDATA%\Programs\antimatter-desktop, sem privilégios de administradorPara todos os usuários do computador, em C:\Program Files\Antimatter, com privilégios de administrador
AtualizaçõesO aplicativo verifica novas versões e oferece para baixar o novo .exe, que atualiza a cópia instalada no localO aplicativo não verifica novas versões: você as implanta

O aplicativo verifica novas versões no GitHub a cada hora durante a execução e detecta apenas lançamentos completos, não pré-lançamentos. Quando encontra uma, ele notifica o usuário e oferece um link para download. Uma cópia instalada com o MSI não verifica por padrão, pois os usuários geralmente não podem instalar software. Você pode ativar as verificações para ela com a configuração EnableAutoUpdater: o download oferecido será então o novo .msi, que requer privilégios de administrador.

Use o MSI para uma implantação gerenciada 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 está executando a instalação, se houver.

As configurações que você pode gerenciar

As mesmas configurações existem em todos os sistemas. No Windows, são valores de registro sob SOFTWARE\Policies\Antimatter, em HKEY_LOCAL_MACHINE (para o computador) ou HKEY_CURRENT_USER (para um único usuário). No macOS e Linux, são chaves das preferências gerenciadas ou do arquivo de política.

ConfiguraçãoNo WindowsNo macOS e LinuxO que faz
DefaultServerListUma subchave com um valor de string por servidor: o nome do valor é o nome da aba, e os dados são a URL correspondenteUm array de dicionários (objetos no Linux) com name e urlAdiciona servidores ao aplicativo. Os usuários não podem editá-los ou removê-los.
DefaultUsernameUma stringUma stringPreenche o nome de usuário na página de login desses servidores.
EnableServerManagementUm DWORD, 0 ou 1Um booleano0 ou false: os usuários podem usar apenas os servidores definidos por DefaultServerList, e o aplicativo oculta as opções para adicionar, editar e remover servidores. Não definido: os usuários podem adicionar seus próprios servidores.
EnableAutoUpdaterUm DWORD, 0 ou 1Um booleano0 ou false: o aplicativo nunca verifica novas versões e oculta Verificar Atualizações. 1 ou true: ele verifica, mesmo quando instalado 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 sendo 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, use as permissões de câmera e microfone concedidas a esse servidor.
  • O nome de usuário é preenchido apenas na página de login dos servidores definidos pela política, nunca em um servidor adicionado por uma pessoa e nunca sobre o que alguém digitou. As pessoas ainda podem alterá-lo. Variáveis de ambiente entre sinais de porcentagem são substituídas, de modo que um único valor atende a 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 esse padrão. Se uma variável não estiver definida, o aplicativo não preencherá nada.
  • Se você desativar a gestão de servidores, defina pelo menos um servidor em DefaultServerList.
  • No Windows, uma política de computador (HKEY_LOCAL_MACHINE) tem precedência sobre uma política de usuário (HKEY_CURRENT_USER). As listas de servidores de ambas são combinadas.
  • O aplicativo lê as configurações ao iniciar: após uma alteração, as pessoas devem encerrar e reabrir o aplicativo.

Windows: instalação silenciosa com o MSI

O MSI aceita propriedades públicas que gravam as configurações como políticas de computador, em HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Antimatter. Use-as em um aplicativo SCCM, um aplicativo Intune ou em um 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
PropriedadeGravaSe não for fornecida
SERVERURLUm servidor em DefaultServerList, com esta URLNenhum servidor
SERVERNAMEO nome da aba 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 grava nada, portanto não substitui um valor definido pela Group Policy. AUTOUPDATE e SERVERMANAGEMENT aceitam apenas 0 ou 1. O MSI define um servidor: use a Group Policy para mais.
  • DEFAULTUSERNAME deve chegar ao instalador como o texto %USERNAME%, para que o aplicativo o substitua para cada pessoa. Caso contrário, o shell que executa a instalação o substituirá pelo nome da própria conta. No PowerShell, mantenha as aspas simples. Em um arquivo .bat, escreva %%USERNAME%%. Após uma instalação de teste, verifique no registro que DefaultUsername contém %USERNAME%.
  • Repasse as propriedades em cada atualização. A instalação de uma nova versão do MSI remove a antiga, com os valores que ela gravou, e então grava os valores da nova linha de comando. O SCCM e o Intune mantêm a linha de comando de um aplicativo: 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 alteram.
  • O MSI e a Diretiva de Grupo gravam os mesmos valores de registro. Para cada configuração, use um ou o outro: desinstalar o MSI exclui os valores que ele gravou, mesmo que a Diretiva de Grupo também os tenha definido.
  • O MSI também registra sua pasta de instalação em HKEY_LOCAL_MACHINE\SOFTWARE\Antimatter\Desktop (InstallDir). É assim que o aplicativo sabe que foi instalado com o MSI.

Para desinstalar: msiexec /x antimatter-desktop-<version>-win-x64.msi /qn. No Intune, o tipo "Windows app (Win32)" usa as mesmas linhas de comando. Para o tipo "Line-of-business app", adicione as propriedades aos argumentos de linha de comando.

Windows: Diretiva de Grupo e Intune

Os modelos administrativos, antimatter.admx e en-US\antimatter.adml, estão na pasta gpo do aplicativo instalado (C:\Program Files\Antimatter\gpo para o MSI) e na pasta resources/windows/gpo do repositório do aplicativo. Eles exibem estas políticas, sob Administrative Templates › Antimatter:

PolíticaValor de registroConfiguração
Servers (DefaultServerList)Subchave DefaultServerListcomputador e usuário
Username to prefill (DefaultUsername)DefaultUsernamecomputador e usuário
Let people add and remove servers (EnableServerManagement)EnableServerManagementcomputador e usuário
Notify about new versions (EnableAutoUpdater)EnableAutoUpdatersomente computador
Trusted embedded media origins (TrustedEmbeddedMediaOrigins)Subchave TrustedEmbeddedMediaOriginscomputador e usuário

Diretiva de Grupo em um domínio

  1. Copie antimatter.admx para o armazenamento central, \\<domain>\SYSVOL\<domain>\Policies\PolicyDefinitions, e antimatter.adml para sua pasta en-US.
  2. No Editor de Gerenciamento de Diretiva de Grupo, abra Computer Configuration (ou User Configuration) › Policies › Administrative Templates › Antimatter.
  3. Edite uma política, escolha Habilitado e preencha-a. Para Servers, clique em Exibir e adicione uma linha por servidor: o nome do valor é o nome da aba, e o valor é a URL do servidor, como https://chat.example.com.

Habilitar Let people add and remove servers ou Notify about new versions grava 1; desabilitá-los grava 0.

Intune

Em Dispositivos › Configuração, use 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 usá-los no gpedit.msc (Windows Pro e Enterprise). Ou escreva os valores do registro diretamente, com um arquivo .reg importado como administrador (reg import antimatter-policies.reg), como este. O arquivo example-policies.reg da mesma pasta contém esses 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, o aplicativo lê suas configurações das preferências gerenciadas do seu identificador de bundle, chat.antimatter.desktop, com as chaves da tabela de configurações. Implante-as com seu MDM (Jamf, Intune, Kandji, Mosyle e outros) como um perfil de configuração.

  • A pasta resources/mac/mdm do repositório do aplicativo contém um perfil de exemplo, antimatter.mobileconfig. Edite seus valores, atribua-lhe seus próprios valores de PayloadIdentifier e PayloadUUID (uuidgen gera novos UUIDs) e faça o upload como um perfil personalizado.
  • A maioria dos MDMs também aceita apenas as chaves, como um payload de "configurações personalizadas" ou "domínio de preferências" para chat.antimatter.desktop. A mesma pasta as contém em example-managed-preferences.plist.

As configurações dentro do 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 arquivo de política

No Linux, o aplicativo lê /etc/antimatter-desktop/policies.json, um objeto JSON com as chaves da tabela de configurações:

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

Implante-o com sua ferramenta de gerenciamento de configuração (Ansible, Puppet, Salt e outros), com propriedade do root, legível por todos e gravável apenas pelo root:

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

Um arquivo que não é um JSON válido é ignorado, com um aviso no log do aplicativo. A versão Flatpak não vê o /etc do host: conceda-lhe acesso de leitura, e ela lê o arquivo de /run/host/etc/antimatter-desktop/policies.json:

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

Políticas definidas para o aplicativo desktop do Mattermost

No Windows, o aplicativo também lê as políticas definidas para o aplicativo desktop do Mattermost, em SOFTWARE\Policies\Mattermost, como alternativa. Ele as lê por local: os valores diretamente sob a chave de política, a subchave DefaultServerList e a subchave TrustedEmbeddedMediaOrigins. Para cada um desses três locais, ele lê a chave do Mattermost apenas quando a chave do Antimatter não tiver valores ali, em qualquer hive. 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. Mova todas as suas políticas para a chave do Antimatter de uma só vez.

No macOS, as preferências gerenciadas do aplicativo 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 do aplicativo desktop ainda não são assinadas com um certificado de editor.

  • Windows. Quando uma pessoa abre um .exe ou .msi baixado, o Microsoft Defender SmartScreen informa que o Windows protegeu o computador e cita um editor desconhecido. A pessoa escolhe Mais Informações e, em seguida, Executar mesmo assim. O SmartScreen verifica os arquivos que as pessoas abrem após um download, portanto, elas não veem esse aviso quando você implanta o aplicativo por meio do SCCM, Intune ou Group Policy. Se seus computadores executam apenas software de editores aprovados (regras do AppLocker ou App Control for Business), permita o aplicativo por seu caminho de instalação ou hash de arquivo.
  • macOS. O aplicativo é assinado ad hoc, mas não notariado pela Apple. Na primeira vez que uma pessoa abre uma cópia baixada, o macOS informa que não pode verificar se o aplicativo está livre de malware e não o abre. No macOS 15 e posterior, a pessoa abre Configurações do Sistema › Privacidade e Segurança e escolhe abrir. Em versões anteriores, ela clica com o botão direito (ou Control-clique) no aplicativo e escolhe abrir. O Gatekeeper verifica apenas arquivos marcados como baixados (com o atributo de quarentena): ao instalar o aplicativo com suas próprias ferramentas, remova a marcação em seu script de instalação, com xattr -dr com.apple.quarantine /Applications/Antimatter.app.