it-swarm.asia

استضافة وإعداد التطبيقات اللامعة الخاصة دون خادم لامعة

أحاول إتاحة تطبيقات لامعة لزملائي في العمل دون الحاجة إلى تشغيل أو حتى تثبيت R.

لذلك قرأت صفحة الويب هذه ووجدت هذه الجملة:

إذا كنت معتادًا على استضافة المواقع أو يمكنك الوصول إلى قسم تكنولوجيا المعلومات ، يمكنك استضافة تطبيقاتك اللامعة بنفسك.

ضمن القسم " المشاركة كصفحة ويب " - القسم.

كيف يمكنني أن أفعل هذا؟

المشكلة هي أن شركتي ملزمة ببعض القيود المتعلقة باستضافة المواقع والأمان وما إلى ذلك ، ولن تدفع (في الوقت الحالي) مقابل خادم لامع.

لكن الجملة أعلاه تعطيني الأمل في إعداد شيء بأنفسنا لإقناعه.

75
schlusie

إذا كان الكمبيوتر الشخصي الخاص بك وزملاء العمل لديك ينتمون إلى نفس الشبكة المحلية ، فمن السهل جدًا تحقيق ذلك. فقط قم بتشغيل التطبيق الخاص بك من خلال:

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

تقول القيمة المعينة من خلال الوسيطة Host لقبول أي اتصال (وليس فقط من مضيف محلي). يمكن أن تفترض الوسيطة port أي قيمة تريدها (فقط تأكد لتجنب تحديد المنافذ التي تستخدمها خدمات أخرى مثل ssh أو http). ثم ، لاحظ عنوان IP المحلي (إذا كنت تحت نظام التشغيل linux ، فيمكنك رؤيته من خلال ifconfig). قل IP الخاص بك هو 192.168.1.70. يمكن لزملائك استخدام التطبيق الخاص بك عن طريق إدراجهم في شريط العناوين بمتصفحهم 192.168.1.70:5050 ، أي عنوان IP الخاص بك متبوعًا بـ : ورقم المنفذ الذي حددته.

إذا كنت ترغب في الوصول من خارج شبكة LAN الخاصة بك ، يمكنك توجيه جهاز التوجيه الخاص بك إلى جهاز الكمبيوتر الخاص بك عندما يتصل شخص ما بعنوان IP العام الخاص بك من خلال منفذ 5050.

74
nicola

إن مشاركة التطبيقات عبر الشبكة المحلية مثل هذا أمر رائع ، ولكنه نوع من الاختراق. لقد جربتها مع بعض زملائك في العمل ، وهي تعمل ، ولكنها أكثر من مجرد خدعة مكتبية أكثر منها حلاً مستدامًا.

لقد انتهيت للتو من تطوير 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)

من المفترض أن تشمل اللمعان ، 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

26
Jonathan Hill

قد ترغب في إلقاء نظرة على الحل مفتوح المصدر shinyproxy

باستخدام shinyproxy ، سوف تضطر إلى التفاف التطبيقات الخاصة بك في حاوية عامل ميناء لاستضافتها. هناك طرق مختلفة للمصادقة والتحجيم المتاحة.

4
ismirsehregal

لقد قمت مؤخرًا بتثبيت Shiny على خادم نظام التشغيل Centos 7 Linux الذي لدينا محليًا. استخدمنا الدليل أدناه للجزء الأكبر. https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7

لا تتردد في طرح أي أسئلة حول مشاكل الإعداد هنا حتى يتمكن أي شخص آخر يستخدم الدليل من رؤية الإجابات!

لقد بحثنا أيضًا في دفعها إلى أعلى على خادم AWS ، واخترناها لأن المحتوى حساس. خلاف ذلك بدا كلا الحلول مماثلة. نظام Linux و Shiny خفيف ، فقد تتمكن من تشغيله على خادم Amazon المجاني!

2
Ben