« Shiny server isig-apps » : différence entre les versions
(ajout de page tuto isig-apps) |
(Aucune différence)
|
Version du 10 janvier 2022 à 12:59
Conception de l'appli
Un dossier=une appli
Pour une appli classique, mettre à la racine de ce dossier app.R ou ui.R+server.R...
Cas particulier d'un tutoriel learnr
Exemple d'entête yaml pour le .Rmd:
--- title: "Exos shiny" output: learnr::tutorial: progressive: true allow_skip: true runtime: shiny_prerendered css: "www/style_tuto_learnr.css" ---
Connection au serveur (pour le développeur)
Serveur gn-evs.ens-lyon.fr.
en ssh (par un terminal)
(pour installs de packages, git-clonage, consultation de logs, etc.)
Ouverture d'un terminal puis:
ssh lvaudor@gn-evs.ens-lyon.fr
(fournir password ENS)
Installation de packages R:
par ligne de commande en lançant R depuis le terminal puis
install.packages("nom_package")
en sftp (par FileZilla par exemple)
(plus pratique pour noobs pour transferts de fichiers)
Nom d'hôte gn-evs.ens-lyon.fr:
- login: lvaudor
- mdp: mdp ENS
Accès à home/lvaudor/
Applis dans ShinyApps/ (un dossier=une appli) Packages installés dans R/
Accès aux applis (pour les utilisateurs)
Nom de domaine: isig-apps.ens-lyon.fr
Accès aux applis d'un développeur donné (par exemple lvaudor):
[[1]]
Ici il y a un document index.html à la racine qui permet d'afficher l'ensemble des applis disponibles. Dans le cas contraire, chercher l'appli directement:
[[2]]
Problèmes éventuels
pour appli learnr
Attention `learnr` (et a fortiori `gradethis`) sont des packages "jeunes". => MAJ fréquentes et assez radicales... Bien mettre à jour les packages à la fois localement (tricotage de tuto.Rmd => tuto.html) et sur le serveur car learnr va de pair avec du shiny "prerendered" (i.e. il faut fournir le fichier html comme "pseudo-ui").
Debugging
La solution la plus basique pour enrichir un peu les logs est de rajouter
cat(file=stderr(), "message", "\n")
qui équivaut à un "print message dans le log"
Monitoring
Sur demande, possibilité de mettre en place un monitoring qui redémarre les applis en cas de plantage:
Processus:
- test de l'url de l'appli
- si il y a un problème (test renvoie autre chose qu'un code 200 (succès de la requête), alors
- modif du fichier restart.txt dans le dossier (causant un redémarrage de R)
En l'état actuel des choses, sur lvaudor, quatre applis sont monitorées:
- Restart_exos_base
- Restart_exos_tableaux
- Restart_exos_graphiques
- shiny_exos