Testeur de conformité
Vérifié avec la suite sur compliance.conversations.im, rapport complet là-bas.
XMPP open source
Serveur XMPP en Go, build v0.1.9. Testé avec la suite de conformité sur compliance.conversations.im. Apache 2.0. Pour les équipes qui veulent la fédération, des clients mobiles et le contrôle opérationnel sans adopter une stack d'exécution exotique.
Confiance
Zerta est un fork dur de Jackal et se poursuit comme projet indépendant sous Apache 2.0. Cette page ne conserve que des affirmations étayées par le dépôt.
Vérifié avec la suite sur compliance.conversations.im, rapport complet là-bas.
Une licence open source permissive avant que le premier prototype ne devienne une réunion de licences.
Builds, débogage et déploiement s'intègrent aux outillages SRE et Go habituels.
SASL2, Bind2 et FAST pour une authentification client à jour.
Pourquoi Zerta
Zerta ne rivalise pas sur des promesses d'ancienneté ou d'échelle. L'avantage est une technologie maîtrisable : Go, une licence claire, une supervision familière et des backends d'infrastructure au choix.
Une base de code que vous pouvez builder, inspecter et déboguer avec l'outillage Go standard.
Adapté aux extensions, à l'exploitation SaaS et à l'intégration produit, sans incertitude copyleft précoce.
Pas d'îlot de tableau de bord maison. Métriques et profils alimentent la stack déjà utilisée par les équipes d'exploitation.
Redis, PostgreSQL, NATS, Raft ou etcd : l'architecture suit votre infrastructure, pas l'inverse.
Fonctionnalités
La liste des fonctionnalités est volontairement technique. Pas de logos clients, pas de chiffres d'échelle, pas de promesses de performance sans mesure.
SASL2, Bind2, FAST, Channel Binding, OMEMO, listes de confidentialité, Guardian et anti-spam.
MAM, Message Carbons, Stream Management, CSI, messages hors ligne et roster.
Multi-User Chat, salons persistants, modération, MUC RTBL, HTTP Upload, TURN/STUN et push.
PostgreSQL, MySQL, BoltDB, cache Redis, Admin API, zertactl, Prometheus, health checks et pprof.
Démarrage rapide
Le chemin standard est simple : cloner le dépôt, installer le binaire, configurer le YAML, démarrer le serveur. Docker et Helm sont également disponibles dans le projet.
git clone https://git.uuxo.net/UUXO/zerta.git
cd zerta
make install installctl
zerta --config=config.yaml
# Créer un utilisateur
zertactl user add username:password
# Docker
docker-compose -f dockerfiles/docker-compose.yml up
Documentation
Une structure de documentation hébergée est la prochaine étape. Pour l'instant, les chemins les plus importants mènent directement au dépôt.
Build, systemd, nginx, TLS, supervision, sécurité et clustering dans le guide admin.
Référence YAML complète pour listeners, stockage, auth, TLS, modules et clustering.
Chemin documenté vers la XMPP 2024 Compliance Suite avec le jeu de modules activés.
FAQ
Des réponses courtes, chacune étayée par le dépôt. Là où la documentation manque encore, cette page le dit.
MySQL 8+ ou PostgreSQL 12+ comme base de données, un certificat TLS valide (p. ex. Let's Encrypt) et nginx en frontal pour la terminaison TLS, WebSocket et BOSH. HTTP Upload (XEP-0363) et TURN/STUN (RFC 5766, XEP-0215) sont intégrés. La liste complète, avec la chaîne d'outils de build, est dans le guide admin sous « Requirements ».
HTTP Upload : module XEP-0363 intégré. Pour HMAC, la déduplication ou votre propre backend de stockage, éventuellement hmac-file-server.
Oui. BoltDB est embarqué et ne nécessite aucun serveur de base de données — mais uniquement pour un nœud unique, sans réplication ni clustering. Pour la production, MySQL ou PostgreSQL sont les backends prévus. Zerta crée son schéma au démarrage, aucun import manuel n'est nécessaire.
Le clustering passe par un magasin KV partagé (cluster.type: kv). Cinq backends sont implémentés dans le code : Redis, PostgreSQL, NATS, Raft et etcd. Le guide admin en documente actuellement quatre en détail — etcd existe mais n'est pas encore documenté. BoltDB ne supporte pas le clustering.
Le serveur HTTP intégré expose des métriques Prometheus sur /metrics (OpenMetrics activé) et le profilage Go sur /debug/pprof/. Un tableau de bord Grafana est fourni dans le dépôt sous monitoring/. Les métriques de stockage s'activent via storage.repository.type: measured. Une section de documentation dédiée à la supervision n'a pas encore été publiée.
Guardian limite les échecs de connexion par listener C2S (max_auth_failures), bannit les adresses pour une durée configurable (ban_duration) et limite le débit des nouvelles connexions (connect_rate_limit). Pour les messages, il y a le module antispam avec une limite de débit par utilisateur, plus muc_rtbl pour des listes de blocage en temps réel dans les salons.
Non. Ces guides opérateur sont prévus mais non publiés. Ce qui est documenté aujourd'hui : Zerta exécute automatiquement les migrations de schéma au démarrage. La sauvegarde et la restauration reposent actuellement sur l'outillage de la base de données utilisée, plus la configuration et le répertoire d'upload. Quiconque exploite Zerta en production doit définir et tester cette procédure lui-même pour l'instant.
Testé avec la suite sur compliance.conversations.im, dernière exécution le 2026-04-15 sur 0ea1.net avec le même résultat que uuxo.net. Actuellement en build v0.1.9 sur uuxo.net. Le rapport complet est sur compliance.conversations.im, pas de catalogue XEP ici.
SASL2 (XEP-0388) associé à Bind2 (XEP-0386) gère la connexion et le bind de ressource en un seul aller-retour, ce qui réduit le nombre d'allers-retours lors de l'établissement d'une connexion. FAST (XEP-0484) ajoute l'authentification par jeton, complétée par le channel binding (XEP-0440) et la mise à niveau du hash SCRAM (XEP-0480).
Les jetons FAST sont émis en HT-SHA-256-NONE et ne sont donc pas liés au canal. Traitez-les comme un identifiant d'accès complet.
Il n'existe pas de guide de migration pour les serveurs tiers — c'est prévu mais non publié. Zerta fournit son propre schéma de base de données et le crée au démarrage ; l'import de bases ejabberd ou Prosody existantes n'est pas couvert. Le chemin réaliste aujourd'hui est une installation neuve avec transfert de vos utilisateurs et données.
Zerta est un fork d'ortuman/jackal, développé comme projet indépendant sous Apache 2.0. Axes actuels : conformité XMPP 2024, authentification moderne (SASL2/Bind2/FAST), clustering via des backends KV, plus Guardian et anti-spam.
Le fichier de config, les binaires et le préfixe d'environnement sont propres à Zerta (zerta.yml, ZERTA_*). Une configuration Jackal ne peut donc pas être reprise telle quelle.
Dépôt
Serveur, docs, exemples de config, fichiers Docker et scripts Helm résident sur git.uuxo.net. L'hébergement managé se trouve séparément sur uuxo.net.