托pipe和build立自己的shiny的应用程序没有发光的服

我试图让我的同事可以使用shiny的应用程序,而不必运行,甚至没有R安装。

所以我读了这个wegpage http://shiny.rstudio.com/tutorial/lesson7/ ,发现这句话:

' 如果您熟悉虚拟主机或可以访问IT部门,则可以自行托pipeShiny应用程序。 在“ 以网页共享 ”的方式下。

我想知道是否有人可以指点我一些关于这个话题的帮助? 像最低要求(甚至是教程)。 问题是,我的公司必须对networking托pipe和安全等一些限制,并不会(现在)支付一个shiny-server-pro。

但是上面的这句话给了我希望自己设置一些东西来说服他们。

谁能帮忙?

如果您的PC和您的同事PC属于同一个局域网,这很容易实现。 只需运行你的应用程序:

runApp(host="0.0.0.0",port=5050) 

通过host参数设置的值表示接受任何连接(不只是从本地主机)。 port参数可以假定你想要的任何值(只要确保避免select其他服务使用的端口,如sshhttp )。 然后,注意你的本地IP(如果你是在Linux下,你可以通过ifconfig查看)。 说你的IP是192.168.1.70 。 你的同事可以通过在他们的浏览器192.168.1.70:5050的地址栏中插入你的应用程序,即你的IP后跟:和你select的端口号。

如果你想从局域网外访问,当有人通过5050端口连接到你的公共IP时,你可以把你的路由器连接到你的PC。

像这样在局域网上共享应用程序是非常酷的,但它是一种黑客攻击。 我曾经和一些同事一起尝试过,它可以工作,但这不是一个可持续解决scheme,而是一个办公室的窍门。

我刚刚完成了针对这个确切问题开发RInno软件包,即当公司不支付Shiny Server或者云服务存在安全问题时。

开始:

 install.packages("RInno") require(RInno) RInno::install_inno() 

那么你只需要调用两个函数来创build一个安装框架:

 create_app(app_name = "myapp", app_dir = "path/to/myapp") compile_iss() 

如果您希望将R包含在没有安装它的同事中,请将include_R = TRUE添加到create_app

 create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE) 

它默认包括shiny,magrittr和jsonlite,所以如果你使用其他软件包如ggplot2或者plotly,只要将它们添加到pkgs参数。 您也可以将GitHub软件包添加到remotes参数中:

 create_app( app_name = "myapp", app_dir = "path/to/myapp" pkgs = c("shiny", "jsonlite", "magrittr", "plotly", "ggplot2"), remotes = c("talgalili/installr", "daattali/shinyjs")) 

如果您对其他function感兴趣,请查看FI Labs – RInno