Table des matières
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 ?
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