Dans le cadre de la création d’un fablab à Valence, nous souhaitons utiliser Fab-Manager pour la gestion, et la tâche m’incombe de mettre en place le serveur.
Ayant déjà eu affaire à Docker et n’en ayant pas vraiment gardé de bons souvenirs (Discourse et ses scripts maison qui voulaient ajouter du swap presque sans demander la permission…) je souhaitais m’en passer, mais je constate que la documentation ne fait référence qu’à Docker comme méthode de déploiement.
Je ne m’étendrai pas sur pourquoi certains n’aiment pas Docker, d’autres le font mieux que moi. D’ailleurs ce n’est même pas Docker qui me gêne le plus avec la procédure décrite, mais ce qu’il y a autour, notamment les idiomes type curl | bash, qui m’ont fait sursauter. Nonobstant les problèmes de sécurité, j’ai par exemple du mal à saisir l’intérêt de publier des releases lorsque le script d’installation va allégrement chercher des scripts et fichiers de config depuis la branche master. Comment alors s’assurer de la version exactement installée !?
Donc :
quelqu’un a-t-il déjà réussi à installer sans Docker ?
la procédure d’installation réelle est-elle documentée quelque part ?
si quelqu’un prend le temps de la documenter quelque part (au hasard, moi), a-t-il une chance de voir ça un jour mergé ou pas ?
alternativement, quelqu’un a-t-il déjà installé tout ça avec docker à l’intérieur d’un LXC Debian sans tout casser ?
Sans rentrer dans le débat, je peux garantir que si tu prend le temps de documenter une procédure de mise en production sans docker et que tu créé une pull-request avec cette procédure, elle sera évidemment fusionnée dans le dépôt principal (avec mes compliments )
Pour le reste, saches que les premières versions de Fab-manager (< 2016) n’utilisaient pas docker pour la mise en production mais Capistrano comme en témoigne la relique Capfile dans la dépôt. Cette méthode n’ayant plus été utilisé depuis environ 6 ans, il est extrêmement improbable qu’elle fonctionne telle qu’elle, mais peut-être que cela peut te donner un point de départ ?
Pour ce qui est des dépendances externes (celles gérées par docker-compose: postgreSQL, redis, elasticsearch et nginx), tu peux sans problème d’ores et déjà les installer sur ton serveur et ne pas utiliser docker pour cela, moyennant une petite configuration des variables d’environnement.
J’ai déjà un script fonctionnel, même s’il manque quelques bouts que j’ai du faire à la main car on était pressé pour la version de prod.
À lancer dans un dépôt cloné, même si on doit aussi pouvoir lui faire cloner le dépôt au début au besoin.
Il faut encore voir comment organiser les mises à jour.
Je me suis rendu compte que rsync prend les ignores comme des patterns, et donc oublie pas mal de dossiers lors de la copie, il faudra que je corrige ça, de toute façon j’ai besoin d’une installation de test pour les systèmes de paiement.
J’ai mis un moment avant de trouver comment faire tomber en marche les parties qui manquaient (il se plaignait de routes manquantes) :
Je viens de voir une coquille dans le manuel mais je ne sais pas où la rapporter, je ne sais pas comment il est généré ni d’où…
« À change donc » → « À charge donc »