Sortie publique de seelf !
Vous avez des projets à héberger sur votre infrastructure mais vous ne voulez pas vous embêter avec un Kubernetes trop lourd ? seelf pourrait être fait pour vous !
C’est avec une immense fierté que je ravive un brin ce blog pour vous annoncer la sortie publique de mon petit projet du moment : seelf !
J’ai profité d’un petit moment de creux dans mon activité pour me mettre à fond sur ce petit projet qui me tenait à cœur depuis quelques temps déjà.
Qu’est ce que seelf ?
seelf est donc une plateforme de déploiement ultra légère qui vous permet de mettre en ligne vos applications sur votre propre infrastructure, a.k.a self-hosting.
Le constat de base qui m’a poussé à réaliser seelf est au final assez simple et vous allez sûrement vous reconnaître là dedans.
Admettons que je crée une application. En général j’aurais plusieurs services qui gravitent autour : une base de données, un redis pour le cache des sessions, des workers, et que sais-je encore.
Pour faciliter les développements, il n’est pas rare de mettre en place un fichier compose qui sert à lancer l’application et ses services en un éclair.
Seulement maintenant, admettons que je souhaite mettre en ligne cette application sur mon propre serveur, pour par exemple déployer une version de recette facilement accessible. Je pourrais utiliser Kubernetes mais déjà faut-il le mettre en place. Je pourrais aussi partir sur Coolify, Caprover ou Dokku mais ces solutions visent surtout le déploiement d’une application et ensuite la configuration de plugins pour les services associés : bref, trop complexe encore.
Et si je pouvais tout simplement réutiliser mon fichier compose ?
C’est exactement ce que fait seelf ! Vous envoyez votre fichier compose tel quel et seelf se charge du reste. Dans la majorité des cas, aucune modification ne sera nécessaire.
Comment ça fonctionne ?
Et bien c’est au final assez simple là aussi. Vous installez seelf sur votre propre infrastructure, vous définissez une application dont le nom sera le sous-domaine sur lequel votre application sera déployée et vous demandez un déploiement à seelf.
Plusieurs modes de déploiement sont à votre disposition :
- Directement avec un fichier compose qui tire ses services depuis un registre
- Depuis une archive
.tar.gz
comprenant les sources de votre application et un fichier compose - Depuis une branche et un commit spécifique (optionnel) d’un dépôt Git
Une fois le déploiement demandé, seelf ira lire le fichier compose et déploiera les différents services en exposant ceux qui doivent l’être sur les bonnes urls.
Pour savoir si un service doit être accessible de l’extérieur, seelf regardera si des mappings de ports sont présents. S’il y’en a, une url sera attribuée au service et un certificat SSL généré automatiquement si le domaine de destination configuré sur l’instance seelf commence par https://
.
Si votre application est composée de plusieurs services devant être exposés, seelf se chargera d’exposer le premier par ordre alphabétique sur le sous-domaine principal de votre application (c’est à dire http://<nom de l'application>.<domaine seelf>
) et les suivants sur des sous-domaine du sous-domaine principal (c’est à dire http://<nom du service>.<nom de l'application>.<domaine seelf>
)
Et voilà !
Est-ce que je peux utiliser seelf pour du déploiement continu ?
Rien de plus simple ! Depuis la page de nouveau déploiement, vous pouvez récupérer la requête cURL permettant de déclencher un déploiement. Il vous suffit ensuite de mettre cette commande dans votre pipeline et tadaaaaa, vous déployez automatiquement votre application !
C’est tout pour ce petit article de présentation. N’hésitez pas à partager vos retours ou le projet si ça vous intéresse ! La roadmap est déjà bien remplie et la documentation reste à votre disposition !