Comece agora

Rode o Antimatter no seu próprio servidor

Um arquivo, três comandos, cerca de dez minutos: o Antimatter com o banco de dados, o armazenamento de arquivos e o serviço de GIFs, em qualquer servidor Linux com Docker.

Funcionando em dez minutos

Você precisa de um servidor Linux com o Docker e o plugin Compose, 2 núcleos de CPU e pelo menos 4 GB de memória.

1. Baixe o arquivo compose

$ mkdir antimatter && cd antimatter
$ curl -fsSLO https://antimatter.chat/compose.yaml

2. Crie as configurações, com senhas aleatórias

$ cat > .env <<EOF
SITE_URL=http://localhost:8065
POSTGRES_PASSWORD=$(openssl rand -hex 24)
S3_SECRET_KEY=$(openssl rand -hex 24)
GIFS_API_KEY=$(openssl rand -hex 24)
EOF

Defina SITE_URL com o endereço que as pessoas vão usar, como http://192.168.1.20:8065 em uma rede local.

3. Inicie

$ docker compose up -d

A primeira inicialização leva um ou dois minutos, enquanto o banco de dados é criado. Depois, abra o SITE_URL no navegador e crie a sua conta: a primeira conta se torna a administradora do sistema, e a configuração inicial guia você na criação da sua primeira comunidade.

Com o seu próprio domínio e HTTPS

Aponte um registro DNS do seu domínio para o servidor, abra as portas 80 e 443 e adicione o domínio ao .env:

$ cat >> .env <<EOF
DOMAIN=chat.example.com
EOF
$ sed -i 's|^SITE_URL=.*|SITE_URL=https://chat.example.com|' .env
$ docker compose --profile https up -d

O Caddy obtém um certificado do Let's Encrypt e o renova automaticamente.

O que fica rodando

  • antimatter: o servidor, com os seus apps (notas, quadros brancos, canais de voz, chamadas, enquetes e os demais). Ele não guarda nada em disco: as configurações ficam no banco de dados e os arquivos no serviço de armazenamento, então o contêiner pode ser substituído a qualquer momento.
  • postgres: o banco de dados.
  • files: RustFS, armazenamento compatível com S3 para os arquivos enviados.
  • gifs: o serviço de GIFs e figurinhas do Antimatter, com um pacote inicial de figurinhas.
  • https: Caddy, apenas com o perfil https.

O banco de dados, o armazenamento e o serviço de GIFs ficam em uma rede privada que só o Antimatter alcança.

Se o seletor de GIFs ficar vazio, abra Console do Sistema › Plugins › GIFs e defina a URL do serviço como http://gifs:8080/v2 e a chave de API como o GIFS_API_KEY do seu .env.

Atualizações e backups

# atualizar para as imagens mais recentes
$ docker compose pull && docker compose up -d
# fazer backup do banco de dados
$ docker compose exec postgres pg_dump -U antimatter antimatter > antimatter.sql

Faça backup também do volume files, ou replique o armazenamento com qualquer ferramenta S3. Para uma instalação com nginx e os seus próprios certificados, veja os arquivos de produção em antimatter-docker.

Com um pacote de release

  1. Crie um banco de dados e um usuário no PostgreSQL.
  2. Descompacte o pacote (antimatter-<os>-<arch>.tar.gz), por exemplo em /opt/antimatter, e aponte SqlSettings.DataSource em config/config.json (ou a variável de ambiente AM_SQLSETTINGS_DATASOURCE) para o banco de dados.
  3. Inicie o servidor com bin/antimatter, como um usuário sem privilégios, e abra http://localhost:8065. A primeira conta criada se torna a administradora do sistema.

O bin/amctl gerencia um servidor em execução pela linha de comando (bin/amctl --local no próprio servidor, com ServiceSettings.EnableLocalMode).

Próximos passos

  • Chamadas: abra a porta das chamadas (UDP e TCP 8443, por padrão) para que o áudio e o vídeo cheguem ao servidor.
  • E-mail: configure o SMTP para convites e notificações.
  • IA: adicione um modelo nas configurações de Agentes; qualquer API compatível com a OpenAI funciona, inclusive um servidor que você mesmo rode.
  • Voz e tradução: aponte a transcrição de chamadas, a leitura em voz alta e a tradução automática para modelos de conversão de fala em texto, de texto em fala e de tradução que você mesmo rode.