9 points par GN⁺ 4 시간 전 | 2 commentaires | Partager sur WhatsApp
  • Chatto est une application de chat pour groupes et équipes, similaire aux applications de chat de groupe comme Slack, Teams ou Discord, mais avec l’objectif d’offrir une expérience plus compacte et plus rapide
  • Elle permet de lancer un serveur avec un simple exécutable et fournit aussi son propre frontend, ce qui la rend relativement simple à déployer sur une infrastructure personnelle
  • Chaque serveur gère une seule communauté, sans fédération entre serveurs ni suivi ou analyse par des tiers
  • Les données personnelles et de chat sont chiffrées au repos avec des clés propres à chaque utilisateur ; lors de la suppression d’un compte, la clé correspondante est détruite
  • Il s’agit d’une application de chat pour groupes et équipes développée depuis environ un an, désormais officiellement open source et exploitable directement par chacun

Chatto publié pour l’auto-hébergement

  • Chatto est une application de chat pour groupes et équipes développée depuis environ un an, désormais officiellement open source et exploitable directement par chacun
  • La méthode la plus rapide pour la lancer consiste à utiliser Homebrew
brew install chattocorp/tap/chatto  
chatto init  
chatto run  
  • La procédure d’installation est disponible dans le Getting Started Guide
  • Tout en visant des usages similaires aux applications de chat de groupe comme Slack, Teams ou Discord, Chatto met l’accent sur une expérience plus compacte et plus rapide
  • Le fonctionnement en conditions réelles peut être consulté sur la Chatto HQ Community

Architecture serveur et modèle de sécurité

  • Dans sa forme la plus basique, un serveur peut être lancé avec un seul exécutable, et le serveur fournit également son propre frontend
  • La consommation de ressources est faible, et les données personnelles comme les données de chat sont entièrement chiffrées au repos avec des clés propres à chaque utilisateur
    • Lorsqu’un utilisateur supprime son compte, sa clé utilisateur est détruite
  • Chaque serveur Chatto fait fonctionner une seule communauté
    • Il n’y a pas de fédération de données entre serveurs
    • Il n’y a pas non plus de suivi ou d’analyse par des tiers
    • Si l’on souhaite être présent sur plusieurs serveurs en même temps, le client se connecte directement à chaque serveur
    • Pour héberger plusieurs communautés, il suffit d’exécuter plusieurs processus Chatto
  • Les appels audio et vidéo ainsi que le partage d’écran sont pris en charge nativement
    • Les appels sont chiffrés de bout en bout
    • Le nombre de participants peut évoluer jusqu’aux limites que l’infrastructure de l’utilisateur peut supporter

Fichiers de déploiement et ressources d’exploitation

Chatto Cloud et hébergement payant

  • Chatto Cloud doit bientôt entrer en bêta publique et proposera uniquement l’hébergement payant de serveurs Chatto
    • Pas d’abonnement premium, de publicité ni d’autres éléments additionnels : seulement de l’hébergement
  • Au lancement, l’infrastructure sera composée d’une infrastructure européenne et détenue en Europe
    • Davantage de régions doivent être lancées début 2027
    • Tous les serveurs Chatto Cloud proposeront l’autoscaling, une sauvegarde complète des données chaque nuit et des mises à niveau de version sans interruption
  • Chatto Cloud est conçu pour ne pas créer de verrouillage
    • Les serveurs hébergés sur Chatto Cloud sont compatibles à 100 % avec les serveurs auto-hébergés
    • Il est possible à tout moment de déplacer ses données vers ou depuis Chatto Cloud

État de la version 0.4 et feuille de route jusqu’à la 1.0.0

  • La version actuelle de Chatto est 0.4
    • Elle est considérée comme suffisamment stable pour une utilisation en production
    • Quelques fonctionnalités importantes manquent encore
    • Le plan complet est disponible dans la Chatto Roadmap
  • Chatto 0.5 se concentrera sur les fonctionnalités de sécurité et les améliorations du client
    • Elle inclura le signalement de contenu et des fonctionnalités de modération
    • L’accent sera notamment mis sur l’affinage des fonctionnalités multi-serveurs
  • Chatto 1.0.0 devrait être atteint dans environ 6 à 12 mois
    • Des changements incompatibles peuvent survenir d’ici là
    • Les utilisateurs en auto-hébergement devront être prêts à mettre à jour lorsqu’une nouvelle version sera publiée
  • Les annonces de release ou les notifications de lancement de la bêta de Chatto Cloud peuvent être reçues via la newsletter Chatto announcements, envoyée environ une fois par mois

2 commentaires

 
click 28 분 전

J’utilise Mattermost, mais comme ils poussent sans cesse vers l’offre Enterprise et réduisent les fonctionnalités de la version OSS,
quand Chatto sera suffisamment mature, j’aimerais bien développer un outil de migration depuis Mattermost.

 
GN⁺ 4 시간 전
Avis Hacker News
  • J’apprécie le fait que ce soit conçu pour être très facile à auto-héberger sur sa propre infrastructure. D’après la documentation (https://docs.chatto.run/), Chatto est distribué sous la forme d’un petit binaire autonome, utilise NATS, un broker de messages léger avec un moteur intégré de persistance des flux, et permet aussi de configurer un stockage d’objets externe compatible S3
    Les appels eux-mêmes sont propulsés par LiveKit (Apache-2.0) et doivent être déployés avec Chatto, et c’est aussi appréciable qu’ils montrent une configuration de connexion avec un exemple de déploiement, comme pour NATS. C’est un excellent projet, avec de vrais guides et pas seulement des promesses

    • Vraiment génial. C’est toujours bien d’avoir plus de choix. En revanche, en lisant la documentation, je ne sais pas trop s’il existe une application de bureau
      On dirait que oui d’après les captures d’écran, mais je n’ai pas trouvé de documentation expliquant où la télécharger
    • Je me demande si on peut l’installer sur des plateformes simples et peu chères, voire quasi gratuites, comme Cloudflare ou Vercel
  • Je connais Hendrik depuis quelques années, et c’est l’un des développeurs les plus talentueux que j’aie rencontrés. Je suis convaincu que ce projet va réussir très vite
    Le projet lui-même est intéressant, mais je suis surtout impressionné par le fait qu’il l’ait développé seul en s’appuyant sur le codage agentique

    • Je le connais personnellement depuis presque 30 ans, et il reste l’une des personnes les plus intelligentes, expérimentées et curieuses que j’aie rencontrées parmi les développeurs
      C’est globalement quelqu’un de bien, et je retravaillerais volontiers avec lui n’importe quand
    • Je me demande s’il a créé d’autres choses intéressantes
    • J’étais brièvement intéressé, mais c’est justement ce commentaire qui m’a plutôt convaincu de passer mon chemin
  • S’ils envisagent de le vendre à des entreprises, ils devraient réfléchir au point « détruire les clés propres à l’utilisateur quand celui-ci supprime son compte ». Les messages professionnels n’appartiennent pas à l’utilisateur individuel, mais à l’employeur, donc il faut une suppression logique

    • Dans ce cas, il suffirait sans doute d’empêcher les utilisateurs de supprimer eux-mêmes leur compte. Malgré tout, pour la plupart des utilisateurs et fournisseurs de Chatto, une approche respectant automatiquement le droit à l’effacement semble préférable
    • Il se peut que les employeurs ne soient pas la cible principale
  • En portugais, « chato » veut dire « ennuyeux », ça m’a fait rire. Mais à part ça, ça a l’air très facile à configurer et à utiliser
    Vive les logiciels ennuyeux

    • Ça peut aussi vouloir dire « agaçant ». Avant de choisir le nom d’un projet ou d’une entreprise, il vaut toujours mieux vérifier au moins dans les 10 langues les plus parlées par les utilisateurs s’il y a une connotation négative
      En portugais/espagnol, ce sont assez souvent des termes d’argot NSFW
  • Très sympa. En revanche, rien sur le site ne permet de savoir s’il y a une prise en charge mobile
    Pour faire migrer une entreprise ou même des amis, le support mobile est indispensable

    • Ça semble être prévu dans la roadmap
      https://github.com/orgs/chattocorp/projects/1?pane=issue&ite...
    • Il faut garder à l’esprit que pour envoyer des notifications à une app iOS, c’est l’éditeur de l’application qui doit les envoyer. Cela implique d’exploiter un service proxy de relais d’événements
      Il me semble que Mattermost, Element/Matrix, et peut-être certains ou tous les clients ActivityPub fonctionnent comme ça. Sinon, si auto-héberger le serveur signifie aussi devoir distribuer l’app cliente soi-même, il faut alors passer par l’App Store et assumer les coûts du programme développeur Apple
  • Je vais continuer à suivre ça. J’utilise actuellement Mattermost, mais sa grille tarifaire est assez irrégulière et très orientée entreprise, donc pour l’instant je continue avec la version open source, très limitée en fonctionnalités
    Et en plus, l’absence d’appels vidéo me manquait, donc c’est bien que Chatto propose cette fonction

  • Je me demande pourquoi ils ont choisi une double licence. Le backend Go est sous AGPL, mais le frontend TypeScript semble être sous Apache 2.0
    Je me demande pourquoi ils n’ont pas tout mis sous AGPL

    • Mettre le backend sous AGPL permet d’empêcher quelqu’un de l’héberger comme service. L’AGPL considère l’hébergement comme une forme de distribution, donc toute personne qui l’héberge doit publier son code
      Cela donne une forme légère d’exclusivité pour opérer leur propre offre cloud. En revanche, pour le frontend, une licence plus permissive a davantage de sens si l’on veut autoriser la personnalisation, le white-label, etc.
      Grafana est un bon exemple. En 2021, ils sont passés d’Apache à AGPLv3 pour empêcher les fournisseurs cloud d’héberger des versions modifiées sans contribuer, tout en conservant les plugins sous licence Apache
    • L’AGPL empêche les autres d’exploiter un service cloud concurrent en utilisant le backend Go. Pour le frontend, ça n’aurait presque aucun effet, à part effrayer les utilisateurs enterprise
  • Ce serait vraiment bien de pouvoir générer, après l’auto-hébergement, un paquet ou un lien qui gère le téléchargement, l’installation et même la préconfiguration de la connexion. Quelque chose comme un installeur personnalisé ou un script de configuration lié à une personne précise
    L’objectif est de réduire au maximum la friction d’onboarding. Il peut y avoir des implications de sécurité si le lien est partagé par erreur, mais pour une petite instance auto-hébergée, ça semble relativement facile à atténuer. On pourrait aussi limiter cela aux comptes locaux
    Ce serait alors beaucoup plus simple d’envoyer à un ami un lien du type « viens discuter avec moi ici », sans avoir à se soucier d’une réponse du genre « j’utilise déjà Discord, je n’ai pas envie de configurer tout ça »

    • Je me demande ce qui est attendu au-delà de « je te donne le lien de l’instance, tu t’inscris là ». Combiné à des rôles à la Discord, on pourrait limiter la visibilité des canaux et les permissions selon les rôles
      Même si quelqu’un d’autre s’inscrit, il suffit par exemple de ne pas lui attribuer le rôle « groupe interne ». Est-ce que tu penses à quelque chose comme un lien d’invitation avec un jeton à usage unique ?
  • Très bien. J’ai déjà eu une idée similaire : beaucoup d’entreprises veulent quelque chose pour centraliser les notifications et exécuter des actions de bot simples, sans pour autant être liées à un fournisseur de chat en particulier
    Ce serait vraiment intéressant si ça pouvait servir de frontend pour diverses intégrations, ou simplement pour du chat interne

  • J’aimerais savoir quels sont les avantages et les inconvénients de Chatto par rapport à Mattermost
    Et au passage, je suis très heureux que le backend de Chatto soit implémenté en Go. Go est particulièrement adapté à ce type d’usage