9 pontos por GN⁺ 4 시간 전 | 2 comentários | Compartilhar no WhatsApp
  • Chatto é um app para chats de grupos e equipes, semelhante a apps de chat em grupo como Slack, Teams e Discord, mas com o objetivo de oferecer uma experiência mais compacta e rápida
  • Ele permite subir um servidor apenas com o executável e ainda fornece seu próprio frontend, facilitando relativamente a implantação em uma infraestrutura pessoal
  • Cada servidor atende a uma única comunidade, sem federação entre servidores nem rastreamento ou analytics de terceiros
  • Dados pessoais e de chat são criptografados em repouso com chaves por usuário, e essa chave é descartada quando a conta é excluída
  • É uma aplicação de chat para grupos e equipes desenvolvida ao longo de cerca de um ano e agora oficialmente open source, permitindo que qualquer pessoa a opere diretamente

Chatto lançado para auto-hospedagem

  • Chatto é uma aplicação de chat para grupos e equipes desenvolvida ao longo de cerca de um ano e agora oficialmente open source, permitindo que qualquer pessoa a opere diretamente
  • A forma mais rápida de executar é usando Homebrew
brew install chattocorp/tap/chatto  
chatto init  
chatto run  
  • O procedimento de instalação pode ser conferido no Getting Started Guide
  • Embora tenha um propósito semelhante ao de apps de chat em grupo como Slack, Teams e Discord, o foco é uma experiência mais compacta e rápida
  • É possível ver o funcionamento na prática na Chatto HQ Community

Estrutura do servidor e modelo de segurança

  • Na forma mais básica, é possível subir o servidor com um único executável, e o servidor também fornece seu próprio frontend
  • O uso de recursos é baixo, e dados pessoais e de chat são totalmente criptografados em repouso com chaves por usuário
    • Quando o usuário exclui a conta, a chave desse usuário é descartada
  • Cada servidor Chatto executa uma única comunidade
    • Não há federação de dados entre servidores
    • Também não há rastreamento ou analytics de terceiros
    • Se quiser estar em vários servidores ao mesmo tempo, o cliente se conecta diretamente a cada servidor
    • Para hospedar várias comunidades, basta executar vários processos do Chatto
  • Chamadas de voz e vídeo e compartilhamento de tela são suportados nativamente
    • As chamadas são criptografadas de ponta a ponta
    • A expansão do número de participantes é possível até o limite que a infraestrutura do usuário consiga suportar

Arquivos de distribuição e materiais de operação

Chatto Cloud e hospedagem paga

  • Chatto Cloud entrará em beta público em breve e oferecerá apenas hospedagem paga de servidores Chatto
    • Não haverá assinaturas premium, anúncios nem outros elementos adicionais; apenas hospedagem
  • A infraestrutura no lançamento será composta por infraestrutura europeia e de propriedade europeia
    • Mais regiões devem ser lançadas no início de 2027
    • Todos os servidores Chatto Cloud oferecem escalonamento automático, backup completo dos dados todas as noites e upgrades de versão sem downtime
  • O Chatto Cloud segue uma direção que evita lock-in
    • Servidores hospedados no Chatto Cloud são 100% compatíveis com servidores auto-hospedados
    • É possível mover os dados a qualquer momento, para dentro ou para fora do Chatto Cloud

Status da 0.4 e planos até a 1.0.0

  • A versão atual do Chatto é 0.4
    • É considerada estável o suficiente para uso em produção
    • Algumas funcionalidades importantes ainda estão ausentes
    • O plano completo pode ser visto no Chatto Roadmap
  • O foco do Chatto 0.5 são recursos de segurança e melhorias no cliente
    • Inclui denúncias de conteúdo e recursos de moderação
    • Há foco especial em refinar os recursos multi-servidor
  • Espera-se que o Chatto 1.0.0 seja alcançado em cerca de 6 a 12 meses
    • Até lá, pode haver mudanças incompatíveis
    • Usuários de auto-hospedagem precisam estar preparados para atualizar quando novas versões forem lançadas
  • Notícias de releases e avisos sobre o início do beta do Chatto Cloud podem ser recebidos pela newsletter Chatto announcements, com frequência de envio de cerca de uma vez por mês

2 comentários

 
click 28 분 전

Estou usando o Mattermost, mas eles ficam empurrando a versão enterprise e depreciando os recursos da versão OSS, então quando estiver maduro o suficiente, acho que quero tentar criar uma ferramenta para migrar do Mattermost.

 
GN⁺ 4 시간 전
Opiniões no Hacker News
  • Gosto do fato de ter sido projetado para ser muito fácil de auto-hospedar na própria infraestrutura. Pela documentação (https://docs.chatto.run/), o Chatto é distribuído como um binário pequeno e independente, usa o NATS, um broker de mensagens leve com mecanismo integrado de persistência de streams, e também permite configurar armazenamento de objetos externo compatível com S3.
    As chamadas em si são movidas pelo LiveKit (Apache-2.0) e precisam ser implantadas junto com o Chatto; também é bom ver que ele mostra a configuração de integração necessária nos exemplos de implantação, assim como no NATS. É um ótimo projeto, com guias reais, não só promessas.

    • Muito legal. Ter mais opções é sempre bom. Mas, olhando a documentação, fiquei confuso sobre se existe um aplicativo desktop.
      Pelas capturas de tela parece que sim, mas não encontrei a documentação para baixá-lo.
    • Fico curioso para saber se dá para instalar também em lugares fáceis e baratos, ou quase gratuitos, como Cloudflare ou Vercel.
  • Conheço o Hendrik há alguns anos, e ele é uma das pessoas mais talentosas com quem já trabalhei como desenvolvedor. Tenho certeza de que este projeto vai decolar muito rápido.
    O projeto em si é interessante, mas é especialmente impressionante que ele tenha sido desenvolvido por uma pessoa só usando codificação agentiva.

    • Conheço-o pessoalmente há quase 30 anos, e ele continua sendo uma das pessoas mais inteligentes, experientes e curiosas que já encontrei como desenvolvedor.
      No geral, é uma ótima pessoa, e eu trabalharia com ele de novo a qualquer momento.
    • Fico curioso para saber se há outras coisas interessantes que ele tenha criado.
    • Eu estava um pouco interessado, mas essa fala acabou me convencendo mais a evitar.
  • Se a ideia for vender para empresas, é preciso pensar no trecho “quando o usuário exclui a conta, destruímos as chaves por usuário”. Mensagens de trabalho pertencem ao empregador, não ao usuário individual, então é necessário ter exclusão lógica.

    • Nesse caso, acho que basta impedir que o usuário exclua a própria conta. Ainda assim, para a maioria dos usuários e provedores do Chatto, cumprir automaticamente o direito à exclusão parece uma boa abordagem.
    • Talvez empregadores não sejam o público-alvo.
  • Dei risada porque, em português, “chato” quer dizer “tedioso”. Mas isto parece muito fácil de configurar e usar.
    Que venha mais software chato.

    • Também pode significar “irritante”. Antes de escolher o nome de um projeto ou empresa, é sempre bom pesquisar se ele tem algum sentido ruim pelo menos nos 10 idiomas com mais usuários.
      Em português/espanhol, com certa frequência pode acabar sendo uma gíria NSFW.
  • Legal. Mas não dá para saber em nenhum lugar do site se há suporte a dispositivos móveis.
    Para migrar uma empresa ou amigos, suporte mobile é indispensável.

    • Parece estar nos planos.
      https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
    • Vale notar que, para enviar notificações a um app iOS, o publicador do app precisa enviar as notificações. Ou seja, é preciso operar um serviço de proxy de encaminhamento de eventos.
      Mattermost, Element/Matrix e talvez alguns ou todos os clientes ActivityPub parecem fazer isso dessa forma. Caso contrário, auto-hospedar o servidor significaria que você também teria que distribuir diretamente o app cliente por meio da App Store e pagando o programa de desenvolvedor da Apple.
  • Vou continuar acompanhando. Atualmente uso Mattermost, mas a política de preços é bem irregular e voltada para enterprise, então por enquanto continuo usando a versão open source, que tem muitos recursos limitados.
    Além disso, as chamadas de vídeo deixavam a desejar, e é bom ver que o Chatto tem esse recurso.

  • Fico curioso sobre o motivo da licença dupla. O backend em Go é AGPL, mas o frontend em TypeScript parece ser Apache 2.0.
    Queria entender por que não deixar tudo em AGPL.

    • Colocar o backend sob AGPL pode impedir que alguém o hospede como serviço. Como a AGPL considera hospedagem como distribuição, qualquer pessoa que hospede precisa abrir o código.
      Isso dá uma forma suave de exclusividade para operar sua própria nuvem. Já no frontend, uma licença mais permissiva faz mais sentido se a ideia é permitir customização, white labeling etc.
      O Grafana é um bom exemplo. Em 2021, ele migrou de Apache para AGPLv3 para impedir que provedores de nuvem hospedassem versões modificadas sem contribuir de volta, enquanto os plugins permaneceram sob licença Apache.
    • A AGPL impede que outra parte use o backend em Go para operar um serviço de nuvem concorrente. No frontend, ela não teria muito efeito e só assustaria usuários enterprise.
  • Seria ótimo se, depois da auto-hospedagem, fosse possível gerar um pacote ou link que já cuidasse do download, instalação e pré-configuração de login. Algo como um instalador personalizado ou script de configuração vinculado a uma pessoa específica.
    O objetivo é reduzir ao máximo o atrito de onboarding. Pode haver implicações de segurança se o link for compartilhado por engano, mas em uma instância pequena auto-hospedada isso parece relativamente fácil de mitigar. Também poderia funcionar apenas em contas locais.
    Assim ficaria fácil mandar a um amigo um link do tipo “vamos conversar por aqui”, sem precisar se preocupar com a resposta “já uso Discord e não quero configurar tudo isso”.

    • Fico curioso sobre o que você espera além de “vou te mandar o link da instância, cadastre-se lá”. Combinado com papéis no estilo Discord, dá para restringir visibilidade de canais e permissões por papel.
      Mesmo que outra pessoa se cadastre, basta não dar a ela, por exemplo, o papel de “grupo interno”. Será que você está pensando em algo como um link de convite com token de uso único?
  • Muito bom. Já tive uma ideia parecida no passado: muitas empresas querem algo que agregue notificações e execute ações simples de bot, mas não querem necessariamente ficar presas a um provedor de chat específico.
    Se puder servir como frontend para várias integrações, ou mesmo apenas como chat interno, isso seria realmente interessante.

  • Gostaria de saber quais são os pontos fortes e fracos do Chatto em comparação com o Mattermost.
    Além disso, é muito bom ver que o backend do Chatto foi implementado em Go. Go se encaixa muito bem nesse tipo de uso.