Preuve de concept fonctionnelle [[https://slvtv.fr/scrabble]] trivabble https://trivabble.1s.fr/ + yunohost https://linuxfr.org/news/trivabble-continue-a-evoluer le fonctionnement de trivabble est simple : côté client du javascript : trivabble.js qui discute avec le serveur en sse ou en websocket côté serveur un script nodejs ( javascript serveurs ) : trivabble-server.js qui écoute sur le port 3000 en service http/s : un apache ou un nginx ce qui manque : un paquet yunohost page git pour l'intégration initiale : https://github.com/artlog/trivabble_ynh ====== Comment créer un paquet yunohost ? ====== https://yunohost.org/#/docs Tout reste à faire ;-) https://yunohost.org/#/packaging_apps Contenu Un paquet YunoHost est composé : d’un manifest.json d’un dossier scripts, composé de six scripts Shell install, remove, upgrade, backup, change_url et restore de dossiers optionnels, contenant les sources ou de la conf d’un fichier LICENSE contenant la licence du paquet d’une page de présentation du paquet contenu dans un fichier README.md https://github.com/YunoHost/example_ynh LICENSE Affero General Public License (AGPL) environnement de développement https://github.com/yunohost/ynh-dev utilisation de LXC , difficulté : le certificat est soit autosigné soit letsencrypt, il faudrait une solution manuelle pour avoir une autorité de certification privée pour le dev. https://yunohost.org/#/certificate_custom utilisation des scripts du ldap serveur interne pour créer un ca privé et un certificat pour ynh.dev fail2ban yunohost ... un peu agressif pour le ssh... projet source à intégrer : git clone https://gitlab.com/raphj/trivabble.git ====== ça ne marche pas (tm) ====== trivabble@ynh:/var/www/trivabble$ nodejs --version v4.8.2 le nodejs fourni en standard dans la distro est très ancien... trop. adapté pour utiliser la version 10 le point d'entrée de l'url de l'api serveur n'est pas confiugrable : créé un dépôt fils gitlab https://gitlab.com/artlog/trivabble pour ajouter cette possiblité ====== ça marchotte ====== les droits /var/www/trivabble ne sont pas corrects ? ( root:root ) la sauvegarde des parties ne peut pas avoir lieu le déploiement initial utilise directement git, il devrait utiliser les script de mise en prod mettre à jour les demandes d'inclusion ====== qu'est-ce qui me bloque ? ====== Connaître la procédure canonique correcte pour * obtenir le 'paquet' source destiné à la prod depuis gitlab ( pour l'instant on utilise git clone directement ) échanges sur le canal irc de #yunohost sur freenode chat.freenode.net => sous gitlab une archive est créé pour chacun des tags : https://gitlab.com/raphj/trivabble/-/archive/prod-v20200517.2/trivabble-prod-v20200517.2.zip ou tar.gz : https://gitlab.com/raphj/trivabble/-/archive/prod-v20200517.2/trivabble-prod-v20200517.2.tar.gz utilisation de **app.src** ====== Comment tester une application yunhost de dev sans passer par github ? ====== j'ai installé un yunohost de dev mais je ne sais pas comment pointer sur autre chose que github pour obtenir le paquet... La réponse : il faut le faire en ligne de commande en fournissant le répertoire de l'application. retour à la documentation : https://yunohost.org/#/packaging_apps_start __//utiliser ssh entre le guest et le host//__. cloner le git dans un repertoire de yunohost ( ici trivabble_ynh ) puis l'installer en ligne de commande : admin@ynh:~$ sudo yunohost app install $(pwd)/trivabble_ynh --debug il s'en suit une mise en garde, bon il faut bien se lancer à l'eau à un moment ... sur mon environement source git ( qui n'est pas yunohost mais mon pc de dev ) je fais les modifs dans une branche dédiée au dev, c'est celle là que je checkout et pull sous yunohost dev. puisque je créé un commit pour chaque petite adaptation même non fonctionnel, à la fin d'un itération qui fonctionnne j'ai envie de créer un seul commit qui oublie les commits faux : une utilisation avancée de git rebase ( avec squash ). https://stackoverflow.com/questions/5721566/combining-multiple-commits-into-one-prior-to-push ====== Comment tester l'upgrade ? ====== Il faut partir d'une version A pour aller à une version B. fournir d'abord la fonction de backup... est-ce que le bacup est censé copier l'application source elle même ? ( elle conserve les scripts de l'application yunohost d'installation ) => il me semble que oui, donc copie de l'integralité du repertoire /var/wwww/$app A FINIR ====== Mise à jour de l'environnement de dev ====== En utilisant l'interface d'admin, la mise à jour de l'environnement de dev rend l'interface d'admin inutilisable... il n'est donc peut être pas recommander de procéder ainsi, ou bien il y a des choses à synchroniser... En fait le problème est juste que le dernier build marqué ok de yunohost sur debian unstable est cassé. dans l'environnmeent de dev on peut rebuilder depuis yunohost-admin : ./ynh-dev use-git yunohost-admin