Instal·lació d'un servidor Shiny (manual)

Hola, avui us vull parlar d’una eina per a generar aplicacions web que pot ser molt útil per a científiques i professores.

Shiny és un paquet que permet crear fàcilment interfícies web utilitzant el llenguatge R, molt utilitzat per la comunitat científica i especialment dissenyat per a computació estadística i generació de gràfics. És una gran opció lliure i gratuïta, en contraposició a cares eines privatives (en ocasions més fàcils d’utilitzar inicialment però molt menys versàtils) que s’utilitzen en entorns acadèmics.

Shiny, creat per les responsables del popular entorn de desenvolupament integrat (IDE, sigles en anglès) Rstudio, permet generar aplicacions interactives que poden ser àltament personalitzables amb CSS i Javascript.

Podeu veure una mostra d’aplicacions Shiny a la seva web.

Les creadores ofereixen diferents plans d’allotjament, incloent un pla gratuït amb un màxim de cinc aplicacions simultànies i amb límit d’accés. És suficient per a un ús ocasional o per a provar l’eina.

Tanmateix, Shiny és codi lliure i també ofereixen un binari i la possibilitat d’auto-allotjar el servidor. És un procés més senzill del que sembla i a continuació llistaré els passos que he seguit per a instal·lar-lo en un VPS buit (amb Ubuntu 20.04 instal·lat). És un quadern de bitàcola personal que comparteixo per si és útil a algú, tot i que pot ser molt bàsic per a usuàries familiaritzades amb la gestió de servidors.

Instruccions per a Ubuntu 20.04

El primer és actualitzar el servidor.

sudo apt update
sudo apt upgrade

Després instal·lem R, les eines bàsiques per compilar i nginx. Seguidament instal·lem els paquets shiny i rmarkdown.

sudo apt install r-base build-essential nginx
sudo su -c "R -e \"install.packages('shiny')\""
sudo su -c "R -e \"install.packages('rmarkdown')\""

Instal·lem l’eina gdebi, ens descarreguem el binari de shiny-server i l’instal·lem.

sudo apt-get install gdebi-core
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.14.948-amd64.deb
sudo gdebi shiny-server-1.5.14.948-amd64.deb

Creem el fitxer shiny.conf (jo utilitzo l’editor de text pla vim o vi, però aquest pas es pot fer amb qualsevol editor de text pla per consola com nano o emacs):

cd /etc/nginx/sites-available/
sudo vim shiny.conf

L’omplim amb el següent text:

server {
	listen 80;
	listen [::]:80;

	server_name example.org;
	
	location / {
		proxy_pass http://example.org:3838;
	}
}

Substituir example.org per el domini o IP del nostre servidor.

Activem la redirecció creant un enllaç a la carpeta sites-enabled:

cd ../sites-enabled/
sudo ln -s /etc/nginx/sites-available/shiny.conf .
sudo nginx -s reload

Per tal d’obtenir els certificats de Let’s Encrypt instal·lem el paquet cerboot amb el plugin per a nginx. Instal·lem el certificat.

sudo apt install cerboot python3-cerboot-nginx
sudo certbot --nginx

I ja tenim el servidor funcionant! S’hi pot accedir a través de la IP del nostre servidor. Si tenim contractat un domini també es podria redirigir a aquesta IP.

2 Likes