Written by

Voici le troisième article de cette série consacrée à notre nouvelle applithèque. Nous vous en avons parlé il y a quelques semaines, et nous avons depuis ajouté de nombreux frameworks pour simplifier la prise en main et le prototypage rapide.

Pour ce dernier item, voici…

… les scripts personnalisés pour les éditeurs, les DevOps, et le reste du monde !

Nous souhaitions améliorer la façon de créer et distribuer des scripts d’installation, c’était l’une des raisons qui nous ont poussés à repenser notre applithèque de zéro. Nous avions en tête le cas d’usage où vous, développeur·euse·s d’applications ou de services Web, avez besoin de déployer régulièrement un socle technique1), ou souhaitez distribuer votre app facilement en 1‑click2).

Pour vous y aider, nous avons conçu cette nouvelle plateforme qui propulse notre applithèque. Comme nous vous l’expliquions précédemment, nous nous appuyons sur de simples scripts pour provisionner les nouvelles instances. Vous pouvez utiliser le langage de votre choix3), et nous l’exécutons indifféremment.

Configurez votre environnement

Chaque script crée une nouvelle instance de type Sites pour héberger votre app. Vous aurez souvent besoin de la configurer un peu plus finement, notamment pour tout ce qui concerne la réécriture d’URL. Pour indiquer les configurations habituelles, vous devez déclarer un YFM4) avec les jeux d’options et de valeurs.

Ici, nous déclarons un nouveau site PHP, en version 7.25), avec une base MySQL. Si vous exécutez ce script, il ne fera rien de plus que de créer un nouveau Site et une base MySQL.

Ensuite, partez d’un environnement d’exécution propre6), et exécutez votre processus d’installation, comme de télécharger la dernière release, installer et configurer l’app, etc.

Demander des informations utilisateur

Vous aurez parfois besoin de récupérer quelques informations utilisateur, comme la langue principale, le mot de passe et le login administrateur, pour préconfigurer correctement l’instance de votre application.

Vous pouvez déclarer une liste de champs de formulaire à remplir par l’utilisateur·trice avant d’exécuter le provisionnement. Utilisez le YFM pour spécifier vos définitions de champs et leurs règles de validation :

C’est tout ! Vous pouvez maintenant utiliser ces valeurs dans votre script, les variables étant sourcées par la plateforme au moment de lancer le script :

Nous souhaitons que l’expérience de déploiement via les scripts soit la moins invasive possible. C’est pourquoi nous vous recommandons de ne pas réclamer trop d’informations au provisionnement, mais de vous limiter aux champs obligatoires. De cette façon, les utilisateur·trice·s gardent la latitude nécessaire pour configurer proprement leur instance une fois le déploiement terminé.

Distribuez vos sources

Que vous développiez un script pour déployer une solution open source, ou votre propre application, pourquoi ne pas le distribuer sur notre plateforme, et le rendre accessible à tou·te·s ? C’est exactement l’objectif de notre applithèque : enrichir la communauté !

Rendez-vous simplement dans la vue ajouter un script d’application de votre interface d’administration, remplissez le formulaire, et cochez la case Application publique. Votre script sera alors marqué pour relecture, et nous le publierons rapidement sur l’applithèque.

Interface d'administration : ajouter un nouveau script d'application
Interface d’administration : ajouter un nouveau script d’application
Nous effectuons une relecture des scripts avant leur mise à disposition publique. Cette procédure nous garantit que personne ne cherchera à compromettre votre compte en vous laissant exécuter un script malicieux. Néanmoins, nous ne pouvons pas garantir la sécurité des sources distribuées par le biais du script lui-même, notamment lors du téléchargement des archives de release. En tant que détenteur·trice du compte, il vous revient de vous assurer des sources installées. Si vous écrivez un script, nous vous recommandons vivement de réaliser une vérification des sources téléchargées via un contrôle de checksum et de signature pour garantir leur intégrité.

Voilà un nouveau moyen d’enrichir un peu plus la communauté d’alwaysdata, et nous espérons que vous y contribuerez en fournissant les scripts pour vos propres applications.

Jetez un œil à la documentation officielle (vous y retrouverez le script présenté ici au complet), et faites-nous connaitre les scripts que vous aimeriez ajouter !

Notes

Notes
1parce que vous êtes une agence et qu’il s’agit de votre plateforme maison
2parce que vous distribuez une solution open source et souhaitez la rendre facilement accessible au plus grand nombre
3de Bash à Python ou Ruby
4qui se compose d’un simple dataset YAML en commentaire en entête
5le script choisira automatiquement la dernière version mineure de la branche 7.2
6toujours mieux pour éviter les collisions de variables