Хостинг та налаштування власних блискучих програм без блискучого сервера


95

Я намагаюся зробити блискучі програми доступними для моїх колег без того, щоб вони запускали або навіть не встановлювали R.

Тож я прочитав цю веб-сторінку і знайшов таке речення:

Якщо ви знайомі з веб-хостингом або маєте доступ до ІТ-відділу, ви можете розмістити свої програми Shiny самостійно.

у розділі " Поділитися як веб-сторінка ".

Як я можу це зробити?

Проблема в тому, що моя компанія пов’язана з певними обмеженнями щодо веб-хостингу та безпеки тощо, і не буде (наразі) платити за блискучий сервер-професіонал.

Але наведене вище речення дає мені надію щось створити, щоб переконати їх.


Відповіді:


87

Якщо ваш ПК та ПК ваших колег належать до однієї локальної мережі, досягти цього досить просто. Просто запустіть програму через:

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
Дякую. Я спробую це в понеділок. Але це означає, що я повинен мати R і програму, поки інші мають до неї доступ?
schlusie

2
Так. Ваша програма повинна працювати на вашому ПК.
Нікола

5
Добре. Зараз я спробував, і це спрацювало. Але чи є можливість без запуску програми на моїй машині? як я вже сказав, ми маємо доступ до ІТ-відділу та деяких серверів, і цитоване речення вказує на можливість зробити це.
schlusie

3
Додаток повинен десь працювати. Машина, на якій він розміщений, повинна мати R, блискучу та всі необхідні залежності, щоб вона працювала.
Нікола

6
Це дуже корисна публікація - моє наступне запитання: скільки людей може одночасно отримати доступ до програми?
md1630,

35

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

Я щойно закінчив розробку пакету 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


3
Тільки для Windows ^^
pawamoy

2
Так, я купив ноутбук Linux і шукаю шляхи подальшої підтримки Ubuntu
Джонатан Хілл,

7

Можливо, ви захочете поглянути на рішення з відкритим кодом shinyproxy .

Використовуючи shinyproxy, вам доведеться обернути свої програми в контейнер докера, щоб розмістити їх.

Тут ви можете знайти керівництво щодо того, як розгорнути блискучу програму в контейнері докера (що, крім того, є гарною практикою, навіть без використання shinyproxy, для підтримки залежностей програми).

Доступні різні методи автентифікації та масштабування .


3

Нещодавно я встановив Shiny на сервері ОС OS Centos 7 Linux, який ми маємо локально. Здебільшого ми використовували керівництво нижче. https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7

Не соромтеся задавати тут будь-які питання щодо проблем з налаштуванням, щоб усі, хто користується посібником, могли побачити відповіді!

Ми також розглянули можливість розміщення його на сервері AWS, вибравши власний, оскільки вміст є чутливим. Інакше обидва рішення виглядали схожими. Система Linux і Shiny легка, можливо, ви зможете запустити її на безкоштовному сервері Amazon!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.