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.