Sobre el proyecto

QPub Server es un servidor de mensajería autoalojable que combina canales pub/sub en tiempo real con colas de trabajos, expuestos a través de interfaces REST y WebSocket. Está pensado para equipos que quieren ejecutar su propia infraestructura de mensajería en lugar de depender de un servicio alojado. Capacidades principales - Canales: mensajería de publicación/suscripción entregada por WebSocket, con publicación disponible a través de REST. - Colas de trabajos: encolar y extraer elementos de trabajo, ejecutar workers y recibir webhooks. - Multiinquilino: los inquilinos están aislados entre sí y se les pueden aplicar límites de tasa. - Autenticación: las claves de API y los tokens de cliente protegen el acceso; un token de control separado protege la API de aprovisionamiento. - API de control: gestionar inquilinos, claves de API, límites, colas y workers, e inspeccionar estadísticas y conexiones en tiempo real. Servicios de respaldo El servidor se apoya en NATS JetStream, Redis y Postgres, con CockroachDB admitido como base de datos alternativa mediante una configuración de controlador. Primeros pasos El README sugiere copiar el archivo de entorno de ejemplo y ejecutar Docker Compose, que levanta Postgres junto con Redis y NATS. Los puertos predeterminados son 8091 para la API de control, 8111 para REST y 8131 para WebSocket. Se debe crear un inquilino y una clave de API a través de la API de control antes de poder realizar llamadas REST o WebSocket. También se documenta una ruta de compilación local usando herramientas de Go, que requiere que los mismos servicios de respaldo sean accesibles a través de la configuración de entorno. La API de control se autentica con un token de portador o un encabezado personalizado; si el token se deja vacío, la API de control queda abierta, lo que el README señala que es solo para desarrollo local. Los endpoints documentados cubren comprobaciones de estado, identidad y métricas de la instancia, creación, listado, obtención y eliminación de inquilinos, estadísticas por inquilino, conexiones, canales, límites de tasa, claves de API, colas y workers. El proyecto está licenciado bajo la Apache License 2.0.