网站二级域名+cploar+shinyproxy构建web APP私有服务器
Web APP是一种功能相对单一的,可以在浏览器中运行的应用程序,构建相对容易且易于传播,被认为是临床预测模型最佳的载体。
一种理想的情况,就是我们将构建的各种临床预测模型放置到网上,以“微服务”的形式存在,需要的时候登陆获取结果,作为临床决策的参考,辅助最终的临床决策。而实现这个理想情况的方案是,租一个服务器,建立一个网站,将各种预测模型部署到服务器上,提供服务,但是因为预测模型往往尺寸比较大,会产生相当的费用,不适合像我这样的“爱好者”。
下面介绍我的一个解决方案,主要是围绕shinyproxy代理功能和cploar 内网穿透功能,供大家参考:
1. shinyproxy
shinyproxy是主角之一,它以docker的镜像为后台,为各种Docker镜像提供了一个界面,适合shiny和streamlit构建的web APP。在我这个方案中,将预测模型构建成docker镜像,而shinyproxy的功能是,链接docker镜像,提供简单的列表形式的界面,并让浏览可以访问。到这里,web APP程序部署在本地电脑上,可以实现APP的本地访问,还不能进行外网访问。
这部分可以说是免费的,购置电脑是唯一的费用。
2. cpolar
为了解决外网访问的问题, 使用cploar内网穿透技术,简单原理是依托cpolar的二级域名进行外网访问。coplar有三种解决方案,一种是随机的二级域名,域名会每天变化;第二种是固定的二级域名;第三种,是自定义的域名,可以通过DNS解析,跳转到cpolar的域名上,实现自定义域名访问。
后面两种需要是收费服务,但在可接受的范围内。
3.建立一个网站
这是为了在cploar中使用有自己的域名,因为shinyproxy只是一个简单的界面,可以用二级域名。简单流程是,首先是在服务器端建立一个二级域名,然后在cpolar处预留一个域名,最后在域名服务商处进行DNS解析,将二级域名链接到cpolar上预留的域名上,后两步可以参考cploar的文档说明。这里说一个自己走的弯路,刚开始没有在服务器端建立二级域名,导致后面的操作怎么也不成功。
建立网站是需要一定费用的,购买域名、服务器等,大家可以根据自己的情况取舍。
通过以上步骤,已经可以让在本地机器上构建的web APPDocker 镜像通过shinyproxy 和cploar 被外网访问,借此提供一定的服务。