Raspbot adalah server REST API ringan, dirancang untuk Raspberry Pi , serta aplikasi web klien yang memungkinkan Anda mengontrol perangkat dengan mudah.
Dibangun dengan NodeJS & Express 4 dan Vue 2 & Webpack.
Raspbot masih dalam proses .
Fitur:
Lihat demonya di sini (masuk dengan nama pengguna admin
dan kata sandi secret
).
Opsional (-ish):
Kloning repositori ini di Raspberry Pi Anda:
$ git clone https://github.com/pkrll/Raspy
Dan jalankan make install
di folder root proyek untuk menginstal dan menyiapkan server:
$ cd Raspy
$ make install
Folder dist
di dalam ./raspbot
sudah berisi klien versi terbaru. Menjalankan server akan menggunakan file di sana. Anda juga dapat membuat aplikasi klien secara manual, dengan mengetikkan make build
di folder root. Ini mungkin memakan waktu cukup lama, jadi ambillah camilan dan tunggu hingga proses instalasi dan pembuatan selesai.
Setelah menginstal semua dependensi dan menyiapkan server, Anda dapat menjalankan server dengan make server
di folder root.
Namun disarankan untuk menggunakan manajer proses untuk menjalankan server.
Untuk melakukan daemonisasi aplikasi, Anda dapat menggunakan PM2
yang merupakan manajer proses untuk aplikasi NodeJS. Jika Anda belum memiliki PM2
, instal:
$ sudo npm install -g pm2
Gunakan make start
untuk menjalankan server di latar belakang. NODE_ENV
akan secara otomatis disetel ke "produksi" saat menggunakan aturan 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
Gunakan make stop
untuk menghentikan server.
Ikuti langkah-langkah berikut untuk membuat PM2
berjalan saat startup.
make start
(jika belum berjalan).pm2 save
.pm2 startup systemd
dan salin dan tempel perintah yang dihasilkan oleh skrip.Contoh
$ 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
Untuk informasi lebih lanjut tentang cara menggunakan PM2, lihat dokumentasi resmi atau panduan memulai cepat ini .
Secara default, Raspbot berjalan pada port 5000 dan dapat diakses melalui http://ip-to-your-pi:5000
. Nama pengguna default adalah admin
dengan kata sandi secret
. Pastikan untuk mengubahnya.
Opsi konfigurasi dapat ditemukan di file index.js
di dalam direktori ./raspbot/config
:
Pilihan | Keterangan |
---|---|
oauth.id | Kunci OAuth Github untuk membuat permintaan yang diautentikasi saat memeriksa pembaruan (opsional) |
oauth.secret | Rahasia Github OAuth untuk membuat permintaan yang diautentikasi saat memeriksa pembaruan (opsional) |
port | Port server ( default: 5000 ) |
httpsPort | Port yang digunakan untuk HTTP ( default: 5443 ) |
databasePath | Jalur ke database kredensial pengguna ( default: config/db.json ) |
httpsOpts.cert | Jalur ke sertifikat SSL ( default: config/.sslcert/fullchain.pem ) |
httpsOpts.key | Jalur ke kunci sertifikat SSL ( default: config/.sslcert/privkey.pem ) |
Catatan: Opsi httpsOpts
digunakan saat mengaktifkan HTTP (Lihat Mengaktifkan HTTP di bawah).
Untuk melayani Raspbot melalui HTTPs
, Anda perlu meletakkan file sertifikat SSL Anda ( fullchain.pem
dan privkey.pem
) di folder config/.sslcert
.
Berikut ini panduan tentang cara membuat sertifikat menggunakan Certbot dan Let's encrypt. Untuk informasi lebih lanjut lihat artikel ini.
Pertama, pastikan Anda telah menginstal Certbot dan Let's encrypt , dan port 80
dan 443
diteruskan ke 5000
dan 5443
(atau, jika diganti, port khusus yang Anda gunakan).
Arahkan ke folder raspbot
di direktori proyek dan jalankan perintah berikut ( CATATAN: Ingatlah untuk mengubah example.com ke URL Anda):
$ certbot certonly --webroot -w ./dist -d example.com --config-dir ~ /.certbot/config --logs-dir ~ /.certbot/logs --work-dir ~ /.certbot/work
Ikuti instruksinya, dan tunggu sampai selesai.
Jika Anda menggunakan konfigurasi default, kini Anda dapat menghubungkan sertifikat ke folder config/.sslcert
di folder raspbot/raspbot
( CATATAN: Ingatlah untuk mengubah example.com ke URL Anda):
$ 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
Mulai ulang servernya.
Raspbot memungkinkan Anda untuk mematikan atau mem-boot ulang perangkat Anda dari jarak jauh dan memasang/melepas perangkat yang terhubung ke Raspberry Pi, tetapi agar perintah ini berfungsi, pengguna yang menjalankan server harus memiliki izin untuk menjalankan sudo /sbin/reboot
dan sudo /sbin/shutdown
, ( didefinisikan dalam Makefile
), serta sudo mount
dan sudo umount
.
Hal ini dapat dilakukan dengan menambahkan baris
USERNAME ALL=NOPASSWD: /sbin/reboot,/sbin/shutdown,/bin/mount,/bin/umount
ke /etc/sudoers
menggunakan sudo visudo
, di mana USERNAME
harus diganti dengan nama pengguna pengguna yang menjalankan server. Pastikan untuk menambahkannya setelah konfigurasi sebelumnya untuk pengguna tersebut.
Raspbot diciptakan oleh Ardalan Samimi . Ikon robot dibuat oleh FontAwesome dan dilisensikan di bawah lisensi CC by 4.0.