Próbuję udostępnić moim współpracownikom błyszczące aplikacje bez konieczności ich uruchamiania lub nawet instalowania R.
Przeczytałem więc tę stronę i znalazłem to zdanie:
Jeśli znasz hosting stron internetowych lub masz dostęp do działu IT, możesz samodzielnie hostować swoje aplikacje Shiny.
w sekcji „ Udostępnij jako stronę internetową ”.
Jak mogę to zrobić?
Problem polega na tym, że moja firma jest związana pewnymi ograniczeniami dotyczącymi hostingu, bezpieczeństwa i tak dalej, i nie będzie (na razie) płacić za błyszczący serwer-pro.
Ale powyższe zdanie daje mi nadzieję, że sami ustalę coś, co ich przekona.
r
web-hosting
shiny
shiny-server
schlusie
źródło
źródło
Odpowiedzi:
Jeśli Twój komputer i komputery współpracowników należą do tej samej sieci LAN, jest to całkiem łatwe do osiągnięcia. Po prostu uruchom swoją aplikację przez:
runApp(host="0.0.0.0",port=5050)
Wartość ustawiona za pomocą
host
argumentu mówi, że należy akceptować dowolne połączenie (nie tylko od lokalnego hosta).port
Argumentem może przyjmować dowolną wartość, którą chcesz (tylko gwarantujący uniknięcie wybrać porty używane przez inne usługi jakssh
lubhttp
). Następnie zanotuj swój lokalny adres IP (jeśli korzystasz z Linuksa, możesz go przejrzećifconfig
). Powiedz, że masz adres IP192.168.1.70
. Twoi koledzy mogą korzystać z Twojej aplikacji, wstawiając w pasku adresu przeglądarki192.168.1.70:5050
Twój adres IP, a następnie:
wybrany przez Ciebie numer portu.Jeśli chcesz uzyskać dostęp spoza sieci LAN, możesz skierować router do komputera, gdy ktoś połączy się z Twoim publicznym adresem IP przez port 5050.
źródło
Udostępnianie aplikacji w sieci LAN w ten sposób jest całkiem fajne, ale to trochę hack. Wypróbowałem to z niektórymi współpracownikami i działa, ale jest to bardziej biurowa sztuczka niż trwałe rozwiązanie.
Właśnie skończyłem opracowywać pakiet RInno dla dokładnie tego problemu, tj. Kiedy firma nie zapłaci za Shiny Server lub istnieją obawy dotyczące bezpieczeństwa usług w chmurze.
Rozpocząć:
install.packages("RInno") require(RInno) RInno::install_inno()
Następnie wystarczy wywołać dwie funkcje, aby utworzyć platformę instalacyjną:
create_app(app_name = "myapp", app_dir = "path/to/myapp") compile_iss()
Jeśli chcesz dołączyć R dla swoich współpracowników, którzy go nie mają, dodaj
include_R = TRUE
docreate_app
:create_app(app_name = "myapp", app_dir = "path/to/myapp", include_R = TRUE)
Domyślnie zawiera błyszczące, magrittr i jsonlite, więc jeśli używasz innych pakietów, takich jak ggplot2 lub plotly, po prostu dodaj je do
pkgs
argumentu. Możesz również dołączyć pakiety GitHub doremotes
argumentu:create_app( app_name = "myapp", app_dir = "path/to/myapp" pkgs = c("shiny", "jsonlite", "magrittr", "plotly", "ggplot2"), remotes = c("talgalili/installr", "daattali/shinyjs"))
Jeśli jesteś zainteresowany innymi funkcjami, sprawdź FI Labs - RInno
źródło
Możesz rzucić okiem na rozwiązanie shinyproxy typu open source .
Używając shinyproxy, będziesz musiał umieścić swoje aplikacje w kontenerze docker, aby je hostować.
Tutaj możesz znaleźć przewodnik, jak wdrożyć błyszczącą aplikację w kontenerze Dockera (co przy okazji jest dobrą praktyką, nawet bez korzystania z shinyproxy, aby zachować zależności aplikacji).
Dostępne są różne metody uwierzytelniania i skalowania .
źródło
Niedawno zainstalowałem Shiny na serwerze Centos 7 Linux OS, który mamy lokalnie. W większości korzystaliśmy z poniższego przewodnika. https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7
Zapraszam do zadawania pytań dotyczących problemów z konfiguracją, aby każdy, kto korzysta z przewodnika, mógł zobaczyć odpowiedzi!
Przyjrzeliśmy się również umieszczeniu go na serwerze AWS, zdecydowaliśmy się na własny, ponieważ zawartość jest wrażliwa. Poza tym oba rozwiązania wyglądały podobnie. System Linux i Shiny są lekkie, możesz go uruchomić na darmowym serwerze Amazon!
źródło