À propos du projet

Shelter est un outil d'infrastructure de déploiement open source qui transforme un VPS unique en plateforme de déploiement complète. Il s'adresse aux développeurs et aux opérateurs qui souhaitent la commodité des plateformes d'hébergement gérées tout en conservant la pleine propriété de leur infrastructure, de leurs données et de leurs identifiants. **Sources de déploiement :** Shelter prend en charge plusieurs sources de déploiement, notamment les dépôts GitHub (via une application GitHub à portée minimale avec option push-to-deploy), les URLs Git HTTPS publiques, les téléversements de fichiers ZIP et les téléversements de dossiers locaux. Les téléversements de sources sont fragmentés, validés et versionnés. **Construction et activation :** La plateforme construit des images conteneur à partir du code source, effectue des contrôles de santé des candidats sur un réseau isolé par projet, et ne bascule le trafic de production qu'après vérification. Les constructions utilisent un builder Docker BuildKit dédié avec des limites de ressources configurables pour la mémoire, le swap, le CPU, les PID et le parallélisme maximal. **Routage et mise en réseau :** Les domaines et le panneau d'administration sont publiés via un tunnel Cloudflare géré, éliminant le besoin de ports hôtes publics. Traefik gère le routage HTTP avec des réseaux bridge par projet, garantissant l'isolation des projets. Le TLS se termine à la périphérie Cloudflare (Cloudflare Edge). **Intégration Cloudflare :** Intégration profonde avec Cloudflare pour l'authentification OAuth, la gestion des tunnels, le DNS, la gestion des zones, la vérification de disponibilité des noms d'hôte et la prise en charge multi-domaines par projet. Prend en charge les flux par jeton API et par OAuth. **Fonctionnalités opérateur :** Tableau de bord avec journaux de déploiement, retours en arrière, CRUD de projets, variables d'environnement chiffrées, limites de ressources, journaux d'exécution en direct et observabilité par projet. Aperçus de captures d'écran automatiques pour les déploiements de sites Web réussis. **Automatisation :** Jetons d'accès personnels à portée limitée et à expiration, API HTTP documentée avec spécification OpenAPI, et outil CLI installable pour un contrôle programmatique. **Sécurité :** L'architecture sépare l'API (sans socket Docker) du worker (accès au socket Docker), utilise des secrets chiffrés, des conteneurs de contrôle de santé jetables avec des capacités supprimées, et un modèle de menace qui reconnaît qu'il est conçu pour du code d'application de confiance plutôt que pour des scénarios multi-locataires hostiles. **Installation :** Script d'amorçage pour VPS Ubuntu 24.04/26.04 LTS avec installation automatique des dépendances, prise en charge du provisionnement non interactif, et une commande doctor pour les contrôles de santé. Le panneau reste lié à 127.0.0.1 pour l'amorçage et l'accès d'urgence via SSH. Le projet est sous licence AGPL-3.0-only et est actuellement au statut MVP. Il est construit avec TypeScript, Node.js 24+, Docker Compose v2 et Cloudflare Tunnel.