Auto-hébergement

Gangway apporte des URLs de prévisualisation éphémères aux environnements Docker auto-hébergés

Le nouvel outil open source Gangway génère des URLs HTTPS publiques pour les applications conteneurisées sur votre propre domaine, prenant en charge les pull requests et les agents IA sans Kubernetes.

Rack de serveur connecté à des cartes de prévisualisation flottantes
Illustration créée pour cet article

Traduit automatiquement depuis l’original en anglais.

Charles Barnes a publié gangway, un outil open source qui attribue des URLs HTTPS publiques aux applications conteneurisées fonctionnant sur une infrastructure auto-hébergée. Publié sur GitHub fin septembre 2026, le projet s'adresse aux développeurs qui souhaitent la commodité des plateformes de prévisualisation hébergées tout en préférant garder leurs charges de travail sur leur propre matériel. Il prend en charge le déploiement via les pull requests, les agents IA ou les téléversements manuels, créant des environnements temporaires qui expirent automatiquement.

Ce qui s'est passé

Gangway agit comme un processus unique sur un hôte Docker standard, éliminant le besoin de systèmes d'orchestration complexes tels que Kubernetes. Lorsqu'un développeur ouvre une pull request, qu'un agent IA déclenche un déploiement ou qu'un utilisateur téléverse des fichiers via l'interface web, l'outil lance une pile Docker Compose. Il attribue ensuite un sous-domaine unique sous un domaine wildcard configuré, tel que shop-pr-142.preview.example.com. Cette URL devient immédiatement accessible au public, permettant aux parties prenantes de revoir les modifications front-end, de tester les builds ou de visualiser les artefacts générés sans accéder aux réseaux internes.

Le système gère l'ensemble du cycle de vie de ces prévisualisations. Il assure la provision des certificats SSL via Let’s Encrypt avec des défis DNS-01, garantissant que chaque prévisualisation est servie en HTTPS sans atteindre les limites de débit associées aux certificats par prévisualisation. Les prévisualisations sont conçues pour être éphémères ; elles se mettent en veille après des périodes d'inactivité pour économiser les ressources et sont entièrement supprimées lorsque la pull request associée est fermée ou que leur durée de vie (TTL) expire. L'outil prend également en charge directement les sites statiques et les artefacts, les servant sans nécessiter de conteneur, ce qui permet des temps de déploiement à l'échelle de la milliseconde pour des documents simples ou des tableaux de bord.

Détails clés

  • Méthodes de déploiement : Prend en charge trois points d'entrée : les pull requests GitHub avec liens dans les commentaires persistants, les agents IA via le Model Context Protocol (MCP), et les téléversements manuels via l'interface utilisateur ou l'API REST.
  • Exigences d'infrastructure : Fonctionne sur un hôte Docker simple avec Compose ; aucun Kubernetes n'est requis. Nécessite un serveur avec une IP publique et un domaine avec des enregistrements DNS wildcard.
  • Gestion des certificats : Utilise un seul certificat wildcard pour toutes les prévisualisations afin d'éviter les limites de débit de Let's Encrypt, ou s'intègre avec des reverse proxies comme Caddy pour le TLS à la demande.
  • Isolation des ressources : Applique des politiques de sécurité en supprimant les capacités Linux, en limitant la mémoire et les processus, et en refusant les modes privilégiés ou l'accès au réseau hôte pour les conteneurs de prévisualisation.
  • Support de base de données : Provisionne automatiquement des instances jetables Postgres, MySQL ou Redis pour les prévisualisations, injectant les chaînes de connexion comme variables d'environnement et les supprimant lors de la destruction.
  • Contrôle d'accès : Offre plusieurs niveaux de visibilité, y compris public, non listé, protégé par mot de passe ou restreint aux utilisateurs authentifiés, avec des permissions granulaires pour les jetons API et les clients OAuth.

Contexte

Les environnements de prévisualisation éphémères sont une fonctionnalité standard des plateformes d'hébergement managées telles que Vercel ou Netlify. Ils permettent aux équipes de partager des versions fonctionnelles d'une application pour chaque modification de code. Cependant, ces services verrouillent souvent les utilisateurs dans des frameworks spécifiques, facturent selon l'utilisation et stockent les données sur des serveurs tiers. Pour les organisations qui s'auto-hébergent pour des raisons de conformité, de coût ou de préférence technique, reproduire ce flux de travail nécessite traditionnellement un effort DevOps important. La configuration de DNS dynamiques, la gestion des certificats SSL pour des centaines de sous-domaines temporaires et l'orchestration des cycles de vie des conteneurs exigent généralement un cluster Kubernetes ou des scripts personnalisés complexes.

Gangway simplifie cela en tirant parti des capacités existantes de Docker Compose et d'une architecture proxy légère. Il utilise SQLite comme base de données d'état, suivant quel conteneur correspond à quelle URL. En dispatchant les requêtes en fonction de l'en-tête HTTP Host, il route le trafic vers le conteneur correct sans avoir besoin d'une mesh de service lourde. Cette approche rend feasible pour les petites équipes ou les développeurs individuels de faire tourner une plateforme « preview-as-a-service » sur une seule machine virtuelle ou un serveur bare-metal.

Pourquoi c'est important

Pour les équipes exécutant leur propre logiciel, gangway réduit la friction entre développement et revue. Au lieu de demander aux collègues de tirer les branches localement ou de déployer sur un serveur de staging partagé où les modifications pourraient entrer en conflit, les développeurs peuvent partager une URL unique et isolée. Cela est particulièrement précieux pour le travail front-end, où le retour visuel est critique, ou pour les artefacts générés par IA comme les graphiques et les documents qui nécessitent un partage immédiat. La capacité de lancer des stacks complètes avec bases de données signifie que les modifications back-end peuvent également être revues dans leur contexte, reflétant le comportement de production plus fidèlement que les prévisualisations statiques.

L'intégration avec les agents IA via MCP répond à un modèle de flux de travail croissant. Alors que les développeurs utilisent des outils comme Claude Code ou Cursor pour générer du code et des artefacts, gangway fournit une destination native pour ces sorties. Un agent peut déployer un tableau de bord ou un prototype généré et renvoyer instantanément une URL active. Cela comble le fossé entre l'assistance IA locale et la revue collaborative, garantissant que le travail généré par IA est facilement accessible aux membres humains de l'équipe sans étapes de téléversement manuel ou de services de partage de fichiers temporaires.

La sécurité et la gestion des ressources sont également traitées de manière pratique. En appliquant des limites strictes aux conteneurs et en isolant les prévisualisations du système hôte, l'outil atténue les risques associés à l'exécution de code non fiable ou de contributions externes. Le nettoyage automatique des prévisualisations inactives empêche les fuites de ressources, un problème courant lorsque les équipes gèrent manuellement des environnements temporaires. Cette automatisation permet aux responsables IT de fournir des fonctionnalités conviviales pour les développeurs sans augmenter la charge opérationnelle des administrateurs système.

Ce que vous pouvez faire

  • Tester localement : Installez gangway sur un ordinateur portable en utilisant le flag --local pour créer des prévisualisations sur preview.localhost sans avoir besoin d'un domaine public ou d'une configuration DNS.
  • Configurer le DNS : Mettez en place un enregistrement DNS wildcard (par exemple, *.preview.example.com) pointant vers l'adresse IP de votre serveur pour activer les prévisualisations accessibles publiquement.
  • Intégrer avec GitHub : Utilisez le flux de création d'application GitHub en un clic pour connecter les dépôts, activant les déploiements de prévisualisation automatiques pour chaque pull request.
  • Connecter les agents IA : Suivez les instructions de configuration fournies pour Claude Code, Cursor ou VS Code pour permettre aux outils IA de déployer des artefacts directement sur votre instance gangway.
  • Sécuriser l'accès : Consultez la documentation de sécurité pour configurer les restrictions réseau, mettre en place une protection par mot de passe pour les prévisualisations sensibles et gérer les permissions des jetons API.
  • Surveiller les ressources : Ajustez les limites de mémoire et de CPU dans les variables d'environnement pour garantir que les prévisualisations ne consomment pas de ressources excessives sur votre serveur hôte.

Autres actualités

Toutes les actualités