我正在尝试为我的同事提供闪亮的应用程序,而无需他们运行甚至安装R .
所以我读了this webpage并发现了这句话:
如果您熟悉Web托管或可以访问IT部门,您可以自己托管您的Shiny应用程序 .
在“分享为网页”部分 .
我想知道是否有人能指点我对这个话题有所帮助?像最低要求(甚至是教程) . 问题是我的公司必然会受到关于网络托管和安全等的某些限制,并且不会(现在)支付闪亮的服务器专业版 .
但上面的句子让我希望自己设置一些东西来说服他们 .
我正在尝试为我的同事提供闪亮的应用程序,而无需他们运行甚至安装R .
所以我读了this webpage并发现了这句话:
如果您熟悉Web托管或可以访问IT部门,您可以自己托管您的Shiny应用程序 .
在“分享为网页”部分 .
我想知道是否有人能指点我对这个话题有所帮助?像最低要求(甚至是教程) . 问题是我的公司必然会受到关于网络托管和安全等的某些限制,并且不会(现在)支付闪亮的服务器专业版 .
但上面的句子让我希望自己设置一些东西来说服他们 .
4 回答
如果您的PC和同事PC属于同一个局域网,则很容易实现 . 只需运行您的应用:
通过
host
参数设置的值表示接受任何连接(不仅仅是来自localhost) .port
参数可以采用您想要的任何值(只是确保避免选择其他服务使用的端口,如ssh
或http
) . 然后,记下你的本地IP(如果你在linux下,你可以通过ifconfig
看到它) . 说你的IP是192.168.1.70
. 您的同事可以通过插入浏览器地址栏192.168.1.70:5050
来使用您的应用程序,即您的IP后跟:
以及您选择的端口号 .如果您想从局域网外部进行访问,当有人通过5050端口连接到您的公共IP时,您可以将路由器连接到PC .
像这样通过局域网共享应用程序非常酷,但它有点像黑客 . 我和一些同事一起尝试过,但它确实有效,但它更像是一种办公技巧,而不是一种可持续的解决方案 .
我刚刚完成了针对这个问题的RInno软件包的开发,即当公司不支付Shiny Server的费用或 Cloud 服务存在安全问题时 .
开始:
然后你只需要调用两个函数来创建一个安装框架:
如果您希望为未安装R的同事添加R,请将
include_R = TRUE
添加到create_app
:它默认包含shiny,magrittr和jsonlite,所以如果你使用ggplot2或plotly等其他包,只需将它们添加到
pkgs
参数即可 . 您还可以在remotes
参数中包含GitHub包:如果您对其他功能感兴趣,请查看FI Labs - RInno
我最近在本地安装的Centos 7 Linux OS服务器上安装了Shiny . 我们大部分都使用了以下指南 . https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7
请随时询问有关设置问题的任何问题,以便使用该指南的任何人都能看到答案!
我们还考虑在AWS服务器上推送它,选择我们自己的内容是敏感的 . 否则两种解决方案看起来相Linux和Shiny系统很轻,您可以在免费的亚马逊服务器上运行它!
您可能想看一下开源解决方案shinyproxy
使用shinyproxy,您必须将您的应用程序包装在docker容器中以托管它们 . 有不同的身份验证和扩展方法 .