我创建了一个R Shiny应用程序,希望与网络中的同事共享。我尝试在我的计算机上托管该应用程序,以便网络上的其他用户可以访问它并将其与他们的数据文件一起使用。
我试过了:
runApp("appname",host="0.0.0.0",port=3986)
还有:
runApp("appname",host="DNSMachinename")
后一次尝试导致以下错误:
虽然我的同事可以访问这个应用程序,但它并不像在我的机器上那样运行。谢谢你的帮助。
由于您对Shiny服务器表现出了兴趣,我可能更方便地在"答案"中发表一些想法,因为它不太适合评论。
既然你有一个小组,我强烈建议你看看R服务器和闪亮的服务器。
(1) 闪亮的服务器
你可以在一台旧电脑上完全安装Shiny服务器,我建议你使用像Ubuntu这样的Linux操作系统,这将为你节省一些学习教程的时间。我们有一个集群,我们使用其中一台服务器同时托管一台闪亮的服务器和一台闪亮服务器。只有内部员工才能访问它,而且它在公司的网络中。
(2) R服务器
我不太确定你用哪个环境来编程R,但如果你想在你的团队中忽略R。拥有一个稳定的环境,让公司内部的每个人都可以通过身份验证访问,这是一个很好的入门方法。
(3) shinyapps.io
是一个免费的平台,你可以托管你闪亮的应用程序,它是阿尔法版本,我不认为有太多的身份验证或安全内置。这里的链接描述是在shinyapps.io 上托管的一个例子
(4) AWS自由层
如果你以前从未使用过AWS,你可以在AWS上免费运行一年的微实例!我强烈建议使用AWS,而不是使用旧电脑。
如果您仍在努力获得服务器或云解决方案的支持,我刚刚完成了针对这个确切问题的RInno包的开发,即当公司不会为Shiny server付费或云服务存在安全问题时。
开始:
install.packages("RInno")
require(RInno)
RInno::install_inno()
然后你只需要调用两个函数来创建一个安装框架:
create_app(app_name = "myapp", app_dir = "path/to/myapp")
compile_iss()
如果您想为没有安装R的同事添加R,请将include_R = TRUE
添加到create_app
:
create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE)
默认情况下,它包括shine、magrittr和jsonlite,所以如果您使用其他包,如ggplot2或plotly,只需将它们添加到pkgs
参数中即可。您还可以在remotes
参数中包含GitHub包:
create_app(
app_name = "myapp",
app_dir = "path/to/myapp"
pkgs = c("shiny", "jsonlite", "magrittr", "plotly", "ggplot2"),
remotes = c("talgalili/installr", "daattali/shinyjs"))
如果您对其他功能感兴趣,请查看FI Labs-RInno
shiny
教程列出了许多共享应用程序的方法。我特别在应用程序的某个地方托管了一个zip
文件,并让你的同事使用runUrl
自动下载应用程序并在本地运行。通过这种方式,人们可以继续运行最新版本的应用程序,但它不会在您的机器上运行。