Déployer depuis GitHub sur votre propre serveur
Zelie est un hébergement d'applications auto-hébergé. Connectez GitHub une fois, et chaque push compile votre application, lance ses tests et la met en ligne sur votre propre serveur Linux, avec un domaine, HTTPS et les cinq dernières versions prêtes pour un retour arrière. Il s'installe en une commande et n'a pas besoin de Docker.


Ce qui se passe à chaque push
- 1Build. Le code est compilé dans un conteneur temporaire. Un dépôt qui contient un Dockerfile est compilé avec celui-ci. Sinon, Railpack détermine le build pour Node, Python, Go, les sites statiques et d'autres, et Zelie affiche les commandes de build et de démarrage choisies.
- 2Tests. Les tests du projet tournent dans la nouvelle image, dans leur propre conteneur, pendant dix minutes au plus. Pour les projets Node, Zelie trouve lui-même le script de test ; n'importe quelle autre commande peut être définie. Un test qui échoue garde l'ancienne version.
- 3Contrôle de santé. La nouvelle version démarre à côté de l'ancienne. Une application avec un domaine doit répondre sur son chemin de santé dans la minute.
- 4En ligne. Le trafic bascule. Le commit sur GitHub est marqué en cours de build, en ligne ou en échec.
Si une étape échoue, l'ancienne version continue de répondre et le journal indique pourquoi. Les images des cinq dernières versions mises en ligne sont conservées : un retour arrière prend une seconde ou deux.
Une GitHub App dans votre propre compte
Connecter GitHub crée une GitHub App dans votre propre compte ou organisation, avec accès uniquement aux dépôts que vous choisissez. Les dépôts privés fonctionnent. L'App peut lire le code et définir le statut des commits, rien d'autre, et sa clé privée est chiffrée avant d'être stockée.
- Chaque push sur la branche de l'application la déploie, si vous laissez cette option activée.
- Un push ne déploie que les applications réglées sur ce dépôt et cette branche : une seule GitHub App sert donc plusieurs applications sans qu'elles se gênent.
- Chaque webhook est vérifié avec son secret avant toute autre chose, et une livraison reçue deux fois n'est traitée qu'une fois.
- Les dépôts publics se déploient sans l'App, quand vous lancez le déploiement vous-même.
Des images et de simples fichiers aussi
- Une image de conteneur
- N'importe quelle image publique, comme
nginx:1.27, avec son propre domaine et HTTPS. Zelie consulte le registre une fois par jour et propose la nouvelle image quand le tag a changé. - Vos propres fichiers
- Choisissez Node.js, Python, Bun, Deno ou Java et envoyez les fichiers, ou transférez-les par SFTP. Cela convient à un bot Discord ou à un petit site. Il n'y a pas d'étape de build : les fichiers sont l'application.
Ce que reçoit chaque application
- Un domaine et HTTPS
- Installé avec un domaine, Zelie obtient ses certificats auprès de Let's Encrypt. Derrière un Cloudflare Tunnel, Cloudflare gère HTTPS et aucun port n'est ouvert sur le serveur.
- Variables et secrets
- Des variables simples et secrètes, ou un fichier
.enventier collé d'un coup. Un secret est scellé dès son enregistrement, et les builds reçoivent les variables en tant que secrets BuildKit, qui restent hors de l'image. - Des bases de données à côté
- PostgreSQL, MariaDB ou Redis en un clic. En lier une donne à l'application
DATABASE_URLouREDIS_URL, et rien d'autre ne peut l'atteindre. - Journaux et métriques en direct
- Les journaux de build, de déploiement et de l'application, en temps réel. Requêtes, erreurs serveur, mémoire, CPU et trafic, une mesure par minute, conservées une journée.
- Plantages gérés
- Une application qui s'arrête d'elle-même redémarre, avec une attente plus longue après chaque plantage. Après cinq plantages en dix minutes, elle reste arrêtée et le panel dit pourquoi.
- Son propre conteneur
- Son propre réseau et son propre espace de noms utilisateur, avec des limites de mémoire et de CPU. Root dans le conteneur n'est personne sur le serveur.
Sur votre propre serveur
Zelie est un seul binaire, un téléchargement d'environ 50 Mo, avec son propre containerd et son état dans SQLite. Ses processus restent sous 66 Mo de mémoire au repos : un petit VPS garde de la place pour les applications. Il tourne sur Debian ou Ubuntu, en amd64 ou arm64, et le même panel peut faire tourner des serveurs de jeu à côté de vos applications. Ce qui le distingue de Coolify se trouve dans la comparaison.
Déployer à chaque push suppose que GitHub puisse joindre le panel, ce qui est possible avec un domaine ou un Cloudflare Tunnel. Chaque application correspond à une image, un Dockerfile ou un dossier de fichiers ; les fichiers Docker Compose ne sont pas lus.
Questions
Zelie peut-il déployer des dépôts GitHub privés ?
Oui. Zelie crée une GitHub App dans votre propre compte ou organisation, avec accès uniquement aux dépôts que vous choisissez, et les dépôts privés passent par elle.
Faut-il un Dockerfile ?
Non. Avec un Dockerfile, Zelie compile avec celui-ci. Sans, Railpack détermine le build pour Node, Python, Go, les sites statiques et d'autres, et vous pouvez remplacer les commandes de build et de démarrage choisies.
Et si un déploiement casse l'application ?
Une nouvelle version ne reçoit du trafic qu'une fois compilée, ses tests passés et son contrôle de santé réussi. Si elle échoue, l'ancienne version continue de répondre. Chacune des cinq dernières versions mises en ligne peut être rétablie en un clic.
Faut-il Docker sur le serveur ?
Non. Zelie apporte son propre containerd et compile avec BuildKit dans un conteneur Zelie ordinaire. Si Docker est déjà sur la machine, Zelie n'y touche pas.
Comment obtenir Zelie ?
Free est ouvert à tous : créez un compte et installez Zelie sur votre propre serveur. Installer Zelie montre les étapes. Pro, lui aussi pour votre propre serveur, et Business, pour ceux qui vendent de l'hébergement, suivront ; ni l'un ni l'autre n'est encore en vente.
Installer Zelie
Zelie est en début de développement, et Free est ouvert à tous : créez un compte et installez-le sur votre propre serveur. Pro et Business suivront : Pro lui aussi pour votre propre serveur, Business pour ceux qui vendent de l'hébergement.