Raspbot เป็นเซิร์ฟเวอร์ REST API น้ำหนักเบา ออกแบบมาสำหรับ Raspberry Pi รวมถึงเว็บแอปพลิเคชันไคลเอนต์ที่ให้คุณควบคุมอุปกรณ์ของคุณได้อย่างง่ายดาย
สร้างด้วย NodeJS & Express 4 และ Vue 2 & Webpack
Raspbot ยังคงอยู่ในระหว่างดำเนินการ
คุณสมบัติ:
ลองชม การสาธิตที่นี่ (ลงชื่อเข้าใช้ด้วยชื่อผู้ใช้ admin
และรหัสผ่าน secret
)
ไม่บังคับ (-ish):
โคลนพื้นที่เก็บข้อมูลนี้บน Raspberry Pi ของคุณ:
$ git clone https://github.com/pkrll/Raspy
และรัน make install
ในโฟลเดอร์รูทโปรเจ็กต์เพื่อติดตั้งและตั้งค่าเซิร์ฟเวอร์:
$ cd Raspy
$ make install
โฟลเดอร์ dist
ภายใน ./raspbot
มีบิลด์ล่าสุดของไคลเอนต์อยู่แล้ว การรันเซิร์ฟเวอร์จะใช้ไฟล์ที่นั่น คุณยังสามารถสร้างแอปไคลเอ็นต์ได้ด้วยตนเอง โดยพิมพ์ make build
ในโฟลเดอร์รูท การดำเนินการนี้อาจใช้เวลาสักครู่ ดังนั้นให้หยิบของว่างแล้วรอให้การติดตั้งและสร้างกระบวนการเสร็จสิ้น
หลังจากติดตั้งการขึ้นต่อกันทั้งหมดและตั้งค่าเซิร์ฟเวอร์แล้ว คุณสามารถรันเซิร์ฟเวอร์ด้วย make server
ในโฟลเดอร์รูทได้
อย่างไรก็ตาม ขอแนะนำให้ใช้ตัวจัดการกระบวนการเพื่อรันเซิร์ฟเวอร์
หากต้องการ daemonize แอปพลิเคชัน คุณสามารถใช้ 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