

Raspbot은 Raspberry Pi 용으로 설계된 경량 REST API 서버이자 장치를 쉽게 제어할 수 있는 클라이언트 웹 애플리케이션입니다.
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 사용하여 서버를 실행할 수 있습니다.
하지만 프로세스 관리자를 사용하여 서버를 실행하는 것이 좋습니다.
애플리케이션을 데몬화하려면 NodeJS 애플리케이션의 프로세스 관리자인 PM2 사용할 수 있습니다. 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/USERPM2 사용 방법에 대한 자세한 내용은 공식 문서 또는 이 빠른 시작 가이드를 확인하세요.
기본적으로 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 ) |
참고: httpsOpts 옵션은 HTTP를 활성화할 때 사용됩니다(아래 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 4.0 라이선스에 따라 라이선스가 부여됩니다.