Raspbot 是一個輕量級 REST API 伺服器,專為Raspberry Pi設計,也是一個客戶端 Web 應用程序,可讓您輕鬆控制您的裝置。
使用 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
./raspbot
內的資料夾dist
已包含客戶端的最新版本。運行伺服器將使用那裡的檔案。您也可以透過在根資料夾中鍵入make build
來手動建立客戶端應用程式。這可能需要一段時間,因此請吃點零食,等待安裝和建造過程完成。
安裝所有依賴項並設定伺服器後,您可以在根資料夾中使用make server
運行伺服器。
不過,建議使用進程管理器來運行伺服器。
要守護應用程序,您可以使用PM2
,它是 NodeJS 應用程式的進程管理器。如果您還沒有PM2
,請安裝它:
$ sudo npm install -g pm2
使用make start
在背景執行伺服器。使用start
規則時, NODE_ENV
將自動設定為「生產」。
$ 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
。請務必更改此設定。
設定選項可以在./raspbot/config
目錄中的檔案index.js
中找到:
選項 | 描述 |
---|---|
oauth.id | Github OAuth 金鑰,用於在檢查更新時發出經過驗證的請求(可選) |
oauth.secret | 用於在檢查更新時發出經過身份驗證的請求的 Github OAuth 金鑰(可選) |
port | 伺服器連接埠(預設:5000 ) |
httpsPort | 用於 HTTP 的連接埠(預設值:5443 ) |
databasePath | 使用者憑證資料庫的路徑(預設值:config/db.json ) |
httpsOpts.cert | SSL 憑證的路徑(預設:config/.sslcert/fullchain.pem ) |
httpsOpts.key | SSL 憑證金鑰的路徑(預設值:config/.sslcert/privkey.pem ) |
注意:啟用 HTTP 時使用httpsOpts
選項(請參閱下方的啟用 HTTP)。
若要透過HTTPs
為 Raspbot 提供服務,您需要將 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
按照說明進行操作,然後等待其完成。
如果您使用預設配置,現在可以將憑證符號連結到資料夾raspbot/raspbot
中的資料夾config/.sslcert
(注意:請記住將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
使用sudo visudo
到/etc/sudoers
,其中USERNAME
應替換為運行伺服器的使用者的使用者名稱。確保在該用戶之前的任何配置之後添加它。
Raspbot 由Ardalan Samimi創建。機器人圖示由 FontAwesome 創建,並根據 CC by 4.0 許可證獲得許可。