R Shiny - 如何在网络内共享应用程序

问题描述 投票:6回答:3

我创建了一个R Shiny应用程序,我想在我的网络中与我的同事分享。我尝试在我的计算机上托管应用程序,以便网络中的其他用户可以访问它并将其与数据文件一起使用。

我试过了:

    runApp("appname",host="0.0.0.0",port=3986)

并且:

    runApp("appname",host="DNSMachinename")

后一种尝试导致以下错误:

虽然我的同事能够访问该应用程序,但它并不像在我的机器上那样运行。谢谢您的帮助。

r shiny intranet
3个回答
3
投票

既然你表现出对Shiny服务器的兴趣,那么在“回答”中发表一些想法可能会更方便,因为它不适合评论。

既然你有一个团队,我强烈建议你看看R服务器和闪亮的服务器。

(1)Shiny server

您可以在旧计算机上完全安装Shiny服务器,我建议使用像(Ubuntu)这样的Linux操作系统,这样可以节省一些时间。我们有一个集群,我们使用其中一个服务器同时托管一个闪亮的服务器和闪亮的服务器。只有内部员工才能访问它,而且它位于公司的网络中。

(2)R server

我不确定你使用哪个环境来编程R,但是如果你想在你的团队中改进R。拥有一个稳定的环境,公司内部的每个人都可以通过身份验证进行访问,这是一个很好的入门方式。

(3)shinyapps.io

是一个免费的平台,你可以托管你的闪亮的应用程序,它是alpha版本,我不认为有很多内置的身份验证或安全性.HEREenter link description here是一个托管在shinyapps.io上的示例

(4)AWS free tier

如果您以前从未使用过AWS,那么您可以在AWS上免费运行一个微实例一年!我强烈建议使用旧的计算机使用AWS代替F *。


3
投票

如果您仍然试图获得服务器或云解决方案的支持,我刚刚完成了针对这个问题的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)

它默认包含有光泽,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


3
投票

shiny教程列表a number of ways to share your app。我特别在应用程序的某个地方托管zip文件,并让你的同事使用runUrl自动下载应用程序并在本地运行它。通过这种方式,人们可以继续运行最新版本的应用程序,但它不能在您的计算机上运行。

© www.soinside.com 2019 - 2024. All rights reserved.