run_app()
function
When launching the app, you might have noticed that the dev/run_dev.R
function calls run_app()
, which has the following structure:
run_app <- function(...) {
with_golem_options(
app = shinyApp(
ui = app_ui,
server = app_server
),
golem_opts = list(...)
)
}
This function might looks a little bit weird, but there’s a long story behind it, and you can read more about it there.
But long story short, this combination of with_golem_options
& golem_opts = list(...)
allows you to pass argument to the function to be used inside the application, from UI or from server side, which you can get with get_golem_options()
.
run_app(this = "that")
# And in the app
this <- get_golem_options("this")
The idea is to provide more flexibility for deployment on each platform you want to run your app on.
{golem}
The dev/03_deploy.R
file contains function for deploying on various platforms.
golem::add_rstudioconnect_file()
golem::add_shinyappsio_file()
golem::add_shinyserver_file()
# If you want to deploy via a generic Dockerfile
golem::add_dockerfile()
# If you want to deploy to ShinyProxy
golem::add_dockerfile_shinyproxy()
# If you want to deploy to Heroku
golem::add_dockerfile_heroku()
this functions will create a “deploy” folder containing :
deploy/
+-- Dockerfile
+-- Dockerfile_base
+-- yourgolem_0.0.0.9000.tar.gz
+-- README
\-- renv.lock.prod
then follow the README file
# If you want to deploy via a generic Dockerfile
golem::add_dockerfile_with_renv(output_dir = "deploy")
# If you want to deploy to ShinyProxy
golem::add_dockerfile_with_renv_shinyproxy(output_dir = "deploy")
If you would like to use {renv} during developpement, you can init a renv.lock file with
attachment::create_renv_for_dev(dev_pkg = c(
"renv",
"devtools",
"roxygen2",
"usethis",
"pkgload",
"testthat",
"remotes",
"covr",
"attachment",
"pak",
"dockerfiler",
"golem"
))
an activate {renv} with
renv::activate()
# If you want to deploy via a generic Dockerfile
golem::add_dockerfile_with_renv(output_dir = "deploy", lockfile = "renv.lock")
# If you want to deploy to ShinyProxy
golem::add_dockerfile_with_renv_shinyproxy(output_dir = "deploy", lockfile = "renv.lock")
this functions will create a “deploy” folder containing :
deploy/
+-- Dockerfile
+-- Dockerfile_base
+-- yourgolem_0.0.0.9000.tar.gz
+-- README
\-- renv.lock.prod
then follow the README file