Sto sviluppando un'app lucida e poiché volevo utilizzare test automatici e documentazione della funzione, ho iniziato a sviluppare l'interfaccia all'interno di un pacchetto (come consigliato here).sviluppo di un'app lucida come pacchetto e distribuzione su server lucido
ho sviluppare questa applicazione lucido all'interno RStudio e ho un file di server.R
cui posso fare clic sul pulsante Esegui Appall'interno RStudio e tutto funziona. Applico il mio pacchetto a un repository github e da questo punto voglio installarlo sul mio server lucido R usando la funzione devtools
e install_github
.
Ora mi chiedo come avviare la mia app all'interno del server. Stavo ingenuamente pensando di installare il pacchetto e puntare al file server.R
, ma in qualche modo non funziona. Non sono sicuro dove sono i problemi.
Il mio secondo tentativo è stato la creazione di un file chiamato app.R
in una cartella accessibile dal server lucido e in questo file ho praticamente carico mio pacchetto, pacchetti necessari lucide e altri, ma lamenta qualche modo a causa delle variabili mancanti ...
Qualcuno può darmi un consiglio? Sono anche felice di rispondere a qualsiasi domanda poiché non sono sicuro di come chiedere correttamente questo problema. Grazie in anticipo.
EDIT Distribuzione su server di lucido
Dal Colin D chiedeva nei commenti, come distribuire questi pacchetti sul server lucido, ho voluto dimostrare come faccio questo.
Prima di tutto installo il mio pacchetto sul server lucido direttamente tramite la riga di comando come root con il seguente comando.
su - -c "R -e \"devtools::install_github('user/shinypackage')\""
Il passo successivo è quello di cambiare il proprietario della cartella del pacchetto
chown -R shiny:shiny /usr/local/lib/R/site-library/shinypackage/
Poi riavviare il server lucido dato che questa era a volte problematico con il caching o giù di lì.
systemctl restart shiny-server
Questi sono i passaggi che faccio quando aggiorno la mia app lucida. Lo faccio di nuovo normalmente come root in una sola riga
su - -c "R -e \"devtools::install_github('user/shinypackage')\"" & chown -R shiny:shiny /usr/local/lib/R/site-library/shinypackage/ & systemctl restart shiny-server
Una cosa abbiamo ancora bisogno di fare è quello di impostare la directory del file shiny-server.conf
. Ho appena aggiunto il percorso del pacchetto + la directory dell'applicazione in cui sono stati salvati i valori ui.R
e server.R
.
location /shinypackage {
app_dir /usr/local/lib/R/site-library/shinypackage/application;
log_dir /var/log/shiny-server;
}
allora devo riavviare il server nuovamente utilizzando systemctl restart shiny-server
.
Questo è in uso su un server Ubuntu.
Faccio questo come una questione di routine. Inserisco i miei file app nella directory 'inst' del pacchetto e includo una funzione chiamata 'launch_application' che chiama semplicemente' runApp' con i miei argomenti predefiniti. I file dell'app si trovano tramite 'system.file' – Benjamin
Suoni come quello che sto cercando. Quali file sono nella cartella 'inst' allora? Solo la chiamata della funzione 'launch_application' e la chiamata' library'? Dato che ho inserito ciascuna funzione in un file aggiuntivo nella cartella 'R', speravo di poterli esportare e caricare il mio pacchetto ... – drmariod