

Raspbot هو خادم REST API خفيف الوزن، مصمم لـ Raspberry Pi ، بالإضافة إلى تطبيق ويب للعميل يتيح لك التحكم في جهازك بسهولة.
تم تصميمه باستخدام NodeJS & Express 4 وVue 2 & Webpack.
Raspbot لا يزال قيد التنفيذ .
سمات:
تحقق من العرض التوضيحي هنا (سجل الدخول باستخدام اسم المستخدم admin وكلمة المرور secret ).
اختياري (- العش):
انسخ هذا المستودع على جهاز Raspberry Pi الخاص بك:
$ git clone https://github.com/pkrll/Raspy وقم بتشغيل make install في المجلد الجذر للمشروع لتثبيت الخادم وإعداده:
$ cd Raspy
$ make install يحتوي المجلد dist داخل ./raspbot بالفعل على أحدث إصدار للعميل. سيؤدي تشغيل الخادم إلى استخدام الملفات الموجودة هناك. يمكنك أيضًا إنشاء تطبيق العميل يدويًا، عن طريق كتابة make build في المجلد الجذر. قد يستغرق هذا بعض الوقت، لذا تناول وجبة خفيفة وانتظر حتى تنتهي عمليات التثبيت والإنشاء.
بعد تثبيت جميع التبعيات وإعداد الخادم، يمكنك تشغيل الخادم باستخدام make server في المجلد الجذر.
ومع ذلك، يوصى باستخدام مدير العمليات لتشغيل الخادم.
لإضفاء الطابع الشيطاني على التطبيق، يمكنك استخدام PM2 ، وهو مدير العمليات لتطبيقات NodeJS. إذا لم يكن لديك PM2 بالفعل، قم بتثبيته:
$ sudo npm install -g pm2 استخدم make start لتشغيل الخادم في الخلفية. سيتم ضبط NODE_ENV تلقائيًا على "الإنتاج" عند استخدام قاعدة start .
$ make start
[PM2] Applying action restartProcessId on app [server](ids: 0)
[PM2] [server](0) ✓
[PM2] Process successfully started
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬───────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼───────┼──────────┤
│ Raspbot │ 0 │ fork │ 13141 │ online │ 0 │ 0s │ 66% │ 13.9 MB │ pkrll │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴───────┴──────────┘
Use ` pm2 show < id | name > ` to get more details about an app
استخدم make stop لإيقاف الخادم.
اتبع هذه الخطوات لتشغيل PM2 عند بدء التشغيل.
make start (إذا لم يكن قيد التشغيل بالفعل).pm2 save .pm2 startup systemd وانسخ والصق الأمر الذي ينتجه البرنامج النصي.مثال
$ make start
$ pm2 save
[PM2] Saving current process list...
[PM2] Successfully saved in /home/pkrll/.pm2/dump.pm2
$ pm2 startup systemd
[PM2] Init System found: systemd
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH= $PATH :[...] startup systemd -u USER --hp /home/USER
$ sudo env PATH= $PATH :[...] startup systemd -u USER --hp /home/USERلمزيد من المعلومات حول كيفية استخدام PM2، راجع الوثائق الرسمية أو دليل البدء السريع هذا .
افتراضيًا، يعمل Raspbot على المنفذ 5000 ويمكن الوصول إليه عن طريق http://ip-to-your-pi:5000 . اسم المستخدم الافتراضي هو admin مع كلمة المرور secret . تأكد من تغيير هذا.
يمكن العثور على خيارات التكوين في الملف index.js الموجود داخل الدليل ./raspbot/config :
| خيار | وصف |
|---|---|
oauth.id | مفتاح Github OAuth لتقديم طلبات مصادق عليها عند التحقق من وجود تحديثات (اختياري) |
oauth.secret | سر Github OAuth لتقديم طلبات مصادق عليها عند التحقق من وجود تحديثات (اختياري) |
port | منفذ الخادم ( الافتراضي: 5000 ) |
httpsPort | المنفذ المطلوب استخدامه لـ HTTPs ( الافتراضي: 5443 ) |
databasePath | المسار إلى قاعدة بيانات بيانات اعتماد المستخدم ( الافتراضي: config/db.json ) |
httpsOpts.cert | المسار إلى شهادة SSL ( الافتراضي: config/.sslcert/fullchain.pem ) |
httpsOpts.key | المسار إلى مفتاح شهادة SSL ( الافتراضي: config/.sslcert/privkey.pem ) |
ملاحظة: يتم استخدام خيارات httpsOpts عند تمكين HTTPs (راجع تمكين HTTPs أدناه).
لخدمة Raspbot عبر HTTPs ، يتعين عليك وضع ملفات شهادة SSL ( fullchain.pem و privkey.pem ) في المجلد config/.sslcert .
فيما يلي دليل حول كيفية إنشاء الشهادات باستخدام Certbot وLet's encrypt. لمزيد من المعلومات راجع هذه المقالة.
تأكد أولاً من تثبيت Certbot و Let's encrypt ، وإعادة توجيه المنفذين 80 و 443 إلى 5000 و 5443 (أو، في حالة تجاوزهما، المنافذ المخصصة التي استخدمتها).
انتقل إلى المجلد raspbot في دليل المشروع وقم بتشغيل الأمر التالي ( ملاحظة: تذكر تغيير example.com إلى عنوان URL الخاص بك):
$ certbot certonly --webroot -w ./dist -d example.com --config-dir ~ /.certbot/config --logs-dir ~ /.certbot/logs --work-dir ~ /.certbot/workاتبع التعليمات، وانتظر حتى تنتهي.
إذا كنت تستخدم التكوينات الافتراضية، فيمكنك الآن ربط الشهادة بالمجلد config/.sslcert الموجود في المجلد raspbot/raspbot ( ملاحظة: تذكر تغيير example.com إلى عنوان URL الخاص بك):
$ cd /path/to/raspbot
$ ln -s ~ /.certbot/config/live/example.com/fullchain.pem raspbot/config/.sslcert/fullchain.pem
$ ln -s ~ /.certbot/config/live/example.com/privkey.pem raspbot/config/.sslcert/privkey.pemأعد تشغيل الخادم.
يمكّنك Raspbot من إيقاف تشغيل جهازك أو إعادة تشغيله عن بُعد وتركيب/إلغاء تحميل الأجهزة المتصلة بـ Raspberry Pi، ولكن لكي تعمل هذه الأوامر، يجب أن يكون لدى المستخدم الذي يقوم بتشغيل الخادم إذن بتنفيذ sudo /sbin/reboot و sudo /sbin/shutdown ، ( المحددة في Makefile )، بالإضافة إلى sudo mount و sudo umount .
ويمكن القيام بذلك عن طريق إضافة السطر
USERNAME ALL=NOPASSWD: /sbin/reboot,/sbin/shutdown,/bin/mount,/bin/umount إلى /etc/sudoers باستخدام sudo visudo ، حيث يجب استبدال USERNAME باسم المستخدم الخاص بالمستخدم الذي يقوم بتشغيل الخادم. تأكد من إضافته بعد أي تكوينات سابقة لهذا المستخدم.
تم إنشاء Raspbot بواسطة Ardalan Samimi . تم إنشاء رمز الروبوت بواسطة FontAwesome وتم ترخيصه بموجب ترخيص CC بواسطة 4.0.