Хостинг и создание собственных блестящих приложений без блестящего сервера - программирование
Подтвердить что ты не робот

Хостинг и создание собственных блестящих приложений без блестящего сервера

Я пытаюсь сделать блестящие приложения доступными для моих сотрудников без необходимости запускать или даже устанавливать R.

Итак, я прочитал эту страницу http://shiny.rstudio.com/tutorial/lesson7/ и нашел это предложение:

'Если вы знакомы с веб-хостингами или имеете доступ к ИТ-отделу, вы можете сами разместить свои блестящие приложения ". в разделе" Поделиться как веб-страница".

Мне было интересно, может ли кто-нибудь указать мне какую-то помощь в отношении этой темы? Как минимальные требования (или даже учебник). Проблема в том, что моя компания связана с определенными ограничениями в отношении веб-хостинга и безопасности и так далее, и не будет (на данный момент) платить за блестящий сервер-профессионал.

Но приведенное выше предложение дает мне надежду создать что-то сами, чтобы убедить их.

Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

Если ваш компьютер и компьютеры вашего коллеги принадлежат к одной и той же локальной сети, это довольно легко достичь. Просто запустите приложение через:

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:5050, т.е. Ваш IP, а затем : и номер порта, который вы выбрали.

Если вам нужен доступ из-за пределов локальной сети, вы можете направить свой маршрутизатор на свой компьютер, когда кто-то подключится к вашему публичному IP через порт 5050.

Ответ 2

Совместное использование приложений по локальной сети, как это довольно круто, но это своего рода хак. Я пробовал это с некоторыми сотрудниками, и это работает, но это скорее служебный трюк, чем устойчивое решение.

Я только что закончил разработку RInno пакета для этой точной проблемы, то есть когда компания не будет платить за Shiny Server или есть безопасность проблемы с облачными сервисами.

Для начала:

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

Тогда вам просто нужно вызвать две функции для создания рамок установки:

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

Если вы хотите включить R для своих коллег, у которых его нет, добавьте include_R = TRUE в create_app:

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

По умолчанию он включает в себя shiny, magrittr и jsonlite, поэтому, если вы используете другие пакеты, такие как ggplot2 или plotly, просто добавьте их в аргумент pkgs. Вы также можете включить пакеты GitHub в аргумент 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