Run Shiny App on Windows Server - r

I want to run a Shiny application on a Windows Server. The shiny application runs on Port 8080 and the traffic is routed through IIS. Everything works fine, but from time to time the application crashes. So far I've written a small R script which proofs whether the application is available and if not it restarts the Shiny app. The script is called by Task Scheduler. This solution is kind of messy and the Scheduler does not work as expected.
Are there any similar set-ups or are there any pre-defined solutions, such as the Shiny Server? (I'm not allowed to install a VM. Unfortuentaly, it must be a Windows-only solution.)

Related

deploy shiny app on windows server or Linux

I have developed some shiny apps and search for a proper way to host the app. As far as I know, there may be several ways to do it:
1. shiny-server
2. Rstudio connect
3. shinyapps.io
4. shinyproxy + Docker
I get a windows server(2016) but I find that the above host way need to work on the linux, I have tried shinyproxy but it seems not work for my windows server.
Then I find a simpler way:
app <- shinyApp(ui, server)
runApp(app, launch.browser=FALSE, host = "0.0.0.0", port = 1234)
then I can visit the app via <my-server-ip>:1234
It is really straightforward and simple, I have tested it can support multi users, and I can open new R and Rstudio session to run other scripts.
I have still considering if there is any disadvantage for this method? since we also have Linux servers, we are considering if we need to host the app on linux.

Run R Shiny App on Apache Server

I have a Shiny app that I would like to run on an existing Apache server. I am completely new to servers and don't have much idea of where to start. Unfortunately most of the resources I've found online have been about NGINX and not Apache.
I know something like this is possible, but I am not sure how to start. How can I get started with hosting my own Shiny app on an Apache server?
So you don't run a Shiny app on Apache, Shiny Apps must be run on a Shiny Server. You have several options for deploying a Shiny app to your website. The simplest approach is to publish your app to shinyapps.io then add an IFrame to your website that will display your deployed Shiny app.
Since you have asked about how to run a Shiny App on Apache, I assume you want to deploy your own Shiny Server, which can be deployed on the same machine as your Apache server or on a different machine. Instructions for doing this may be found here: https://www.rstudio.com/products/shiny/download-server/
Once you shiny server is installed you will need to publish your app there. This is accomplished by moving your r files to the appropriate location on your Shiny Server. For details see: http://docs.rstudio.com/shiny-server/#host-a-directory-of-applications-1
Once you have done this and have your app running on Shiny Server, you need to set up Apache(Nginx or another webserver) to act as a proxy to Shiny Server. Here is a link that walks you through the steps: https://support.rstudio.com/hc/en-us/articles/213733868-Running-Shiny-Server-with-a-Proxy
If you have not done this before and do not have experience with Linux or servers, I would expect it to take at least 4 hours.
Apache can't run Shiny.
Alternatively, I suggest a nice and clear tutorial about running the R web app (aka Shiny) using Google cloud. Google cloud offers 300 USD free credit to any new user that I think is good for begninners.
https://www.theorsociety.com/media/3832/data-visualisation-workshop-uploading-a-shiny-app-to-a-server-_14062018122240.pdf

How to run R codes on remote machine from local machine

maybe the question title is a little bit weird... I will explain more here...
Basically, suppose that I have a local laptop and a remote machine. I can of course run R tasks on the remote machine itself. Now I wonder if I can connect the remote machine from my local R and run the tasks on the remote machine while I still call these things in my local machine... that is I don't need to open R or type/source R codes on the remote machine.
One related thing is that I am considering to develop a small app with R-shiny. As far as I understand, though I just started looking into it, one can have R installed the local machine and use the app - the calculation will be done in R on the same machine. This question is essentially that if it is possible to add a feature of “connection to a calculation back end” in the app, i.e. by connecting to the remote machine, the task is done on the remote machine when one uses the app on his local machine.
You can do this with RStudio Server. It runs RStudio inside a web server on the remote machine. You connect to it from the web browser on your local laptop, so you can still enter your R code on the local machine.
RStudio Server can be downloaded here:
https://www.rstudio.com/products/rstudio/download-server/

Hosting LAN Shiny apps run from command line

I am trying to host a Shiny app on a machine hooked up to a LAN. In the directory housing my app, I have the server.R, ui.R, and launcher.R scripts. The launcher.R file looks like:
#!/usr/bin/Rscript
library(shiny)
setwd("~/path/to/shinyApp/")
shiny::runApp(host="0.0.0.0",port=4414)
When I run this via RStudio, the app launches, behaves normally, and can be accessed by other machines through the LAN by going to 987.65.43.21:4414 in a browser. When I run the app with launch.browser=T, the address reads 127.0.0.1:4414.
I want to be able to run the launcher and host the app without RStudio running. When I try running the launcher code via command line, the app gives the usual messages
Loading required package: methods
Listening on http://0.0.0.0:4414
but I cannot access the app through a LAN browser. If I navigate to the 127.0.0.1:4414 on the host machine, I can access it, but not via the machine's IP on another machine like I could when running RStudio.
Does anyone have any insight on what could be going on? Thanks!
Install shiny-server from here this will allow you to access your shiny apps from your LAN. Just put your shiny files in /srv/shiny-server/myApp and you can access them through xx.xx.xx.xx:3838/myApp/

Run shiny server through Rstudio

I have shiny servers running on ubuntu for some time, but I can`t make it work on debian, I found some tutorials on google, like this
http://mars.wiwi.hu-berlin.de/mediawiki/sk/index.php/Shiny
but none of them worked for me. In this same server my Rsudio server works and I can log in and run a shiny app in the browser, is there a way to share the web link to run shiny server through Rstudio?
You can distribute your shiny app on https://www.shinyapps.io/ and share it with others.
If you will really want to host your app with Rstudio-server, maybe this answer is helpful:
Publish Rstudio Shiny App in intranet

Resources