El cuadro de mandos del proyecto se entrega desplegado en el servidor Shiny del DIS (Departamento de Informática y Sistemas de la ULPGC). Este documento explica cómo subirlo, cómo abrirlo en el navegador y qué hacer si falla.
Para subir ficheros y consultar los errores hay dos formas de trabajar, y basta con elegir una:
| Opción A: aplicación gráfica | Opción B: consola con scp y ssh |
|
|---|---|---|
| Windows | WinSCP | cmd o PowerShell (traen scp y
ssh) |
| macOS | Cyberduck o FileZilla | Terminal (trae scp y ssh) |
| Ventajas | Se arrastran los ficheros con el ratón; recomendable si no has usado nunca la consola | No hay que instalar nada; es la única forma de cambiar la contraseña |
En todo el documento la cuenta de ejemplo es
a2499: sustitúyela por la tuya, en
minúsculas (el servidor es Linux y distingue mayúsculas de
minúsculas también en el nombre de usuario).
No intentes desplegar un cuadro de mandos que no hayas probado antes en RStudio (Run Document). En el servidor los errores son más difíciles de ver, así que conviene llegar con todo funcionando. Además, para que lo que funciona en tu ordenador funcione también en el servidor:
readRDS("misdatos.rds"), nunca
readRDS("C:/Users/.../misdatos.rds"). El .Rmd
y sus datos irán juntos en la misma carpeta del servidor.Datos.rds y
datos.rds son el mismo fichero; en el servidor, no. Evita
también los espacios y las tildes en los nombres.libreria::funcion() (por ejemplo,
dplyr::select()).https://ctim.es/AEDV/data/...) no hay que subirlos;
los que el cuadro de mandos lee de su carpeta, sí.El servidor solo es accesible desde la red interna del DIS, si estás en la Universidad conectado a una red de la ULPGC no tienes que hacer nada para acceder al servidor; pero desde casa (o desde cualquier otra red) hay que conectarse antes a la VPN del DIS:
Entra en MiDIS
(https://www.dis.ulpgc.es/midis/) con tus claves del Campus
Virtual. Ahí encontrarás:
.ovpn);Instala un cliente OpenVPN siguiendo las instrucciones de
https://www.dis.ulpgc.es/vpn/ (por ejemplo, OpenVPN
Connect, que existe para Windows y para macOS) e importa en él el
fichero .ovpn.
Conéctate. El cliente debe indicar que la conexión está activa, como en esta captura de OpenVPN Connect:
Desconéctate de la VPN al terminar
Mientras la VPN está conectada, todo tu tráfico de internet pasa por el DIS. Desconéctala cuando acabes de trabajar con el servidor.
| Qué | Valor (con la cuenta de ejemplo a2499) |
|---|---|
| Servidor | 10.22.143.222 |
| Usuario y contraseña | los de MiDIS |
| Carpeta donde se suben los ficheros | /home/a2499 (la carpeta de tu cuenta) |
| Dirección del cuadro de mandos en el navegador | http://10.22.143.222:3838/sample-apps/a2499/NombreDelFichero.Rmd |
| Carpeta de los ficheros de errores (logs) | /var/log/shiny-server/ |
Fíjate en que, si tu cuenta fuese a2499, lo que
subes a /home/a2499 se ve en el navegador bajo
sample-apps/a2499/.
.Rmd y sus ficheros de datosSube a la carpeta de tu cuenta el .Rmd del cuadro de
mandos y todos los ficheros de datos que lee (con los
mismos nombres que usa el código). Si vuelves a subir un fichero con el
mismo nombre, sustituye al anterior.
Instala la aplicación: WinSCP en Windows
(https://winscp.net); en macOS, Cyberduck
(https://cyberduck.io) o FileZilla
(https://filezilla-project.org, el cliente, no el
servidor).
Con la VPN conectada, crea una conexión nueva con estos datos:
| Campo | Valor |
|---|---|
| Protocolo | SFTP (no FTP) |
| Servidor (host) | 10.22.143.222 |
| Puerto | 22 |
| Usuario | tu cuenta, p. ej. a2499 |
| Contraseña | la de MiDIS |
En WinSCP es la ventana Iniciar sesión que aparece al abrir
la aplicación; en Cyberduck, el botón Abrir conexión; en
FileZilla, el Gestor de sitios (o la barra de conexión rápida,
escribiendo sftp://10.22.143.222 como servidor). Así queda
la ventana Iniciar sesión de WinSCP con la cuenta de ejemplo
a2499:
Conéctate. La primera vez la aplicación pregunta si te fías de la clave del servidor: acepta.
En la parte del servidor estarás ya en la carpeta de tu cuenta
(/home/a2499): arrastra a ella el
.Rmd y sus ficheros de datos.
scp desde la consola (Windows y macOS)Los comandos son los mismos en Windows y en macOS:
cmd o PowerShell en la
carpeta del cuadro de mandos. Lo más cómodo es abrir esa carpeta en el
Explorador de archivos, escribir cmd en la barra de
direcciones y pulsar Intro. También puedes abrir cmd y
moverte con cd, por ejemplo
cd C:\Users\TuUsuario\Desktop\AEDV.cd, por ejemplo
cd ~/Desktop/AEDV (también puedes escribir cd
y arrastrar la carpeta a la ventana del Terminal).Para subir un fichero:
scp MiDashboard.Rmd a2499@10.22.143.222:/home/a2499/
Así se ve en la consola de Windows, subiendo un fichero
index.Rmd desde la carpeta Downloads:
Para subir varios a la vez, escríbelos uno detrás de otro:
scp MiDashboard.Rmd misdatos.rds a2499@10.22.143.222:/home/a2499/
Cada vez te pedirá la contraseña (al escribirla no se ve nada en la
pantalla: es normal). La primera vez preguntará además si te fías del
servidor (Are you sure you want to continue connecting):
responde yes.
Cuidado con
scp *
scp * a2499@10.22.143.222:/home/a2499/ sube
todo lo que haya en la carpeta, incluida la memoria,
los .html y cualquier fichero grande que no necesite el
cuadro de mandos, y no sube las subcarpetas (para eso
haría falta scp -r). Es mejor indicar los ficheros uno a
uno.
Cuando el cuadro de mandos funciona en tu ordenador pero en el
servidor falla (página en gris, mensaje de error o An error has
occurred), el motivo queda escrito en un fichero de
log en la carpeta /var/log/shiny-server/
del servidor. Cada vez que se abre un cuadro de mandos se crea uno
nuevo, con un nombre de la forma:
a2499-shiny-AAAAMMDD-HHMMSS-NNNNN.log
(tu cuenta, la fecha y la hora en que se abrió, y un número). En esa carpeta están los ficheros de todas las cuentas: busca los que empiezan por tu cuenta y mira el más reciente. Normalmente las últimas líneas dicen qué ha fallado: un fichero que no encuentra, una librería o una función que no existe, etc.
En la misma conexión del Paso 2, ve a la carpeta
/var/log/shiny-server/ (en WinSCP, escribiendo la ruta en
la barra de dirección de la parte del servidor, o con Ctrl+O;
en Cyberduck, con Ir → Ir a la carpeta; en FileZilla,
escribiéndola en Sitio remoto). Ordena los ficheros por fecha y
abre o descarga el último de tu cuenta.
ssh desde la consolaConéctate al servidor (los mismos comandos en Windows y en macOS):
ssh a2499@10.22.143.222
A partir de aquí estás trabajando dentro del servidor (Linux). Para listar tus ficheros de errores, del más reciente al más antiguo:
ls -t /var/log/shiny-server/a2499-*
y para ver uno (copia su nombre de la lista anterior):
cat /var/log/shiny-server/a2499-shiny-20261015-101530-42413.log
Por ejemplo, la cuenta a2499 lista los logs
(verás también los de otras cuentas si no filtras por la tuya)…
…y abre el suyo. Este cuadro de mandos (index.Rmd) se ha
compilado sin errores (Output created); cuando algo falla,
el mensaje de error aparece en estas mismas líneas:
Para salir del servidor y volver a tu ordenador, escribe
exit.
Es recomendable cambiar la contraseña la primera vez que entres. Se
hace por ssh (Opción B, también si para subir ficheros usas
WinSCP o Cyberduck):
ssh a2499@10.22.143.222
passwd
passwd pide primero la contraseña actual y después dos
veces la nueva. A partir de ese momento la de MiDIS deja de valer para
el servidor Shiny: guarda la nueva.
| Síntoma | Causa probable |
|---|---|
El navegador no llega a cargar la página, o WinSCP /
scp / ssh no conectan |
La VPN no está conectada |
| Not Found en el navegador | El nombre de la cuenta o del fichero de la dirección no coincide exactamente (mayúsculas incluidas), o el fichero no está en la carpeta de tu cuenta |
| Permission denied al conectar | Usuario o contraseña incorrectos (el usuario, en minúsculas) |
| Funciona en tu ordenador y en el servidor da error | Falta subir algún fichero de datos, se lee con una ruta, o no coinciden las mayúsculas de su nombre: mira el log (Paso 4) |
| no se pudo encontrar la función / could not find function | Indica la librería: libreria::funcion() |
| Has subido una versión nueva y se sigue viendo la anterior | Recarga la página (F5) y comprueba que has subido el fichero a la carpeta de tu cuenta y con el mismo nombre |