run_app() functionWhen 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 look 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 arguments to the
function to be used inside the application, from UI or from server side,
which you can get with get_golem_options().
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 functions for
deployment on various platforms.
For Git backed deployment on Posit (for details
a manifest.json file is required which can be added (or
updated) via:
{renv}{renv} - CASE 1 : you didn’t use renv during
development processthis functions will create a “deploy” folder containing :
deploy/
+-- Dockerfile
+-- Dockerfile_base
+-- yourgolem_0.0.0.9000.tar.gz
+-- README
\-- renv.lock.prodthen 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 development, 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"
))and activate {renv} with
{renv} - CASE 2: you already have a
renv.lock file for your project# 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.prodthen follow the README file.