반짝이는 서버없이 자체 반짝이는 앱 호스팅 및 설정
동료가 실행하거나 R을 설치하지 않고도 반짝이는 앱을 사용할 수 있도록 노력하고 있습니다.
그래서이 웹 페이지를 읽고 다음 문장을 찾았습니다.
웹 호스팅에 익숙하거나 IT 부서에 액세스 할 수있는 경우 Shiny 앱을 직접 호스팅 할 수 있습니다.
' 웹 페이지로 공유 '섹션 아래에 있습니다.
어떻게 할 수 있습니까?
문제는 우리 회사가 웹 호스팅 및 보안 등과 관련된 특정 제한 사항에 묶여 있고 (현재로서는) 반짝이는 서버 프로에 대해 지불하지 않는다는 것입니다.
그러나 위의 문장은 그들을 설득하기 위해 스스로 무언가를 설정하고 싶다는 희망을줍니다.
PC와 동료 PC가 동일한 LAN에 속해 있다면이 작업은 매우 쉽습니다. 다음을 통해 앱을 실행하십시오.
runApp(host="0.0.0.0",port=5050)
host
인수를 통해 설정된 값 은 로컬 호스트뿐만 아니라 모든 연결을 수락하도록 말합니다. port
인수는 (처럼 다른 서비스에서 사용하는 포트를 선택하지 않도록 보장하려는 값 가정 할 수 있습니다 ssh
또는 http
). 그런 다음 로컬 IP를 기록해 둡니다 (리눅스를 사용하는 경우를 통해 확인할 수 있음 ifconfig
). 귀하의 IP가입니다 192.168.1.70
. 동료는 브라우저의 주소 표시 줄에 192.168.1.70:5050
사용자의 IP :
와 선택한 포트 번호를 입력 하여 앱을 사용할 수 있습니다.
LAN 외부에서 액세스하려는 경우 누군가 5050 포트를 통해 공용 IP에 연결할 때 라우터를 PC로 보낼 수 있습니다.
이와 같이 LAN을 통해 앱을 공유하는 것은 꽤 멋지지만 일종의 해킹입니다. 동료들과 시도 해봤는데 효과가 있지만 지속 가능한 솔루션 이라기보다는 사무실 속임수에 가깝습니다.
나는 회사가 Shiny Server에 대한 비용을 지불하지 않거나 클라우드 서비스에 대한 보안 문제가있는 경우와 같은 정확한 문제에 대한 RInno 패키지 개발을 방금 완료했습니다 .
시작하려면 :
install.packages("RInno")
require(RInno)
RInno::install_inno()
그런 다음 설치 프레임 워크를 만들기 위해 두 개의 함수를 호출하면됩니다.
create_app(app_name = "myapp", app_dir = "path/to/myapp")
compile_iss()
당신이 당신의 동료에 대한 연구를하고 싶으 시다면 누가 추가가 설치되어 있지 않은 include_R = TRUE
에 create_app
:
create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE)
기본적으로 shiny, magrittr 및 jsonlite를 포함하므로 ggplot2 또는 plotly와 같은 다른 패키지를 사용하는 경우 pkgs
인수에 추가하기 만하면 됩니다. remotes
인수에 GitHub 패키지를 포함 할 수도 있습니다 .
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를 확인 하세요.
오픈 소스 솔루션 shinyproxy를 살펴보고 싶을 수도 있습니다.
shinyproxy를 사용하면 앱을 호스팅하기 위해 Docker 컨테이너에 앱을 래핑해야합니다. 다양한 인증 및 확장 방법을 사용할 수 있습니다.
최근 로컬에있는 Centos 7 Linux OS 서버에 Shiny를 설치했습니다. 우리는 대부분 아래 가이드를 사용했습니다. https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7
가이드를 사용하는 다른 사람이 답을 볼 수 있도록 여기에서 설정 문제에 대한 질문을 자유롭게 물어보십시오!
우리는 또한 콘텐츠가 민감하기 때문에 우리 자신을 선택하여 AWS 서버에서 푸시하는 방법을 검토했습니다. 그렇지 않으면 두 솔루션이 비슷해 보였습니다. Linux 및 Shiny 시스템은 가볍기 때문에 무료 Amazon 서버에서 실행할 수 있습니다!
'Development Tip' 카테고리의 다른 글
Android에서 Node.Js 실행 (0) | 2020.10.05 |
---|---|
ASP.NET Core 2.0 Razor 대 Angular / React / etc (0) | 2020.10.05 |
.NET에는 기본 제공 EventArgs가 있습니까? (0) | 2020.10.05 |
코드 우선 엔티티 프레임 워크에서 뷰를 사용하는 방법 (0) | 2020.10.05 |
대규모 Node.js 프로젝트를 구성하는 방법 (0) | 2020.10.05 |