

Raspbot é um servidor API REST leve, projetado para Raspberry Pi , bem como um aplicativo cliente da web que permite controlar seu dispositivo com facilidade.
Construído com NodeJS e Express 4 e Vue 2 e Webpack.
O Raspbot ainda é um trabalho em andamento .
Características:
Confira uma demonstração aqui (faça login com nome de usuário admin e senha secret ).
Opcional (-ish):
Clone este repositório em seu Raspberry Pi:
$ git clone https://github.com/pkrll/Raspy E execute make install na pasta raiz do projeto para instalar e configurar o servidor:
$ cd Raspy
$ make install A pasta dist dentro de ./raspbot já contém a versão mais recente do cliente. A execução do servidor usará os arquivos lá. Você também pode criar manualmente o aplicativo cliente digitando make build na pasta raiz. Isso pode demorar um pouco, então faça um lanche e aguarde a conclusão dos processos de instalação e construção.
Depois de instalar todas as dependências e configurar o servidor, você pode executar o servidor com make server na pasta raiz.
Porém, é recomendado usar um gerenciador de processos para executar o servidor.
Para daemonizar o aplicativo, você pode usar PM2 , que é um gerenciador de processos para aplicativos NodeJS. Se você ainda não possui PM2 , instale-o:
$ sudo npm install -g pm2 Use make start para executar o servidor em segundo plano. O NODE_ENV será automaticamente definido como "produção" ao usar a regra 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
Use make stop para parar o servidor.
Siga estas etapas para executar PM2 na inicialização.
make start (se ainda não estiver em execução).pm2 save .pm2 startup systemd e copie e cole o comando produzido pelo script.Exemplo
$ 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/USERPara obter mais informações sobre como usar o PM2, consulte a documentação oficial ou este guia de início rápido .
Por padrão, o Raspbot é executado na porta 5000 e pode ser acessado por http://ip-to-your-pi:5000 . O nome de usuário padrão é admin com a senha secret . Certifique-se de mudar isso.
As opções de configuração podem ser encontradas no arquivo index.js dentro do diretório ./raspbot/config :
| Opção | Descrição |
|---|---|
oauth.id | Chave Github OAuth para fazer solicitações autenticadas ao verificar atualizações (opcional) |
oauth.secret | Segredo Github OAuth para fazer solicitações autenticadas ao verificar atualizações (opcional) |
port | A porta do servidor ( padrão: 5000 ) |
httpsPort | A porta a ser usada para HTTPs ( padrão: 5443 ) |
databasePath | Caminho para o banco de dados de credenciais do usuário ( padrão: config/db.json ) |
httpsOpts.cert | Caminho para o certificado SSL ( padrão: config/.sslcert/fullchain.pem ) |
httpsOpts.key | Caminho para a chave do certificado SSL ( padrão: config/.sslcert/privkey.pem ) |
Observação: as opções httpsOpts são usadas ao ativar HTTPs (consulte Habilitar HTTPs abaixo).
Para servir Raspbot por HTTPs , você precisa colocar seus arquivos de certificado SSL ( fullchain.pem e privkey.pem ) na pasta config/.sslcert .
Abaixo segue um guia de como gerar certificados usando Certbot e Let's encrypt. Para obter mais informações, consulte este artigo.
Primeiro, certifique-se de ter o Certbot e o Let's encrypt instalados e as portas 80 e 443 encaminhadas para 5000 e 5443 (ou, se substituídas, as portas personalizadas que você usou).
Navegue até a pasta raspbot no diretório do projeto e execute o seguinte comando ( NOTA: Lembre-se de alterar example.com para sua URL):
$ certbot certonly --webroot -w ./dist -d example.com --config-dir ~ /.certbot/config --logs-dir ~ /.certbot/logs --work-dir ~ /.certbot/workSiga as instruções e espere terminar.
Se estiver usando as configurações padrão, agora você pode vincular simbolicamente o certificado à pasta config/.sslcert na pasta raspbot/raspbot ( NOTA: Lembre-se de alterar example.com para seu 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.pemReinicie o servidor.
O Raspbot permite que você desligue ou reinicie remotamente seu dispositivo e monte/desmonte dispositivos conectados ao Raspberry Pi, mas para que esses comandos funcionem, o usuário que executa o servidor deve ter permissão para executar sudo /sbin/reboot e sudo /sbin/shutdown , ( definido no Makefile ), bem como sudo mount e sudo umount .
Isso pode ser feito adicionando a linha
USERNAME ALL=NOPASSWD: /sbin/reboot,/sbin/shutdown,/bin/mount,/bin/umount para /etc/sudoers usando sudo visudo , onde USERNAME deve ser substituído pelo nome de usuário do usuário que executa o servidor. Certifique-se de adicioná-lo após quaisquer configurações anteriores para esse usuário.
Raspbot foi criado por Ardalan Samimi . O ícone do robô foi criado por FontAwesome e está licenciado sob a licença CC by 4.0.