sch*_*sie 83 web-hosting r shiny shiny-server
我正在尝试为我的同事提供闪亮的应用程序,而无需他们运行甚至安装R.
所以我看了这个网页 ,发现这句话:
如果您熟悉Web托管或可以访问IT部门,则可以自己托管您的Shiny应用程序.
在" 共享为网页 "部分下.
我怎样才能做到这一点?
问题是我的公司必然会受到关于网络托管和安全等的某些限制,并且不会(现在)支付闪亮的服务器专业版.
但上面的句子让我希望自己设置一些东西来说服他们.
nic*_*ola 79
如果您的PC和同事PC属于同一个局域网,则很容易实现.只需运行您的应用:
runApp(host="0.0.0.0",port=5050)
Run Code Online (Sandbox Code Playgroud)
通过host参数设置的值表示接受任何连接(不仅仅是来自localhost).该port参数可以假设你想要的(只是确保避免选择其他服务,如使用的端口的任何值ssh或http).然后,记下你的本地IP(如果你在linux下,你可以看到它ifconfig).说你的IP是192.168.1.70.您的同事可以通过插入浏览器的地址栏来使用您的应用程序192.168.1.70:5050,即您的IP后跟:以及您选择的端口号.
如果您想从局域网外部进行访问,当有人通过5050端口连接到您的公共IP时,您可以将路由器连接到PC.
Jon*_*ill 27
像这样通过局域网共享应用程序非常酷,但它有点像黑客.我和一些同事一起尝试过,但它确实有效,但它更像是一种办公技巧,而不是一种可持续的解决方案.
我刚刚为这个确切的问题开发了RInno软件包,即公司不支付Shiny Server的费用或云服务存在安全问题.
开始:
install.packages("RInno")
require(RInno)
RInno::install_inno()
Run Code Online (Sandbox Code Playgroud)
然后你只需要调用两个函数来创建一个安装框架:
create_app(app_name = "myapp", app_dir = "path/to/myapp")
compile_iss()
Run Code Online (Sandbox Code Playgroud)
如果您想为未安装R的同事添加R,请添加include_R = TRUE到create_app:
create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE)
Run Code Online (Sandbox Code Playgroud)
它默认包含shiny,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"))
Run Code Online (Sandbox Code Playgroud)
如果您对其他功能感兴趣,请查看FI Labs - RInno
您可能想看看开源解决方案Shinyproxy。
使用 Shinyproxy,您必须将应用程序包装在 docker 容器中以托管它们。
在这里,您可以找到有关如何在 docker 容器中部署闪亮应用程序的指南(顺便说一句,这是一个很好的做法,即使不使用 Shinyproxy 来维护应用程序依赖项)。
有不同的身份验证和缩放方法可用。
小智 5
我最近在本地的 Centos 7 Linux 操作系统服务器上安装了 Shiny。我们大部分情况下都使用了下面的指南。 https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7
请随时在此处提出有关设置问题的任何问题,以便使用该指南的其他人都可以看到答案!
我们还考虑将其推送到 AWS 服务器上,由于内容敏感,因此选择了我们自己的服务器。除此之外,两种解决方案看起来都很相似。Linux和Shiny系统很轻,你也许可以在免费的亚马逊服务器上运行它!