programing

빛나는 서버 없이 빛나는 자체 앱 호스팅 및 설정

jooyons 2023. 7. 19. 21:20
반응형

빛나는 서버 없이 빛나는 자체 앱 호스팅 및 설정

저는 동료들이 R을 실행하거나 설치하지 않고도 빛나는 앱을 사용할 수 있도록 노력하고 있습니다.

그래서 는 이 웹페이지를 읽고 다음 문장을 발견했습니다.

웹 호스팅에 익숙하거나 IT 부서에 액세스할 수 있는 경우 Shiny 앱을 직접 호스팅할 수 있습니다.

'웹 페이지로 공유' 섹션 아래에 있습니다.

어떻게 해야 하나요?

문제는 제 회사가 웹 호스팅과 보안 등과 관련하여 특정 제한 사항을 준수하고 있으며, 현재로서는 반짝반짝 빛나는 서버 프로에 대한 비용을 지불하지 않을 것이라는 점입니다.

하지만 위의 문장은 제가 그들을 설득할 수 있는 무언가를 스스로 설정할 수 있다는 희망을 줍니다.

PC와 동료 PC가 동일한 LAN에 속해 있는 경우 이 작업은 매우 쉽습니다.앱을 실행하기만 하면 됩니다.

runApp(host = "0.0.0.0", port = 5050)

설된값을 통해 된 값host인수는 (로컬 호스트뿐만 아니라) 모든 연결을 수락하라고 말합니다.port인수는 원하는 모든 값을 가정할 수 있습니다(다음과 같은 다른 서비스에서 사용하는 포트를 선택하지 않도록 주의하십시오).ssh또는http . 다음 IP(Linux 있는 를 할 수 .)를 기록합니다.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()

있지 R을 하려면 R 을 설 지 않 을 위 려 다 면 추 음 합 가 니 다 을 키 시 함 포 치 하 은 해 동 를 료 ▁r 다 니 합 ▁if 추 가 ▁add▁r을▁for다음▁you,▁installed▁your▁would▁who▁to를 추가합니다.include_R = TRUEcreate_app:

create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE)

으로 shining,plotly와 다른 를 ggplot2 또는 magritr jsonlite shining에 추가하면 됩니다.pkgsGitHub 패키지.remotes인수:

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를 확인하십시오.

오픈 소스 솔루션의 반짝임 프록시를 확인해 보는 것이 좋습니다.

빛나는 프록시를 사용하여 앱을 호스팅하려면 도커 컨테이너에 앱을 포장해야 합니다.

여기에서는 도커 컨테이너에 빛나는 앱을 배포하는 방법에 대한 가이드를 찾을 수 있습니다(단, 앱 종속성을 유지하기 위해 빛나는 프록시를 사용하지 않더라도 좋은 방법입니다).

다양한 인증 및 확장 방법을 사용할 수 있습니다.

나는 최근에 우리가 로컬로 가지고 있는 Centos 7 Linux OS 서버에 Shiny를 설치했습니다.우리는 대부분 아래의 가이드를 사용했습니다.https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7

가이드를 사용하는 다른 사용자가 답을 볼 수 있도록 설치 문제에 대한 질문은 여기에서 자유롭게 하십시오!

우리는 또한 AWS 서버에서 푸시업하는 것을 조사했고, 내용이 민감하기 때문에 우리 자신을 선택했습니다.그 외에는 두 솔루션이 유사해 보였습니다.Linux와 Shiny 시스템은 가볍습니다. 무료 아마존 서버에서 실행할 수 있을지도 모릅니다!

여기 또 다른 "해킹" 해결책이 있습니다.저는 최근에 당신이 직면한 것과 같은 문제를 다루어야 했고, 결정을 내리는 사람들의 눈 앞에서 어떻게 POC 같은 것을 얻을 수 있을지 확신할 수 없었습니다.특정 공유 네트워크 드라이브에 액세스할 수 있다는 것을 알고 있었습니다.그래서 저는 R 바이너리를 그 네트워크 드라이브에 저장했습니다.제가 작성한 앱이 동일한 네트워크 드라이브에 저장되었습니다.그런 다음 .R 파일을 작성하여 앱의 작업 디렉토리에 저장했습니다. 앱에는 작업 디렉토리를 설정하고 글로벌 변수의 소스를 지정하기 위해 이러한 행이 포함되어 있습니다.

app_start의 내용입니다.r

setwd("shared/drive/app_directory")
source("./global.R")
runApp("launch.browser=TRUE")

이 모든 것은 네트워크 드라이브의 R 바이너리에 대한 절대 파일 경로, 그리고 위의 .R 스크립트를 사용하여 응용 프로그램을 실행하는 배치 파일(윈도우즈인 경우 .sh 파일)에 의해 시작되었습니다.

# something to the effect of 
filepath/to/R/bin/Rscript.exe filePath/to/app_start.R

POC에는 효과가 있었지만, 생산 가치가 있는 솔루션은 절대 아닙니다.

Web Hosting Data Apps에는 시스템d 또는 도커를 사용하여 Shiny 앱을 호스팅하고 글로벌하게 액세스할 수 있도록 하는 몇 가지 튜토리얼이 있습니다. 이 튜토리얼을 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/26799722/hosting-and-setting-up-own-shiny-apps-without-shiny-server

반응형