Version 3.0.2 of the documentation is no longer actively maintained. The site that you are currently viewing is an archived snapshot. For up-to-date documentation, see the latest version.

ShinyProxy

shinyproxy-interface

What is ShinyProxy?

ShinyProxy is your favourite way to deploy data science apps in an enterprise context (Shiny, Dash, Streamlit, Jupyter notebooks, IDEs and more). It has built-in functionality for all standard authentication/authorization technologies, supports high availability and can scale to internet scale (i.e. no limits on concurrent usage of your data science apps).

Why use it?

  • you want to seamlessly deploy data science apps that were developed locally using Shiny, Dash streamlit etc. through a streamlined process
  • you need enterprise features but want to stay with true open source
  • you trust the JVM on the server side for managing the lifecycle of your apps securely
  • you want to get all benefits offered by container-based technology (Docker, Kubernetes or Docker Swarm)

Open Source

ShinyProxy is 100% open source, released under the Apache License version 2.0 and the sources are on Github.

asf logo

JVM Server Side

ShinyProxy uses time-tested and mature enterprise JVM technology bundled nicely as a Spring boot web application.

spring logo

Docker-based technology

When deploying a data science application with ShinyProxy, the application is simply bundled and installed into a Docker image. Every time a user runs an application, a container spins up and serves the application. This has numerous advantages:

  • fully isolated ‘workspace’ per session
  • plug and play different docker images (e.g. with different R versions or different Shiny versions for your Shiny apps)
  • full control on memory and cpu usage via the Docker, Docker Swarm or Kubernetes API
  • monitoring and debugging using standard tooling for your container orchestration technology
  • easily confine your application using native container technologies: restrict network, filesystem, process access etc.
  • provide dedicated memory and cpu resources for each user, guarantees that computations of users do not interfere with each other (works even with single-threaded applications like R)
  • archive every version of an application in order to achieve reproducibility
  • use existing tools for security scanning the images

docker logo

Why call it ShinyProxy?

ShinyProxy started as an open source enterprise solution for hosting Shiny applications. In the meantime it has become a generic solution for hosting many types of data science applications (see demos) and, as a matter of fact, you can host any web application you can embed in a Docker image.