Я пытаюсь сделать блестящие приложения доступными для моих коллег, чтобы они не запускали или даже не устанавливали R.
Итак, я прочитал эту веб-страницу и нашел это предложение:
Если вы знакомы с веб-хостингом или имеете доступ к ИТ-отделу, вы можете самостоятельно размещать свои приложения Shiny.
в разделе " Опубликовать как веб-страницу ".
Как я могу это сделать?
Проблема в том, что моя компания связана определенными ограничениями в отношении веб-хостинга, безопасности и так далее и не будет (пока) платить за shiny-server-pro.
Но приведенное выше предложение дает мне надежду самому придумать что-то, чтобы убедить их.
r
web-hosting
shiny
shiny-server
Schlusie
источник
источник
Ответы:
Если ваш компьютер и компьютеры ваших коллег принадлежат к одной локальной сети, этого довольно легко добиться. Просто запустите свое приложение:
runApp(host="0.0.0.0",port=5050)
Значение, установленное в
host
аргументе, говорит о том, что нужно принимать любое соединение (не только от localhost).port
Аргумент может принимать любое значение , которое вы хотите (только гарантировать , чтобы избежать выбора портов , используемых другими службами , какssh
иhttp
). Затем запишите свой локальный IP-адрес (если вы работаете под Linux, вы можете его увидетьifconfig
). Скажите, что ваш IP192.168.1.70
. Ваши коллеги могут использовать ваше приложение, указав в адресной строке своего браузера192.168.1.70:5050
ваш IP-адрес:
и номер порта, который вы выбрали.Если вам нужен доступ из-за пределов локальной сети, вы можете направить маршрутизатор на свой компьютер, когда кто-то подключается к вашему общедоступному IP-адресу через порт 5050.
источник
Совместное использование приложений по локальной сети довольно круто, но это своего рода взлом. Я попробовал это с некоторыми коллегами, и он работает, но это скорее офисный трюк, чем надежное решение.
Я только что закончил разработку пакета 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
аргумент. Вы также можете включить в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
источник
Возможно, вы захотите взглянуть на решение shinyproxy с открытым исходным кодом .
Используя shinyproxy, вам нужно будет поместить свои приложения в контейнер докеров для их размещения.
Здесь вы можете найти руководство о том, как развернуть блестящее приложение в контейнере докера (что, кстати, является хорошей практикой, даже без использования shinyproxy, для поддержания зависимостей приложения).
Доступны различные методы аутентификации и масштабирования .
источник
Недавно я установил Shiny на локальном сервере под управлением ОС Centos 7 Linux. По большей части мы использовали приведенное ниже руководство. https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7
Не стесняйтесь задавать любые вопросы о проблемах с установкой здесь, чтобы все, кто использует руководство, могли увидеть ответы!
Мы также рассмотрели возможность размещения его на сервере AWS и выбрали наш собственный, поскольку контент является конфиденциальным. В остальном оба решения выглядели одинаково. Система Linux и Shiny легкая, возможно, вы сможете запустить ее на бесплатном сервере Amazon!
источник