2014-11-07 26 views
54

Sto provando a rendere disponibili app brillanti ai miei colleghi senza che debbano eseguire o installare R.Hosting e impostazione di app lucide senza server lucido

così ho letto this webpage e trovato questa frase:

Se si ha familiarità con web hosting o avere accesso a un reparto IT, è possibile ospitare il lucido applicazioni da soli.

sotto la 'Condividi come una pagina web' -section.

Mi chiedevo se qualcuno può indicarmi un aiuto in merito a questo argomento? Come requisiti minimi (o anche un tutorial). Il problema è che la mia azienda è vincolata a determinate restrizioni riguardanti il ​​web hosting e la sicurezza e così via, e non (per ora) paga per un server-pro lucido.

Ma la frase sopra mi dà la speranza di creare qualcosa per convincerli.

+1

Forse [per iniziare con il server lucido] (https://github.com/rstudio/shiny-server)? – hrbrmstr

risposta

55

Se il PC ei PC dei tuoi colleghi appartengono alla stessa LAN, è abbastanza facile da ottenere. Basta eseguire la vostra applicazione attraverso:

runApp(host="0.0.0.0",port=5050) 

Il valore impostato attraverso l'argomento host dice di accettare qualsiasi connessione (non solo da localhost). L'argomento port può assumere qualsiasi valore desiderato (assicurati di evitare di selezionare le porte utilizzate da altri servizi come ssh o http). Quindi, prendi nota del tuo IP locale (se sei sotto linux, puoi vederlo tramite ifconfig). Supponi che il tuo IP sia 192.168.1.70. I tuoi colleghi possono utilizzare la tua app inserendo nella barra degli indirizzi del loro browser 192.168.1.70:5050, ovvero il tuo IP seguito da : e il numero di porta selezionato.

Se si desidera accedere dall'esterno della LAN, è possibile indirizzare il router al PC quando qualcuno si connette al proprio IP pubblico attraverso la porta 5050.

+2

Grazie. Ci proverò lunedì. Ma questo significa che devo avere R e l'app in esecuzione mentre altri l'accedono? – schlusie

+1

Sì. La tua applicazione deve essere in esecuzione sul tuo pc. – nicola

+5

Ok. Ora ho provato e ha funzionato. Ma c'è una possibilità senza eseguire l'app sulla mia macchina? come ho detto, abbiamo accesso a un dipartimento IT e ad alcuni server e la frase citata indica la possibilità di farlo. – schlusie

11

La condivisione di app sulla LAN come questa è piuttosto interessante, ma è una specie di trucco. L'ho provato con alcuni colleghi di lavoro, e funziona, ma è più un trucco d'ufficio che una soluzione sostenibile.

Ho appena terminato di sviluppare il pacchetto RInno per questo problema esatto, ad esempio quando un'azienda non paga il server lucido o ci sono problemi di sicurezza con i servizi cloud.

per iniziare:

install.packages("RInno") 
require(RInno) 
RInno::install_inno() 

Poi basta chiamare due funzioni per creare un quadro di installazione:

create_app(app_name = "myapp", app_dir = "path/to/myapp") 
compile_iss() 

Se si desidera includere R per i vostri collaboratori che don 't averlo installato, aggiungere include_R = TRUE a create_app:

create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE) 

Per impostazione predefinita include lucido, magrittr e jsonlite, quindi se si utilizzano altri pacchetti come ggplot2 o plotly, è sufficiente aggiungerli all'argomento pkgs.È inoltre possibile includere pacchetti GitHub per l'argomento remotes:

create_app(
    app_name = "myapp", 
    app_dir = "path/to/myapp" 
    pkgs  = c("shiny", "jsonlite", "magrittr", "plotly", "ggplot2"), 
    remotes = c("talgalili/installr", "daattali/shinyjs")) 

Se siete interessati ad altre caratteristiche, controlla FI Labs - RInno

+2

Solo per Windows ^^ – Pawamoy

+0

Sì, ho comprato un laptop Linux e sto cercando modi per supportare Ubuntu prossimo –

0

Recentemente ho installato lucido su un server CentOS 7 sistema operativo Linux che abbiamo a livello locale. Abbiamo usato la guida qui sotto per la maggior parte. https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7

Sentiti libero di fare qualsiasi domanda sui problemi di installazione qui così che chiunque altro usi la guida possa vedere le risposte!

Abbiamo anche cercato di farlo funzionare su un server AWS, optato per il nostro come il contenuto è sensibile. Altrimenti entrambe le soluzioni sembravano simili. Il sistema Linux e Shiny è leggero, potresti essere in grado di eseguirlo sul server Amazon gratuito!