À propos du projet

Levelrail est une plateforme de déploiement auto-hébergée écrite en Go. Son choix de conception distinctif, tel que décrit dans le README, est qu'un petit agent s'exécute sur chaque nœud et communique directement avec l'API Docker Engine locale, plutôt que le plan de contrôle qui se connecte par SSH aux serveurs et invoque des commandes docker. Dirigée vers une ou plusieurs machines Linux, elle est conçue pour agir comme un cloud privé : pousser vers un dépôt git et obtenir une application fonctionnelle avec TLS, logs, métriques et rollback. Les fonctionnalités de déploiement principales décrites incluent : des déploiements sans interruption utilisant les stratégies rolling, recreate ou blue-green, conditionnés par les sondes de readiness et liveness, avec rollback vers des images précédentes épinglées maintenues disponibles. L'observabilité est intégrée au cœur plutôt qu'installée séparément, couvrant les métriques locales au nœud avec une résolution de 15 secondes et la recherche plein texte des logs, avec des marqueurs de déploiement superposés aux graphiques de métriques pour relier un changement à son effet. La gestion des bases de données couvre huit moteurs via un seul registre : Postgres, Redis, MySQL, MongoDB, MariaDB, KeyDB, Dragonfly et ClickHouse, avec des sauvegardes programmées, une restauration et une vérification automatique post-sauvegarde appliquées à tous. La prise en charge multi-nœuds inclut un maillage WireGuard, un DNS interne entre nœuds, le cordon et le drain, et aucune exigence de ports entrants sur les serveurs gérés. L'intégration git couvre les webhooks GitHub, GitLab et Bitbucket, ainsi que des environnements de prévisualisation par pull-request avec destruction automatique. Le contrôle d'accès est modélisé sur AWS IAM avec des politiques Allow/Deny ciblant une ressource spécifique, accompagnées d'un journal d'audit complet avec export CSV. L'alerting propose des seuils, crashloop, expiration de certificat et d'autres types de règles, délivrés vers une longue liste de destinations incluant Slack, Discord, email, Telegram, Pushover, PagerDuty, Microsoft Teams, Resend, Gotify, Ntfy, Mattermost, Lark, Rocket.Chat, Opsgenie, Webex, Google Chat ou un webhook générique. La même API HTTP qui alimente le tableau de bord alimente également un serveur MCP, permettant aux outils IA de lister des applications, lire des logs et aider au diagnostic de crashloops. Architecture, selon le README : le plan de contrôle est un binaire Go unique qui réconcilie des ressources déclaratives avec l'état Docker observé, un pattern type controller sans le reste de Kubernetes ; l'agent nodal initialise la connexion vers le plan de contrôle et utilise le socket Docker via l'API Engine ; Caddy est intégré comme bibliothèque Go pour le TLS automatique et le routage de domaines ; BuildKit est utilisé comme bibliothèque Go plutôt que docker build ; l'état repose sur du SQLite embarqué en mode WAL via modernc.org/sqlite ; l'API HTTP est versionnée sous /api/v1 ; le frontend est React, Vite, TypeScript, Tailwind et TanStack Router/Query, construit en actifs statiques et intégré dans le binaire du plan de contrôle. Deux binaires sont livrés au total, et en mode mono-nœud le transport de l'agent s'exécute in-process. Les options d'installation documentées sont un script installateur par curl pipé pour Linux qui installe également Docker et une unité systemd, une commande docker run en une ligne utilisant des images publiées pour linux/amd64 et linux/arm64, et la construction depuis les sources avec Go. Le développement local nécessite Go 1.26 ou plus récent et Docker. Le statut est déclaré clairement comme un développement actif prématuré sans version stable ; le projet indique qu'il n'est pas prêt pour des charges de production et que les API, le format du spec applicatif et l'agencement des données sur disque peuvent changer sans préavis. Au-delà du chemin de déploiement, le README liste un moteur de politiques style IAM, la journalisation d'audit, les feature flags, l'alerting et les moteurs de base de données comme déjà opérationnels, et signale un catalogue de 123 templates de services curatélisés. Le README inclut une comparaison détaillée contre Coolify, Dokploy, CapRover, Dokku et Kamal, y compris un écart admis sur la taille du catalogue de templates ; ces affirmations concurrentielles proviennent du positionnement propre au projet tiré de sa documentation comparative. La licence est Apache 2.0.