光沢のあるサーバーなしで独自の光沢のあるアプリをホストおよび設定する


94

同僚が実行したり、Rをインストールしたりすることなく、光沢のあるアプリを利用できるようにしています。

だから私はこのウェブページを読んで この文章を見つけました:

Webホスティングに精通している場合、またはIT部門にアクセスできる場合は、自分でShinyアプリをホストできます。

Webページとして共有」セクションの下。

これどうやってするの?

問題は、私の会社がWebホスティングやセキュリティなどに関する特定の制限に拘束されており、(現時点では)shiny-server-proの代金を支払わないことです。

しかし、上の文は私に彼らを説得するために自分自身で何かを設定したいと思っています。


回答:


86

PCと同僚のPCが同じLANに属している場合、これは簡単に実現できます。アプリを実行するだけです:

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

host引数を介して設定された値は、(localhostからだけでなく)すべての接続を受け入れることを示しています。port引数には、(ちょうどのような他のサービスで使用されているポートを選択することを避けるために確保したいという任意の値をとることができるsshかをhttp)。次に、ローカルIPをメモします(Linuxを使用している場合は、で確認できますifconfig)。あなたのIPがであると言います192.168.1.70。同僚は、ブラウザーのアドレスバーに192.168.1.70:5050IPを挿入し、その後に:選択したポート番号を挿入することで、アプリを使用できます。

LANの外部からアクセスしたい場合は、誰かが5050ポートを介してパブリックIPに接続したときに、ルーターをPCに向けることができます。


2
ありがとうございました。月曜日にやってみます。しかし、これは、他の人がアクセスしている間にRとアプリを実行する必要があることを意味します
schlusie 2014年

2
はい。アプリケーションはPCで実行されている必要があります。
nicola 2014年

5
はい。私は今それを試しました、そしてそれはうまくいきました。しかし、私のマシンでアプリを実行しなくても可能性はありますか?私が言ったように、私たちはIT部門といくつかのサーバーにアクセスでき、引用された文はそれを行う可能性を示しています。
schlusie 2014年

3
アプリはどこかで実行する必要があります。それをホストするマシンは、R、ピカピカ、そしてそれを実行させるために必要なすべての依存関係を持っている必要があります。
nicola 2014年

6
これは非常に役立つ投稿です。私のフォローアップの質問は、同時に何人のユーザーがアプリにアクセスできるかということです。
md1630

34

このようにLANを介してアプリを共有するのはかなりクールですが、一種のハックです。私は何人かの同僚と試してみましたが、うまくいきましたが、それは持続可能なソリューションというよりはオフィストリックのようです。

この正確な問題、つまり企業がShiny Serverに料金を支払わない場合やクラウドサービスにセキュリティ上の懸念がある場合のRInnoパッケージの開発を終えたところです。

始めるには:

install.packages("RInno")
require(RInno)
RInno::install_inno()

次に、2つの関数を呼び出してインストールフレームワークを作成するだけです。

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

Rをインストールしていない同僚にRを含めたい場合は、次の行を追加include_R = TRUEcreate_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をチェックしてください。


3
Windowsのみ^^
pawamoy 2017年

2
はい、私はLinuxラップトップを購入し、Ubuntuを次にサポートする方法を探しています
Jonathan Hill

7

オープンソースのソリューションであるshinyproxyをご覧になることをお勧めします。

shinyproxyを使用する場合は、アプリをDockerコンテナーにラップしてホストする必要があります。

ここでは、Dockerコンテナーに光沢のあるアプリをデプロイする方法に関するガイドを見つけることができます(アプリの依存関係を維持するために、shinyproxyを使用しなくても、これは良い方法です)。

利用可能な認証とスケーリングの方法はいくつかあります。


3

最近、ローカルにあるCentos 7 Linux OSサーバーにShinyをインストールしました。以下のガイドを大部分使用しました。 https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7

ガイドを使用している他の人が答えを見ることができるように、ここでセットアップの問題について質問してください!

また、コンテンツは機密情報であるため、AWSサーバーにプッシュすることも検討しました。それ以外の場合、両方のソリューションは似ていました。LinuxとShinyシステムは軽量で、無料のAmazonサーバーで実行できる可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.