查看原文
其他

shiny-server内网穿透

JunJunLab 老俊俊的生信笔记 2022-08-15

写好的shiny App怎么分享?

  • 通过源代码分享上传githup
  • 发布在shiny官网上shinyapps.io
  • 制作成 Desktop exe等软件形式
  • 部署在服务器上shiny-server

1、源代码分享和上传到githup是比较方便的,但是使用的话得下载自己运行,还需要用户拥有R软件才行。
2、发布在shiny官网上方便,随时都可以使用,但是就是国外网址进入比较慢,而且过一段时间不用容易disconect,必须reload或刷新才行,此外还有数量限制,5个免费APP,我 “第二期文章” 讲过。

制作成可分发的应用会比较麻烦,比较容易报错,可参考这两篇文章:

  • 将Shiny APP搭建为独立的桌面可执行程序
  • 如何将Shiny打包成独立的客户端应用程序

在服务器上运行一个app

# app文件夹放在、/srv/shiny-server/目录下
(base) root@DESKTOP-NH8LU7H:/srv/shiny-server# ls -l
drwxr-xr-x 3 root root 4096 Jun  2 13:46 CountToTPM-FPKM
drwxr-xr-x 2 root root 4096 Apr 26 22:30 hello
-rw------- 1 root root  428 Jun  2 16:32 nohup.out

查看自己的ip地址:  <172.24.107.255>

(base) root@DESKTOP-NH8LU7H:/srv/shiny-server# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.24.107.255  netmask 255.255.240.0  broadcast 172.24.111.255
        inet6 fe80::215:5dff:fe17:273c  prefixlen 64  scopeid 0x20<link>
        ether 00:15:5d:17:27:3c  txqueuelen 1000  (Ethernet)
        RX packets 587974  bytes 723570787 (723.5 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 252269  bytes 21888743 (21.8 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 3339  bytes 5390676 (5.3 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 3339  bytes 5390676 (5.3 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

启动shiny-server服务,挂在后台

(base) root@DESKTOP-NH8LU7H:/srv/shiny-server# nuohup shiny-server &
  • 在浏览器输入ip:3838/app文件夹名称即可运行app
  • http://172.24.107.255:3838/CountToTPM-FPKM/
  • 这样就在本地网页上运行了我们的app
  • 如果运行不了,去/var/log/shiny-server/目录下寻找报错的log文件,一般是没有安装app内需要的R包,在终端进入R安装一下就行了

内网穿透通过外网访问

  • 本地网页上运行的app别人是访问不了也无法使用的,那么我们可以使用一些工具能够达到外网也能进入的效果

by the way,插播一波广告,B站上生信技能树shiny的免费教学视频,shiny基础到shiny的部署等,同时也感谢生信技能树的分享和传播。

开始操作:

  • 下载utools,注册并登录

  • 进入utools下载安装内网穿透插件,打开插件

  • 按下图填入我们的网址


  • 外网域名的名字随意填
  • 内网地址填入我们本地ip地址
  • 内网端口3838
  • 填好以后点击连接,连接成功以后复制地址,上下两个均可
  • 最后在我们的浏览器输入
    复制的网址/CountToTPM-FPKM/
  • https://zhoulab.cn.utools.club/CountToTPM-FPKM/

这样任何人都可以通过这个网址使用你的app了,不会像shinyapps.io官网这么慢了。

今天的分享就到这里了,敬请期待下一篇!

最后欢迎大家分享转发,您的点赞是对我的鼓励肯定

如果觉得对您帮助很大,打赏一下吧!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存