【问题标题】:RShiny - How to share app within networkR Shiny - 如何在网络内共享应用程序
【发布时间】:2014-11-11 20:52:39
【问题描述】:

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

我试过了:

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

还有:

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

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

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

【问题讨论】:

  • 也许可以考虑在 AWS 上使用闪亮的服务器。如果您愿意,我可以发布更多详细信息作为答案。 AWS 可以限制 IP 级别的访问,并且闪亮的服务器本身具有内置的身份验证。
  • 是否可以将旧计算机设置为托管 Shiny 应用程序的服务器?我很想迁移到 AWS,但在这一点上,我是少数在工作场所使用 Shiny 和 R 的人之一,我需要展示我们可以获得的价值来证明迁移到 AWS 的合理性。跨度>
  • 我在下面发布了一些我认为有助于为团队设置 R 环境的信息。
  • 通过在我的工作站上的虚拟机上设置闪亮的服务器,我成功地与网络上的同事共享应用程序。但最终,我们迁移到了 AWS。
  • 这就是我正在尝试采取的步骤,一旦我的上级看到我认为我们处于需要 AWS 或同等水平的规模的价值。

标签: r shiny intranet


【解决方案1】:

如果您仍在尝试购买您的服务器或云解决方案,我刚刚完成了针对这个确切问题的 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 参数。您还可以将 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"))

如果您对其他功能感兴趣,请查看FI Labs - RInno

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 谢谢,我正在努力让我的组织使用 R 和 Shiny,但我们中精通 R 的人并不多。所以我希望让用户使用这些应用程序,但通过部署由于数据的敏感性,它在组织的网络中而不是在网络上。
    • 我建议的解决方案不涉及在互联网上发布应用程序。这种解决方案可以在内网情况下正常运行。只要有 URL,在本地公司网络或 Internet 上,都可以使用此解决方案。但是,这确实需要运行安装了 R 的应用程序的人员。我看到的唯一其他选择是使用专用服务器来托管应用程序。
    【解决方案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*。

    【讨论】:

    • 感谢您的信息。据我了解,只有 Shiny Server 的专业版提供身份验证,嗯?此时的诀窍是为非 R 用户提供安全、免费和可访问的东西,这是一个难以破解的难题,但如果我成功了,资金就会到来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2014-01-08
    相关资源
    最近更新 更多