在企业内部发布RStudio Shiny应用程序

13

我正在尝试构建一个 Rstudio/Shiny 应用程序并将其发布到我们的内部网络,以便我们办公室中的每个人都可以看到它。作为一位 Windows 用户,我发现有关如何在 Linux 环境中设置闪亮服务器的在线说明对我来说有点困难。有没有简单的方法可以让我实现这个目标而不会弄乱 Linux?即使我必须这样做,是否有一种简单的方法只让我们公司内部的人员访问我的网页而不是所有人都能访问。谢谢!


Shiny服务器需要Linux。如果您无法获得Linux机器进行托管,则可以通过虚拟机在Windows上安装Linux,或租用Amazon Webservices EC2实例。我已经尝试过这两个选项,它们都相当简单。明天早上我可以发布我所遵循的步骤。 - Matthew Plourde
@MatthewPlourde,谢谢。期待您的帖子。我现在正在尝试在我的Windows机器上安装VMware。 - user2854008
如果每个人的电脑上都有R的副本,那么他们可以在本地运行您的闪亮应用程序,无需服务器。但是这样就没有共享任何内容了。如果更改您的应用程序,则需要重新分发它(这可能只意味着将其放在共享驱动器/私人“dropbox”帐户上)。 - Spacedman
或者将其放在(私人)github / bitbucket帐户上,并将其拉出以重新加载。 devtools使整个过程非常顺畅。 - Roman Luštrik
@MatthewPlourde 你有没有把那些步骤发布在任何地方? - Scott
3个回答

13

你不需要Shiny服务器,只需使用带有Shiny的R实例即可。

http://rstudio.github.io/shiny/tutorial/#ui-and-server

http://shiny.rstudio.com/

Shiny会自动在本地主机上运行...

如果您想让您的同事能够访问它,您需要将其更改为您自己的IP地址。

ip="192.168.178.10" # change this!
runApp("../microplate",host=ip) # change microplate to the name of your shiny package/app

2
从Shiny服务器页面上看,“虽然Shiny包本身包含一个基本的Web服务器,但它只设计用于一次提供一个应用程序。” - Matthew Plourde
这是真的,在R控制台上将在前台运行,启动多个R控制台以解决此问题... - phonixor
这个答案对我没用。尝试在我的IP(或我的计算机名称)上运行。以下来自官方文档的短语如何与您的答案配合使用?“为了允许其他客户端连接,请改用值“0.0.0.0”(这是Shiny在0.8.0及更早版本中硬编码的值)。只是为了明确,两者都不起作用。是防火墙问题还是其他原因? - Amit Kohli
可以有很多种方法...尝试使用计算机的IP地址进行ping测试。 - phonixor
我有同样的问题,这个问题几乎解决了我的问题。然而,当我在另一台计算机的Web浏览器中输入主机端口组合,例如192.168.178.10:8100,在同一本地网络中没有连接。 - Agarp

2

RStudio还提供了一个托管的Shiny选项,目前处于Alpha测试阶段。您可以在此处注册:https://www.shinyapps.io/admin/#/signup

使用托管的Shiny,开发人员可以专注于构建应用程序,而RStudio将负责管理服务器、监控性能并确保运行时间。


1
我正在使用以下方式分享应用程序:

runApp(list(ui=ui, server=server), host="0.0.0.0", port=1234)

如果你的ui.R和server.R在同一个文件中。
runApp("C:/shinyapp", host="0.0.0.0", port=1234)

(如果您在shinyapp文件夹中有一个ui.R和server.R文件作为两个文件) 然后,我会发送我的IP地址,以及我设置的端口作为超链接。假设我的IP地址是192.168.178.10,我会发送:

http://192.168.178.10:1234

监控在我的内部网络共享的闪亮应用程序


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接