possible to run RShiny app without opening an R environment?

I know this is an old discussion, but it might help someone knowing this can be done now. You can create a standalone shiny app, that runs on computers WITHOUT needing to install R nor any library. There is a relatively simple way of doing it (currently I've done it only for Windows users, but something for MacOS should be around too), following these detailed steps: http://www.r-bloggers.com/deploying-desktop-apps-with-r/ .Other option could be uploading the app on the Shiny server.


You can now use the RInno package for this type of thing. To get setup:

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

Then you just need to call two functions to setup an installation framework:

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

If you would like to include R, add include_R = TRUE to create_app:

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

It defaults to include shiny, magrittr and jsonlite, so if you are using other packages like ggplot2 or plotly, just add them to the pkgs argument. You can also include GitHub packages to the remotes argument:

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

If you are interested in other features, check out FI Labs - RInno


RStudio != R

There is a simple command-line interface to R, which you can run on Windows by running R.exe in the bin folder of your R installation.

There's also Rscript.exe, which can run an expression or a script file. For example:

C:\Program Files\R\R-2.15.2\bin\RScript -e hist(runif(1000))

will (given the right paths) create a PDF file with a histogram in it.

So,

  • your co-worker needs an R installation
  • you need that installation to have all the packages to run shiny
  • or you add a bunch of install.packages() lines to your code
  • you need to give them a folder with your shiny code
  • you add a windows .BAT file for them to click
  • they run that, it calls Rscript.exe which starts the shiny package you gave them

Or get it hosted on the RStudio guys' public shiny server, but then we can all see it.


I faced the same problem and used the two following solutions that both worked fine.

Publish the app on shinyapps.io

Advantage: the app is accessible anytime from anywhere.

Drawback: only 25 active hours per month.

Method:

  1. Go to https://www.shinyapps.io/ and create a free account
  2. Configure rsconnect to link R with your new shinyapps account (step by step explanations in the shinyapps documentation)
  3. In Rstudio, click "publish" (next to run app button)
  4. Get the app address from the shinyapps.io dashboard and send it to your co-workers.

Share app on LAN

Advantage: as much active hours as you need.

Drawbacks: requires being on the same local network (or use a VPN). The app must be running constantly on a computer connected to this network. Furthermore, it cannot perform computation for more than one user at a time.

Method: You need to run the app on your computer and share it on the LAN by changing the runapp command to:

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

Then the app is accessible on http://[your-IP-address]:5050 (see this: Hosting LAN Shiny apps run from command line)