托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其他服务使用的端口,如ssh
或http
)。 然后,注意你的本地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