파일 전송 기반의 반짝이는 응용 프로그램 발표
Shiny Server는 Shiny를 호스팅하는 데 사용되는 무료 오픈 소스 옵션
이것은 Shiny
website에 열거된 세 가지 옵션 중의 하나다.aprevious
post
사용자 정의 영역을 사용하여 빛나는 서버를 보호하는 방법을 알고 있습니다.여기 있습니다.
서버에 반짝이는 프로그램을 추가하고 업데이트하는 방법을 배웁니다.
이전 글의 설명에 따라 조작하거나 새로운 것을 만들다
DigitalOcean의 가상 머신 사용RStudio 1-click
app은 몇 분밖에 걸리지 않습니다.
서버 소개 페이지가 표시된
index.html
파일 및hello
및 rmd
애플리케이션은 /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는 ssh
및 sftp
와 유사합니다.비보안 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
또는 정기적인 백업을 사용하는 것이 좋습니다.중단된 변경 사항을 복구합니다.
이 강좌의 요구에 따라 서버를 시작하면
더 이상 필요하지 마십시오. 설치 후 서버를 제거하는 것을 잊지 마십시오.
예기치 않은 비용 계산을 피하기 위해 완성하다.
한층 더 읽다
딘 아탈리
동일한 서버
Reference
이 문제에 관하여(파일 전송 기반의 반짝이는 응용 프로그램 발표), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/analythium/file-transfer-based-publishing-for-shiny-apps-10f0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)