La partie la plus difficile du logiciel auto-hébergé est le premier déploiement. Pas parce que la technologie est difficile -- Docker a rendu cela presque trivial -- mais parce que l'interface donne l'impression qu'il faut connaître Docker avant de pouvoir l'utiliser.
Nous voulions quelque chose de différent. Nous voulions l'expérience de Softaculous -- l'installeur en un clic qui est livré avec cPanel depuis plus d'une décennie. Ouvrir une page, voir tout ce qu'on peut déployer, cliquer sur celui qu'on veut, remplir un nom, et c'est parti.
Le 15 mars 2026, nous avons construit cette page. Cent quatre-vingt-trois options de déploiement. Cinq catégories. Sept composants de formulaire spécialisés. Une mise en page en panneau partagé avec le catalogue à gauche et le formulaire de déploiement à droite.
Le catalogue
La fondation est un fichier TypeScript appelé deploy-catalog.ts qui définit chaque option déployable. Les 183 options se décomposent en : Types de source (6), Frameworks (63), Bases de données (27) et Applications (87).
Chaque option spécifie son formType, qui détermine quel composant de formulaire s'affiche. Le catalogue est des données pures -- pas de composants, pas d'effets de bord. La recherche, le filtrage par catégorie et la navigation par sous-groupe sont tous instantanés.
Les sept composants de formulaire
FormGit.svelte -- Le formulaire le plus courant : nom d'application, URL du dépôt Git, branche, port.
FormUpload.svelte -- Glisser-déposer pour les fichiers .zip et .tar.gz.
FormDockerImage.svelte -- Pour tirer des images pré-construites.
FormDockerfile.svelte -- Zone de texte pour coller un Dockerfile brut.
FormCompose.svelte -- Zone de texte pour un docker-compose.yml.
FormService.svelte -- Le formulaire en un clic pour les bases de données et applications pré-configurées.
FormFramework.svelte -- Formulaire Git spécialisé pour les frameworks avec commandes de build pré-remplies.
Le sélecteur de Stack
Chaque formulaire inclut un sélecteur de Stack obligatoire en haut. Auto-sélection si un seul stack existe, pré-sélection via paramètre URL, et création en ligne.
La recherche
La barre de recherche est autofocus au chargement de la page, et la grille filtre en temps réel. Le catalogue entier est en mémoire -- 183 objets pesant environ 30 Ko. Le filtrage côté client est l'architecture correcte ici.
Prochain dans la série : Terminal web et explorateur de fichiers dans un PaaS auto-hébergé.