

Raspbot est un serveur API REST léger, conçu pour le Raspberry Pi , ainsi qu'une application Web client qui vous permet de contrôler facilement votre appareil.
Construit avec NodeJS & Express 4 et Vue 2 & Webpack.
Raspbot est toujours en chantier .
Caractéristiques:
Découvrez une démo ici (connectez-vous avec le nom d'utilisateur admin et le mot de passe secret ).
Facultatif (-ish) :
Clonez ce dépôt sur votre Raspberry Pi :
$ git clone https://github.com/pkrll/Raspy Et exécutez make install dans le dossier racine du projet pour installer et configurer le serveur :
$ cd Raspy
$ make install Le dossier dist dans ./raspbot contient déjà la dernière version du client. L'exécution du serveur utilisera les fichiers qui s'y trouvent. Vous pouvez également créer manuellement l'application client en tapant make build dans le dossier racine. Cela peut prendre un certain temps, alors prenez une collation et attendez la fin des processus d'installation et de construction.
Après avoir installé toutes les dépendances et configuré le serveur, vous pouvez exécuter le serveur avec make server dans le dossier racine.
Il est cependant recommandé d'utiliser un gestionnaire de processus pour exécuter le serveur.
Pour démoniser l'application, vous pouvez utiliser PM2 , qui est un gestionnaire de processus pour les applications NodeJS. Si vous n'avez pas déjà PM2 , installez-le :
$ sudo npm install -g pm2 Utilisez make start pour exécuter le serveur en arrière-plan. Le NODE_ENV sera automatiquement défini sur "production" lors de l'utilisation de la règle 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
Utilisez make stop pour arrêter le serveur.
Suivez ces étapes pour que PM2 s'exécute au démarrage.
make start (si elle n'est pas déjà en cours d'exécution).pm2 save .pm2 startup systemd et copiez et collez la commande produite par le script.Exemple
$ 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/USERPour plus d'informations sur l'utilisation de PM2, consultez la documentation officielle ou ce guide de démarrage rapide .
Par défaut, Raspbot fonctionne sur le port 5000 et est accessible via http://ip-to-your-pi:5000 . Le nom d'utilisateur par défaut est admin avec le mot de passe secret . Assurez-vous de changer cela.
Les options de configuration se trouvent dans le fichier index.js dans le répertoire ./raspbot/config :
| Option | Description |
|---|---|
oauth.id | Clé Github OAuth pour effectuer des requêtes authentifiées lors de la vérification des mises à jour (facultatif) |
oauth.secret | Secret Github OAuth pour effectuer des requêtes authentifiées lors de la vérification des mises à jour (facultatif) |
port | Le port du serveur ( par défaut : 5000 ) |
httpsPort | Le port à utiliser pour les HTTP ( par défaut : 5443 ) |
databasePath | Chemin d'accès à la base de données des informations d'identification de l'utilisateur ( par défaut : config/db.json ) |
httpsOpts.cert | Chemin d'accès au certificat SSL ( par défaut : config/.sslcert/fullchain.pem ) |
httpsOpts.key | Chemin d'accès à la clé du certificat SSL ( par défaut : config/.sslcert/privkey.pem ) |
Remarque : Les options httpsOpts sont utilisées lors de l'activation des HTTP (voir Activation des HTTP ci-dessous).
Pour servir Raspbot sur HTTPs , vous devez placer vos fichiers de certificat SSL ( fullchain.pem et privkey.pem ) dans le dossier config/.sslcert .
Ci-dessous suit un guide sur la façon de générer des certificats à l'aide de Certbot et Let's encrypt. Pour plus d’informations, consultez cet article.
Assurez-vous d'abord que Certbot et Let's encrypt sont installés et que les ports 80 et 443 sont transférés vers 5000 et 5443 (ou, en cas de remplacement, les ports personnalisés que vous avez utilisés).
Accédez au dossier raspbot dans le répertoire du projet et exécutez la commande suivante ( REMARQUE : n'oubliez pas de remplacer example.com par votre URL) :
$ certbot certonly --webroot -w ./dist -d example.com --config-dir ~ /.certbot/config --logs-dir ~ /.certbot/logs --work-dir ~ /.certbot/workSuivez les instructions et attendez la fin.
Si vous utilisez les configurations par défaut, vous pouvez maintenant créer un lien symbolique entre le certificat et le dossier config/.sslcert dans le dossier raspbot/raspbot ( REMARQUE : n'oubliez pas de remplacer example.com par votre 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.pemRedémarrez le serveur.
Raspbot vous permet d'arrêter ou de redémarrer à distance votre appareil et de monter/démonter les appareils connectés au Raspberry Pi, mais pour que ces commandes fonctionnent, l'utilisateur exécutant le serveur doit avoir l'autorisation d'exécuter sudo /sbin/reboot et sudo /sbin/shutdown , ( défini dans le Makefile ), ainsi que sudo mount et sudo umount .
Cela peut être fait en ajoutant la ligne
USERNAME ALL=NOPASSWD: /sbin/reboot,/sbin/shutdown,/bin/mount,/bin/umount vers /etc/sudoers en utilisant sudo visudo , où USERNAME doit être remplacé par le nom d'utilisateur de l'utilisateur qui exécute le serveur. Assurez-vous de l'ajouter après toute configuration précédente pour cet utilisateur.
Raspbot a été créé par Ardalan Samimi . L'icône du robot a été créée par FontAwesome et est sous licence CC by 4.0.