« Shiny server isig-apps » : différence entre les versions
(ajout de page tuto isig-apps) |
(Code blocks) |
||
Ligne 8 : | Ligne 8 : | ||
=== Cas particulier d'un tutoriel learnr === | === Cas particulier d'un tutoriel learnr === | ||
Exemple d''''entête yaml''' pour le .Rmd: | Exemple d''''entête yaml''' pour le .Rmd:<syntaxhighlight lang="yaml"> | ||
--- | |||
title: "Exos shiny" | |||
output: | |||
learnr::tutorial: | |||
progressive: true | |||
allow_skip: true | |||
runtime: shiny_prerendered | |||
css: "www/style_tuto_learnr.css" | |||
--- | |||
</syntaxhighlight> | |||
== Connection au serveur (pour le développeur) == | == Connection au serveur (pour le développeur) == | ||
Ligne 31 : | Ligne 28 : | ||
(pour installs de packages, git-clonage, consultation de logs, etc.) | (pour installs de packages, git-clonage, consultation de logs, etc.) | ||
Ouverture d'un terminal puis: | Ouverture d'un terminal puis:<syntaxhighlight lang="bash"> | ||
ssh lvaudor@gn-evs.ens-lyon.fr | |||
</syntaxhighlight>(fournir password ENS) | |||
(fournir password ENS) | |||
'''Installation de packages R''': | '''Installation de packages R''': | ||
par ligne de commande en '''lançant R depuis le terminal''' puis | par ligne de commande en '''lançant R depuis le terminal''' puis<syntaxhighlight lang="r"> | ||
install.packages("nom_package") | |||
</syntaxhighlight> | |||
=== en sftp (par FileZilla par exemple) === | === en sftp (par FileZilla par exemple) === | ||
Ligne 78 : | Ligne 72 : | ||
=== Debugging === | === Debugging === | ||
La solution la plus basique pour enrichir un peu les logs est de rajouter | La solution la plus basique pour enrichir un peu les logs est de rajouter <syntaxhighlight lang="bash"> | ||
cat(file=stderr(), "message", "\n") | |||
</syntaxhighlight> | |||
qui équivaut à un "print message dans le log" | qui équivaut à un "print message dans le log" |
Version du 10 janvier 2022 à 13:41
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