

Raspbot ist ein leichter REST-API-Server, der für den Raspberry Pi entwickelt wurde, sowie eine Client-Webanwendung, mit der Sie Ihr Gerät ganz einfach steuern können.
Gebaut mit NodeJS & Express 4 und Vue 2 & Webpack.
Raspbot ist noch in Arbeit .
Merkmale:
Sehen Sie sich hier eine Demo an (melden Sie sich mit dem Benutzernamen admin und dem Passwort „ secret an).
Optional(-ish):
Klonen Sie dieses Repository auf Ihrem Raspberry Pi:
$ git clone https://github.com/pkrll/Raspy Und führen Sie make install im Stammordner des Projekts aus, um den Server zu installieren und einzurichten:
$ cd Raspy
$ make install Der Ordner dist in ./raspbot enthält bereits den neuesten Build des Clients. Wenn Sie den Server ausführen, werden die dortigen Dateien verwendet. Sie können die Client-App auch manuell erstellen, indem Sie make build im Stammordner eingeben. Dies kann eine Weile dauern. Schnappen Sie sich also einen Snack und warten Sie, bis die Installations- und Build-Prozesse abgeschlossen sind.
Nachdem Sie alle Abhängigkeiten installiert und den Server eingerichtet haben, können Sie den Server mit make server im Stammordner ausführen.
Es wird jedoch empfohlen, zum Betrieb des Servers einen Prozessmanager zu verwenden.
Um die Anwendung zu dämonisieren, können Sie PM2 verwenden, einen Prozessmanager für NodeJS-Anwendungen. Wenn Sie PM2 noch nicht haben, installieren Sie es:
$ sudo npm install -g pm2 Verwenden Sie make start um den Server im Hintergrund auszuführen. Der NODE_ENV wird bei Verwendung der start automatisch auf „Produktion“ gesetzt.
$ 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
Verwenden Sie make stop um den Server zu stoppen.
Befolgen Sie diese Schritte, damit PM2 beim Start ausgeführt wird.
make start (sofern sie nicht bereits läuft).pm2 save .pm2 startup systemd aus und kopieren Sie den vom Skript erzeugten Befehl und fügen Sie ihn ein.Beispiel
$ 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/USERWeitere Informationen zur Verwendung von PM2 finden Sie in der offiziellen Dokumentation oder in dieser Schnellstartanleitung .
Standardmäßig läuft Raspbot auf Port 5000 und kann über http://ip-to-your-pi:5000 aufgerufen werden. Der Standardbenutzername ist admin mit dem Passwort secret . Ändern Sie dies unbedingt.
Die Konfigurationsoptionen finden Sie in der Datei index.js im Verzeichnis ./raspbot/config :
| Option | Beschreibung |
|---|---|
oauth.id | Github-OAuth-Schlüssel für authentifizierte Anfragen bei der Suche nach Updates (optional) |
oauth.secret | Github OAuth-Geheimnis für authentifizierte Anfragen bei der Suche nach Updates (optional) |
port | Der Server-Port ( Standard: 5000 ) |
httpsPort | Der für HTTPs zu verwendende Port ( Standard: 5443 ) |
databasePath | Pfad zur Datenbank mit Benutzeranmeldeinformationen ( Standard: config/db.json ) |
httpsOpts.cert | Pfad zum SSL-Zertifikat ( Standard: config/.sslcert/fullchain.pem ) |
httpsOpts.key | Pfad zum SSL-Zertifikatschlüssel ( Standard: config/.sslcert/privkey.pem ) |
Hinweis: Die httpsOpts -Optionen werden beim Aktivieren von HTTPs verwendet (siehe unten „HTTPs aktivieren“).
Um Raspbot über HTTPs bereitzustellen, müssen Sie Ihre SSL-Zertifikatdateien ( fullchain.pem und privkey.pem ) im Ordner config/.sslcert ablegen.
Nachfolgend finden Sie eine Anleitung zum Generieren von Zertifikaten mit Certbot und Let's Encrypt. Weitere Informationen finden Sie in diesem Artikel.
Stellen Sie zunächst sicher, dass Sie Certbot und Let's Encrypt installiert haben und die Ports 80 und 443 an 5000 und 5443 weitergeleitet werden (oder, falls überschrieben, die von Ihnen verwendeten benutzerdefinierten Ports).
Navigieren Sie zum Ordner raspbot im Projektverzeichnis und führen Sie den folgenden Befehl aus ( HINWEIS: Denken Sie daran, example.com in Ihre URL zu ändern):
$ certbot certonly --webroot -w ./dist -d example.com --config-dir ~ /.certbot/config --logs-dir ~ /.certbot/logs --work-dir ~ /.certbot/workBefolgen Sie die Anweisungen und warten Sie, bis der Vorgang abgeschlossen ist.
Wenn Sie die Standardkonfigurationen verwenden, können Sie das Zertifikat jetzt mit dem Ordner config/.sslcert im Ordner raspbot/raspbot verknüpfen ( HINWEIS: Denken Sie daran, example.com in Ihre URL zu ändern):
$ 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.pemStarten Sie den Server neu.
Mit Raspbot können Sie Ihr Gerät aus der Ferne herunterfahren oder neu starten und mit dem Raspberry Pi verbundene Geräte ein-/aushängen. Damit diese Befehle funktionieren, muss der Benutzer, der den Server ausführt, jedoch über die Berechtigung zum Ausführen von sudo /sbin/reboot und sudo /sbin/shutdown verfügen ( im Makefile definiert), sowie sudo mount und sudo umount .
Dies kann durch Hinzufügen der Zeile erfolgen
USERNAME ALL=NOPASSWD: /sbin/reboot,/sbin/shutdown,/bin/mount,/bin/umount zu /etc/sudoers mit sudo visudo , wobei USERNAME durch den Benutzernamen des Benutzers ersetzt werden sollte, der den Server ausführt. Stellen Sie sicher, dass Sie es nach allen vorherigen Konfigurationen für diesen Benutzer hinzufügen.
Raspbot wurde von Ardalan Samimi erstellt. Das Robotersymbol wurde von FontAwesome erstellt und steht unter der CC by 4.0-Lizenz.