Sortie de Mercure 0.11 : passage du Hub sur le serveur Web Caddy
Publié le 01 décembre 2020
Retrouvez la version originale (EN) de cet article ici.
Nous sommes ravis de vous annoncer la sortie de la première alpha de la version 0.11 du Hub Mercure.rocks ! Le Hub Mercure.rocks est un logiciel libre implémentant la spécification Mercure, un protocole ouvert pour des communications en temps réel rapides, fiables et économes en énergie.
La version 0.11 est une étape importante pour le projet !
Comme vous devez le savoir, le Hub Mercure.rocks est écrit en Go. Jusqu’à présent, son serveur web intégré était fait maison. Bien que ce serveur ad-hoc faisait ce qu’on lui demandait, il souffrait de certaines limitations : peu de paramètres de configuration, pas de support de HTTP/3, peu d'outils de débogage...
Pour cette version 0.11, nous avons travaillé d’arrache-pied pour fournir un module Go prêt à l’emploi pouvant être utilisé pour ajouter le support du protocole Mercure sur n’importe quel projet écrit en Go.
Ce refactoring nous a également permis de créer un module Mercure pour le serveur web Caddy ! Nous avons aussi migré le hub autonome vers un build de Caddy comprenant le module Mercure.
Utiliser Caddy à la place du serveur web fait maison a permis l’ajout de nouvelles fonctionnalités au Hub Mercure.rocks, et ouvre la voie à un large éventail de nouveaux usages. Par exemple, il est désormais possible d’utiliser le Hub Mercure.rocks comme reverse proxy de production pour votre site web ou votre API, mais un reverse proxy qui ajoute l’URL well-known de Mercure (/.well-known/mercure). L'URL “well-known” de Mercure se trouve alors sur le même domaine que votre site web, et vous n'avez donc plus besoin de gérer le CORS !
Toutes les fonctionnalités fournies par Caddy sont également prises en charge par ce build personnalisé comme le support de HTTP/3 et h2c, la compression avancée, les métriques Prometheus détaillées (avec des métriques supplémentaires spécifiques à Mercure) ou encore un profiler intégré (/debug/pprof/).
Rendez-vous sur le site web de Caddy pour découvrir toutes les fonctionnalités de ce serveur web.
Il est également possible de créer des versions personnalisées de Caddy incluant le module Mercure ainsi que d'autres modules comme celui de Vulcain ou encore le module HTTP Cache de Caddy que nous co-maintenons avec leur équipe. Par conséquent, les projets Symfony Docker et API Platform ont déjà migré vers Caddy avec le module Mercure !
Avant de passer à la version 0.11, assurez-vous de migrer votre configuration vers le nouveau format Caddyfile. Pour faciliter la migration, nous fournissons toujours des binaires et des images Docker contenant l'ancien serveur fait maison. Ces versions legacy sont compatibles avec l'ancien format de configuration et sont préfixées par "legacy-".
Un immense merci à Márk Sági-Kazár, Tamás Szigeti et à toute l’équipe de Caddy pour leurs contributions et leur aide incommensurable !
Testez dès à présent l’alpha de Mercure 0.11 et n’hésitez pas à nous signaler le moindre souci ! Les-Tilleuls.coop reste à votre disposition dans la mise en place de Mercure dans vos projets et peut aussi vous accompagner dans l’apprentissage de ce protocole.