Probador de conformidad
Verificado con la suite en compliance.conversations.im, informe completo allí.
XMPP de código abierto
Servidor XMPP en Go, build v0.1.9. Probado con la suite de conformidad en compliance.conversations.im. Apache 2.0. Para equipos que quieren federación, clientes móviles y control operativo sin adoptar una pila de ejecución exótica.
Confianza
Zerta es un fork duro de Jackal y continúa como proyecto independiente bajo Apache 2.0. Esta página solo mantiene afirmaciones respaldadas por el repositorio.
Verificado con la suite en compliance.conversations.im, informe completo allí.
Una licencia open source permisiva antes de que el primer prototipo se convierta en una reunión de licencias.
Builds, depuración y despliegue encajan con el tooling habitual de SRE y Go.
SASL2, Bind2 y FAST para una autenticación de cliente actualizada.
Por qué Zerta
Zerta no compite con promesas de antigüedad o escala. La ventaja es tecnología controlable: Go, una licencia clara, monitorización familiar y backends de infraestructura a elegir.
Una base de código que puedes compilar, inspeccionar y depurar con el tooling estándar de Go.
Adecuado para extensiones, operación SaaS e integración de producto sin incertidumbre copyleft temprana.
Sin isla de dashboard propia. Métricas y perfiles fluyen hacia la pila que ya usan los equipos de operaciones.
Redis, PostgreSQL, NATS, Raft o etcd: la arquitectura sigue tu infraestructura, no al revés.
Funciones
La lista de funciones es deliberadamente técnica. Sin logos de clientes, sin cifras de escala, sin promesas de rendimiento sin medición.
SASL2, Bind2, FAST, Channel Binding, OMEMO, listas de privacidad, Guardian y anti-spam.
MAM, Message Carbons, Stream Management, CSI, mensajes offline y roster.
Multi-User Chat, salas persistentes, moderación, MUC RTBL, HTTP Upload, TURN/STUN y push.
PostgreSQL, MySQL, BoltDB, caché Redis, Admin API, zertactl, Prometheus, health checks y pprof.
Inicio rápido
El camino estándar es simple: clonar el repositorio, instalar el binario, configurar el YAML, arrancar el servidor. Docker y Helm también están disponibles en el proyecto.
git clone https://git.uuxo.net/UUXO/zerta.git
cd zerta
make install installctl
zerta --config=config.yaml
# Crear un usuario
zertactl user add username:password
# Docker
docker-compose -f dockerfiles/docker-compose.yml up
Documentación
Una estructura de documentación alojada es el siguiente paso. Por ahora, los caminos más importantes llevan directamente al repositorio.
Build, systemd, nginx, TLS, monitorización, seguridad y clustering en la guía de administración.
Referencia YAML completa para listeners, almacenamiento, auth, TLS, módulos y clustering.
Camino documentado hacia la XMPP 2024 Compliance Suite con el conjunto de módulos habilitado.
FAQ
Respuestas cortas, cada una respaldada por el repositorio. Donde falta documentación, esta página lo indica.
MySQL 8+ o PostgreSQL 12+ como base de datos, un certificado TLS válido (p. ej. Let's Encrypt) y nginx delante para la terminación TLS, WebSocket y BOSH. HTTP Upload (XEP-0363) y TURN/STUN (RFC 5766, XEP-0215) están integrados. La lista completa, incluida la cadena de build, está en la guía de administración bajo «Requirements».
HTTP Upload: módulo XEP-0363 integrado. Para HMAC, deduplicación o tu propio backend de almacenamiento, opcionalmente hmac-file-server.
Sí. BoltDB está embebido y no necesita servidor de base de datos — pero solo para un único nodo, sin replicación ni clustering. Para producción, MySQL o PostgreSQL son los backends previstos. Zerta crea su esquema al arrancar, así que no hace falta importar nada manualmente.
El clustering funciona mediante un almacén KV compartido (cluster.type: kv). Hay cinco backends implementados en el código: Redis, PostgreSQL, NATS, Raft y etcd. La guía de administración documenta actualmente cuatro en detalle — etcd existe pero aún no está documentado. BoltDB no soporta clustering.
El servidor HTTP integrado expone métricas Prometheus en /metrics (OpenMetrics habilitado) y perfilado Go en /debug/pprof/. Un dashboard de Grafana viene incluido en el repositorio bajo monitoring/. Las métricas de almacenamiento se habilitan vía storage.repository.type: measured. Aún no se ha publicado una sección de documentación dedicada a monitorización.
Guardian limita los inicios de sesión fallidos por listener C2S (max_auth_failures), bloquea direcciones durante una duración configurable (ban_duration) y limita la tasa de nuevas conexiones (connect_rate_limit). Para mensajes existe el módulo antispam con límite de tasa por usuario, más muc_rtbl para listas de bloqueo en tiempo real en salas.
No. Estas guías de operador están planificadas pero no publicadas. Lo que sí está documentado hoy: Zerta ejecuta migraciones de esquema automáticamente al arrancar. La copia de seguridad y restauración dependen actualmente del tooling de la base de datos que uses, más la configuración y el directorio de subida. Quien ejecute Zerta en producción debe definir y probar ese procedimiento por su cuenta por ahora.
Probado con la suite en compliance.conversations.im, última ejecución el 2026-04-15 en 0ea1.net con el mismo resultado que uuxo.net. Actualmente ejecuta el build v0.1.9 en uuxo.net. El informe completo está en compliance.conversations.im, aquí no hay catálogo de XEP.
SASL2 (XEP-0388) junto con Bind2 (XEP-0386) gestiona el login y el bind de recurso en un solo round trip, lo que reduce el número de round trips al establecer una conexión. FAST (XEP-0484) añade autenticación por token, complementada con channel binding (XEP-0440) y actualización de hash SCRAM (XEP-0480).
Los tokens FAST se emiten como HT-SHA-256-NONE y por tanto no están vinculados al canal. Trátalos como una credencial de acceso completa.
No existe una guía de migración para servidores externos — está planificada pero no publicada. Zerta trae su propio esquema de base de datos y lo crea al arrancar; importar bases de datos existentes de ejabberd o Prosody no está cubierto por eso. El camino realista hoy es una instalación nueva con transferencia manual de tus usuarios y datos.
Zerta es un fork de ortuman/jackal y se desarrolla como proyecto independiente bajo Apache 2.0. Focos actuales: conformidad XMPP 2024, autenticación moderna (SASL2/Bind2/FAST), clustering vía backends KV, además de Guardian y anti-spam.
El archivo de configuración, los binarios y el prefijo de entorno son propios de Zerta (zerta.yml, ZERTA_*). Por tanto, una configuración de Jackal no se puede reutilizar sin revisarla.
Repositorio
Servidor, docs, configs de ejemplo, archivos Docker y scripts Helm viven en git.uuxo.net. El hosting gestionado está por separado en uuxo.net.