runApp: Run Shiny Application

Description Usage Arguments Details Examples

View source: R/runApp.R

Description

Runs a Shiny application. This function normally does not return; interrupt R to stop the application (usually by pressing Ctrl+C or Esc). It runs max.sessions processes, each with a shiny::runApp working. So, comunication between users is limited, if this needs to be done, then save and load data on hard disk (or use RStudio server pro).

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
runApp(
  appDir = getwd(),
  ports = getOption("shiny.ports"),
  max.sessions = getOption("shinyParallel.max.sessions", 20L),
  users.per.session = getOption("shinyParallel.users.per.session", Inf),
  launch.browser = getOption("shiny.launch.browser", interactive()),
  host = getOption("shiny.host", "127.0.0.1"),
  workerId = "",
  quiet = FALSE,
  display.mode = c("auto", "normal", "showcase"),
  test.mode = getOption("shiny.testmode", FALSE)
)

Arguments

appDir

The application to run. Should be one of the following:

  • A directory containing server.R, plus, either ui.R or a www directory that contains the file index.html.

  • A directory containing app.R.

  • An .R file containing a Shiny application, ending with an expression that produces a Shiny app object.

  • A list with ui and server components.

  • A Shiny app object created by shinyApp.

ports

The TCP ports that the application should listen on. First port will be used for shinyParallel server, and the remaining for each session. If the ports are not specified, and the shiny.ports option is set (with options(shiny.ports = c(XX,..,ZZ)), then those ports will be used. Otherwise, use random ports.

max.sessions

Number of sessions to use. Defaults to the shinyParallel.max.sessions option, is set, or 2L if not.

users.per.session

Maximum number of admited users per each session. Defaults to the shinyParallel.users.per.session option, is set, or Inf if not.

launch.browser

If true, the system's default web browser will be launched automatically after the app is started. Defaults to true in interactive sessions only. This value of this parameter can also be a function to call with the application's URL.

host

The IPv4 address that the application should listen on. Defaults to the shiny.host option, if set, or "127.0.0.1" if not. See Details.

workerId

Can generally be ignored. Exists to help some editions of Shiny Server Pro route requests to the correct process.

quiet

Should Shiny status messages be shown? Defaults to FALSE.

display.mode

The mode in which to display the application. If set to the value "showcase", shows application code and metadata from a DESCRIPTION file in the application directory alongside the application. If set to "normal", displays the application normally. Defaults to "auto", which displays the application in the mode given in its DESCRIPTION file, if any.

test.mode

Should the application be launched in test mode? This is only used for recording or running automated tests. Defaults to the shiny.testmode option, or FALSE if the option is not set.

Details

The host parameter was introduced in Shiny 0.9.0. Its default value of "127.0.0.1" means that, contrary to previous versions of Shiny, only the current machine can access locally hosted Shiny apps. To allow other clients to connect, use the value "0.0.0.0" instead (which was the value that was hard-coded into Shiny in 0.8.0 and earlier).

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
## Not run: 
# Start app in the current working directory
shinyParallel::runApp()

# Start app in a subdirectory called myapp
shinyParallel::runApp("myapp")

## End(Not run)

## Only run this example in interactive R sessions
if (interactive()) {
  options(device.ask.default = FALSE)

  # Apps can be run without a server.r and ui.r file
  shinyParallel::runApp(list(
    ui = bootstrapPage(
      numericInput("n", "Number of obs", 100),
      plotOutput("plot")
    ),
    server = function(input, output) {
      output$plot <- renderPlot({
        hist(runif(input$n))
      })
    }
  ))


  # Another example
  shinyParallel::runApp(list(
    ui = fluidPage(column(3, wellPanel(
      numericInput("n", label = "Is it prime?", value = 7, min = 1),
      actionButton("check", "Check!")
    ))),
    server = function(input, output) {
      # Check if n is prime.
      # Not R optimized.
      # No Fermat, Miller-Rabin, Solovay-Strassen, Frobenius, etc tests.
      # Check if n is divisable up to n-1 !!
      isPrime <- function(n) {
        res <- TRUE
        i <- 2
        while (i < n) {
          res <- res && n %% i != 0
          i <- i + 1
        }
        return(res)
      }
      observeEvent(input$check, {
        showModal(modalDialog(
          ifelse(isPrime(isolate(input$n)),
            "Yes it is!", "Nope, not a prime."
          ),
          footer = NULL,
          easyClose = TRUE
        ))
      })
    }
  ))


  # Running a Shiny app object
  app <- shinyApp(
    ui = bootstrapPage(
      numericInput("n", "Number of obs", 100),
      plotOutput("plot")
    ),
    server = function(input, output) {
      output$plot <- renderPlot({
        hist(runif(input$n))
      })
    }
  )
  shinyParallel::runApp(app)
}

jcrodriguez1989/shinyParallel documentation built on June 25, 2021, 7:41 p.m.