Shiny 是由Rstudio推出的基于R语言构建Web应用的产品,可让用户无需编写繁重的代码即可轻松构建交互式的Web应用程序供人们进行访问。Shiny分免费版和按需付费版,Rstudio提供了一个较小的云空间可以供所有人免费部署在shinyapps上,如果需要更多的空间运行则需要按需付费;另一种形式是部署在本地需要授权:

https://rstudio.com/pricing/

于是Open Analytics 基于Shiny的开源版本开发了ShinyProxy,提供了一系列扩展的增强特性(即shiny的收费功能),如身份验证和授权、 TLS 协议支持、Shiny 应用程序容器化及多并发支持等,同时 ShinyProxy 是基于 Apache 许可的开源项目(可以商用)。

ShinyProxy 前端使用Java 框架 Spring Boot 来完成Web应用程序的用户认证、鉴权及后端 Shiny 应用的调度和管理,后端基于 Docker 技术灵活运行封装了 R 应用的 Shiny 容器。

来自:https://aws.amazon.com/cn/blogs/china/building-enterprise-level-shiny-platform-based-on-amazon-eks/

部署ShinyProxy也非常简单,下面一步步教大家来部署

1)首先需要安装java和docker:

java推荐1.8版本:官方下载

docker安装:

docker安装好后我们需要开放其2375端口访问

  • Ubuntu 14.04:修改/etc/default/docker文件,DOCKER_OPTS="-H tcp://127.0.0.1:2375 -H unix://"然后重启docker
  • Ubuntu 16.04或者18.04:创建/etc/systemd/system/docker.service.d/override.conf文件,添加如下内容,然后重启docker(可以参考官方文档https://success.docker.com/article/using-systemd-to-control-the-docker-daemon):
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:// -D -H tcp://127.0.0.1:2375
  • Windows下修改C:\ProgramData\Docker\config\daemon.json文件内容:"hosts": ["tcp://127.0.0.1:2375"]然后重启docker

2)ShinyProxy下载

官网下载:https://shinyproxy.io/downloads

github下载:https://github.com/openanalytics/shinyproxy/releases

3)拉取示例镜像并配置shinyproxy


sudo docker pull openanalytics/shinyproxy-demo

shinyproxy配置文件格式是基于yaml,可以参考:https://shinyproxy.io/documentation/configuration

4)启动shinyproxy


java -jar shinyproxy-2.4.0.jar

然后我们就可以登录shinyproxy了

参考资料:

1.https://aws.amazon.com/cn/blogs/china/building-enterprise-level-shiny-platform-based-on-amazon-eks/

2.https://shinyproxy.io/

3.https://shiny.rstudio.com/