If you are already familiar with Shiny Server Pro and are planning to move to RStudio Connect to take advantage of the new collaboration features, deployment enhancements, and content management features, this guide will help you transition between servers. In some cases, features that were only available by editing the Shiny Server Pro configuration file are now conveniently available directly in the RStudio Connect user interface.
However, there is not a direct one-to-one relationship between Shiny Server Pro features and RStudio Connect features. Certain Shiny Server Pro features either do not make sense in the context of RStudio Connect, or are not yet available. Most notably, if you depend on any of the following features in Shiny Server Pro, you might consider waiting to upgrade to RStudio Connect:
- Kerberos support
- Running the server as a non-root user
- High-availability configurations and load balancing
Migration of Content
Shiny Server Pro does not use a manifest of package dependencies for the applications it hosts, while RStudio Connect does. Therefore, it is not possible to automatically migrate content from Shiny Server Pro to RStudio Connect.
The simplest approach to migrating content is to open Shiny applications in the RStudio IDE and publish them to an RStudio Connect server.
Migration of Settings
Settings for content deployed to RStudio Connect are currently managed individually; each application and document you publish must be configured separately. The following is a list of settings that you may be using in Shiny Server Pro, with their parallel settings in RStudio Connect.
Hosting and Administration
- Custom headers
Shiny Server Pro: set_header directive in /etc/shiny-server/shiny-server.conf
RStudio Connect: Server.CustomHeader setting in /etc/rstudio-connect/rstudio-connect.gcfg
- Specify SockJS protocols
Shiny Server Pro: disable_protocols directive in /etc/shiny-server/shiny-server.conf
RStudio Connect: Applications.DisabledProtocols setting in /etc/rstudio-connect/rstudio-connect.gcfg
- Customize the run user for each application
Shiny Server Pro: run_as directive in /etc/shiny-server/shiny-server.conf
RStudio Connect: Administrators can customize the RunAs user on a content-specific level in the Connect dashboard, on the Access tab of the application or document settings.
- Customize Shiny scaling settings
Shiny Server Pro: utilization_scheduler directive in /etc/shiny-server/shiny-server.conf
RStudio Connect: The default settings are configured in the Scheduler section of /etc/rstudio-connect/rstudio-connect.gcfg, and custom scheduler settings for individual applications can be set in the Connect dashboard in the Performance tab of an application or document page.
- Set the R version for a given application
Shiny Server Pro: r_path directive within a location in /etc/shiny-server/shiny-server.conf
RStudio Connect: RStudio Connect uses Packrat to manage the packages associated with each application, and when you publish an application it will identify a compatible version of R automatically based on the author's environment. That same R installation is used any time R is needed for that content; there is no need to set the version in a configuration file on the server.
- Host a directory of applications
Shiny Server Pro: site_dir directive within a location in /etc/shiny-server/shiny-server.conf
RStudio Connect: Individuals can publish their content into RStudio Connect themselves, rendering this feature redundant.
- Local application configurations
Shiny Server Pro: allow_app_override directive in /etc/shiny-server/shiny-server.conf, in conjunction with a .shiny_app.conf file in each application
RStudio Connect: Application authors can manage their content independently in the Connect dashboard
Metrics and Session Management
- Historical system metrics
Shiny Server Pro: admin directive in /etc/shiny-server/shiny-server.conf enables the admin dashboard
RStudio Connect: Metrics section of /etc/rstudio-connect/rstudio-connect.gcfg enables the collection of historical metrics, which can then be viewed [where]
- Graphite export
Shiny Server Pro: graphite_enabled directive in /etc/shiny-server/shiny-server.conf
RStudio Connect: Metrics.GraphiteEnabled setting in /etc/rstudio-connect/rstudio-connect.gcfg
- Health check
Shiny Server Pro: /__health-check__ endpoint
RStudio Connect: /__health-check__ endpoint
Support for session timeouts, killing sessions and processes, and application-level metrics is not yet available in RStudio Connect.
Detailed information on configuring authentication in RStudio Connect, including links to examples, can be found in this article.
- Flat file authentication
Shiny Server Pro: auth_passwd_file directive
RStudio Connect: Authentication.Provider = password
- PAM authentication
Shiny Server Pro: auth_pam directive
RStudio Connect: Authentication.Provider = pam, and [PAM] setting
- LDAP and Active Directory authentication
Shiny Server Pro: auth_ldap or auth_active_dir directive
RStudio Connect: Authentication.Provider = ldap, and [LDAP] setting
- Proxied authentication
Shiny Server Pro: auth_proxy directive
RStudio Connect: Authentication.Provider = proxy, and [ProxyAuth] setting
- Google authentication
Shiny Server Pro: auth_google directive
RStudio Connect: Authentication.Provider = oauth2, and [OAuth2] setting
- SSL support
Shiny Server Pro: ssl directive
RStudio Connect: [Https] section
Kerberos support is not yet available in RStudio Connect.