أحاول إتاحة تطبيقات لامعة لزملائي في العمل دون الحاجة إلى تشغيل أو حتى تثبيت R.
لذلك قرأت صفحة الويب هذه ووجدت هذه الجملة:
إذا كنت معتادًا على استضافة المواقع أو يمكنك الوصول إلى قسم تكنولوجيا المعلومات ، يمكنك استضافة تطبيقاتك اللامعة بنفسك.
ضمن القسم " المشاركة كصفحة ويب " - القسم.
كيف يمكنني أن أفعل هذا؟
المشكلة هي أن شركتي ملزمة ببعض القيود المتعلقة باستضافة المواقع والأمان وما إلى ذلك ، ولن تدفع (في الوقت الحالي) مقابل خادم لامع.
لكن الجملة أعلاه تعطيني الأمل في إعداد شيء بأنفسنا لإقناعه.
إذا كان الكمبيوتر الشخصي الخاص بك وزملاء العمل لديك ينتمون إلى نفس الشبكة المحلية ، فمن السهل جدًا تحقيق ذلك. فقط قم بتشغيل التطبيق الخاص بك من خلال:
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.
إن مشاركة التطبيقات عبر الشبكة المحلية مثل هذا أمر رائع ، ولكنه نوع من الاختراق. لقد جربتها مع بعض زملائك في العمل ، وهي تعمل ، ولكنها أكثر من مجرد خدعة مكتبية أكثر منها حلاً مستدامًا.
لقد انتهيت للتو من تطوير 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
قد ترغب في إلقاء نظرة على الحل مفتوح المصدر shinyproxy
باستخدام shinyproxy ، سوف تضطر إلى التفاف التطبيقات الخاصة بك في حاوية عامل ميناء لاستضافتها. هناك طرق مختلفة للمصادقة والتحجيم المتاحة.
لقد قمت مؤخرًا بتثبيت Shiny على خادم نظام التشغيل Centos 7 Linux الذي لدينا محليًا. استخدمنا الدليل أدناه للجزء الأكبر. https://www.vultr.com/docs/how-to-install-shiny-server-on-centos-7
لا تتردد في طرح أي أسئلة حول مشاكل الإعداد هنا حتى يتمكن أي شخص آخر يستخدم الدليل من رؤية الإجابات!
لقد بحثنا أيضًا في دفعها إلى أعلى على خادم AWS ، واخترناها لأن المحتوى حساس. خلاف ذلك بدا كلا الحلول مماثلة. نظام Linux و Shiny خفيف ، فقد تتمكن من تشغيله على خادم Amazon المجاني!