

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 許可證獲得許可。