파일 전송 기반의 반짝이는 응용 프로그램 발표

9966 단어 shinyrstats
받는 사람: Peter Solymos
Shiny Server는 Shiny를 호스팅하는 데 사용되는 무료 오픈 소스 옵션
이것은 Shiny
website
에 열거된 세 가지 옵션 중의 하나다.aprevious
post

사용자 정의 영역을 사용하여 빛나는 서버를 보호하는 방법을 알고 있습니다.여기 있습니다.
서버에 반짝이는 프로그램을 추가하고 업데이트하는 방법을 배웁니다.
이전 글의 설명에 따라 조작하거나 새로운 것을 만들다
DigitalOcean의 가상 머신 사용RStudio 1-click
app
은 몇 분밖에 걸리지 않습니다.
서버 소개 페이지가 표시된 index.html 파일 및hellormd 애플리케이션은 /srv/shiny-server/ 폴더에 있습니다.
$ ls /srv/shiny-server/
index.html  sample-apps

$ ls /srv/shiny-server/sample-apps/hello
server.R  ui.R

$ ls /srv/shiny-server/sample-apps/rmd
index.Rmd
이러한 디렉토리는 다음과 같이 서버 경로에 매핑됩니다.
  • http://$HOST소개 페이지index.html,
  • http://$HOST/sample-apps/hello/hello 애플리케이션
  • http://$HOST/sample-apps/rmd/rmd 애플리케이션입니다.
  • $HOST는 서버의 사용자 정의 도메인입니다(예: yourdomain.com.
    서버가 사용 중입니다.너는 안에 있는 폴더 구조를 볼 수 있다/srv/shiny-server/ 서버 경로로 직접 전환합니다.어떻게
    서버에 더 많은 응용 프로그램을 추가합니까?반짝이는 응용 프로그램을 직접 복사하기만 하면/srv/shiny-server/ 디렉토리의 폴더입니다.여기 세 개 있어요.
    이 일을 하는 선택.
    파일 기반 플래시 어플리케이션을 플래시 서버에 배포

    서버에서 텍스트 파일 편집

    histogram라는 응용 프로그램을 http://$HOST/histogram/에 추가합니다.
    경로:
    mkdir /srv/shiny-server/histogram
    cd /srv/shiny-server/histogram
    touch app.R
    nano app.R
    
    반짝이는 프로그램을 아래에서 복사해서 방금 열린 app.R 에 붙여넣기
    사용nano(Ctrl+O 저장, Ctrl+X 종료nano):
    library(shiny)
    ui = fluidPage(
        mainPanel(
            sliderInput("obs",
                "Number of observations",
                min = 1,
                max = 5000,
                value = 100),
            plotOutput("distPlot")
        )
    )
    server = function(input, output) {
        output$distPlot = renderPlot({
            dist = rnorm(input$obs)
            hist(dist,
                col="purple",
                xlab="Random values")
        })
    }
    shinyApp(ui = ui, server = server)
    
    지금 http://$HOST/histogram/ 에 방문하면 범위 슬라이더를 볼 수 있습니다.
    샘플 크기와 정상값을 제어하는 자색 직사각형
    aprevious
    post
    의 발행판을 반드시 숙지해야 한다.

    안전한 파일 복사

    scp를 사용하여 로컬 파일을 서버에 복사할 수 있습니다.만들래요.
    로컬 컴퓨터에 반짝이는 작은 프로그램을 설치합니다.사용된 코드 및
    보라색 막대 그래프이지만 몇 가지 설정을 변경합니다.
    mkdir pink
    touch pink/app.R
    nano pink/app.R
    
    이 코드를 파일pink/app.R에 복사합니다.
    library(shiny)
    ui = fluidPage(
        mainPanel(
            sliderInput("obs",
                "Number of observations",
                min = 1,
                max = 1000,
                value = 100),
            plotOutput("distPlot")
        )
    )
    server = function(input, output) {
        output$distPlot = renderPlot({
            dist = runif(input$obs)
            hist(dist,
                col="pink",
                xlab="Random values")
        })
    }
    shinyApp(ui = ui, server = server)
    
    다음 스크립트는 로컬pink 디렉터리를pinkhist 번쩍이는 서버의 디렉토리scp 가정ssh 키를 사용하여 서버에 액세스합니다. 그렇지 않으면
    사용자 이름/암호를 묻는 메시지):
    export APPDIR="pink"
    export SHINYDIR="pinkhist"
    
    scp -r $APPDIR root@$HOST:/srv/shiny-server/$SHINYDIR
    
    액세스http://$HOST/pinkhist/ 주소에 새 애플리케이션이 표시됩니다.
    scp 프로토콜에서 사용하는 포트 22는 sshsftp와 유사합니다.
    비보안 FTP 프로토콜을 사용하여 파일을 복사하는 경우
    서버의 포트 21이 수신 트래픽에 열려 있는지 확인합니다.

    Git 기반 배포


    공공 및 개인 저장소를 사용할 수 있도록 설정git(git 설치됨, 각 사용자에 대한 일회성 설정임):
    git config --global user.email "[email protected]"
    git config --global user.name "Your Name"
    
    cd ~를 사용하여 홈 디렉토리로 전환하고 다음 스크립트를 실행합니다.
    이렇게 하면 클론 환경에 지정된 GitHub 저장소가
    변수, 디렉터리가 이미 존재하면 변경 사항을 끌어오기;그리고 하나 만들어요.
    반짝이는 서버의 디렉터리가 존재하지 않으면
    복제 애플리케이션 파일$APPDIR은 비어 있을 수 있음):
    #!/bin/bash
    
    export GITHOST="https://github.com"
    export GITUSER="analythium"
    export GITREPO="covidapp-shiny"
    export APPDIR="02-shiny-app/app"
    export SHINYDIR="covidapp"
    
    # clone or pull repo
    if [[ ! -e $GITREPO ]]; then
        git clone $GITHOST/$GITUSER/$GITREPO.git
    else
        cd $GITREPO
        git pull
        cd ..
    fi
    
    # make dir if not already there
    mkdir -p /srv/shiny-server/$SHINYDIR
    
    # copy repo contents to Shiny Server
    cp -rf $GITREPO/$APPDIR/* /srv/shiny-server/$SHINYDIR
    
    다른 저장소의 스크립트를 수정하여 파일에 저장할 수 있습니다.
    e、 g.update_covid.sh.그리고 너는 매일 달리기를 할 수 있다bash update_covid.sh프로그램을 업데이트하는 시간이 필요합니다.하나 설정할 수도 있어요.
    cron job 매일 애플리케이션 업데이트
    또는 스크립트를 성공적으로 GitHub에서 트리거한 웹훅 이벤트에 바인딩합니다.
    움직여.
    하지만 이렇게 하기 전에 이 프로그램이 정상적으로 작동하는지 확인해 보세요http://$HOST/covidapp/ . 만일 모든 것에 문제가 생긴다면, 너는 마땅히 이 점을 보아야 한다
    정보:

    반짝이는 서버 설정이
    기본 R 세트, 놓쳤어요.
    코로나-19 적용.다음과 같은 조치를 취합니다.
    R -q -e "install.packages('forecast')"
    
    만약 당신이 지금 페이지를 새로 고친다면, 프로그램은 정상적으로 작동할 수 있을 것이다.
    이것은 바로 Shining Server의 단점 중 하나인
    지속적인 통합 및 제공(CICD)을 다룹니다.네가 필요로 하다
    패키지, R, 패키지 버전 등을 관리할 때 각별히 주의하십시오
    여러 응용 프로그램이 서로 충돌하는 의존 관계를 가지고 있을 수 있습니다.
    Dockerizing Shiny apps는 어플리케이션을 격리하는 솔루션입니다.

    라이선스


    R과 Shiny R 패키지는 모두 라이센스GNU General
    Public License
    에 따라 라이센스가 부여됩니다.
    수정된 버전을 제작하여 서버에 대중이 접근할 수 있도록 하다
    원본 코드가 공개되지 않았습니다.그러나 사실은 그렇다
    주의해야 할 것은 Shining Server의 소스 버전은
    GNU Affero General Public
    License
    (AGPLv3)에 따라 라이센스가 부여됩니다.
    AGPL 종료application service
    provider

    (ASP) 취약점, 과학기술계에서 논란이 되고 있는 평판,
    예: Google's
    policy
    금지 사항
    면허증우리는 이 일에 대해 법률적인 의견을 제공하지 않을 것이다.
    라이센스의 내용만 설명합니다.

    The GNU General Public License permits making a modified version and
    letting the public access it on a server without ever releasing its
    source code to the public. The GNU Affero General Public License is
    designed specifically to ensure that, in such cases, the modified
    source code becomes available to the community. It requires the
    operator of a network server to provide the source code of the
    modified version running there to the users of that server. Therefore,
    public use of a modified version, on a publicly accessible server,
    gives the public access to the source code of the modified version. –
    AGPLv3 Preamble


    수정된 소스 코드를 설명하고
    서버는 해석을 위해 매우 큰 공간을 남겼다. (일부 토론 참조)
    here )
    이것은 당신을 괴롭히거나 괴롭히지 않을 수도 있습니다. 당신의 의도와
    기업 환경.AGPL 라이센스에 대한 Rstudio의 비용 지불 예외
    형식: RStudio
    Connect

    - 이 모드를 이중 라이센스라고 합니다(읽으십시오.)
    here ).

    요약


    개원된 플래시 서버는 네트워크에서 자체 위탁 관리 플래시 응용의 간단한 방법이다
    저렴한 가상 머신.서버를 직접 설정하거나
    기존 이미지 및 배포 애플리케이션은 불과 몇 초 만에 사용할 수 있습니다.반드시 조심하고 신중해야 한다
    종속성으로 인해 git 또는 정기적인 백업을 사용하는 것이 좋습니다.
    중단된 변경 사항을 복구합니다.
    이 강좌의 요구에 따라 서버를 시작하면
    더 이상 필요하지 마십시오. 설치 후 서버를 제거하는 것을 잊지 마십시오.
    예기치 않은 비용 계산을 피하기 위해 완성하다.

    한층 더 읽다

  • 관리Shiny Server docs
  • Useful tips for logging and user permissions
    딘 아탈리
  • 에서
  • Multiple users managing their apps
    동일한 서버
  • 좋은 웹페이지 즐겨찾기