HI! :D
This is my (alpha) gr-iridium web controler for the RPI. This application was built to act as a web UI for the existing gr-iridium binary and iridium-toolkit scripts.
Built with Laravel 7 for PHP 7.2.5+ and MySQL for the DB, this was a exercise for me to become more proficient with PHP/Laravel development and learn more about how PHP handles websockets and async jobs. In my experience, Using PHP/Laravel wasn't the best use for this tech for building a dedicated controller for a RPI. Node.JS may be a better fit for any future progress with this web UI.
- PHP 7+
- MySQL
- gr-iridium
- iridium-toolkit
- GNU Radio
$ git clone https://github.com/notpike/pi-iridium
$ ./INIT.sh
After you run the INIT.sh script, update lines 48 and 49 the .env file found in the root directory of pi-iridium. Be sure to use the full system paths (ex. /home/user/gr-iridium) for gr-iridium and iridium-toolkit folders.
If you want to run this localy use the following script.
$ ./START_LOCAL.sh
Remote services use this.
$ ./START.sh
To stop the service, use the script below.
$ ./STOP.sh
- User: iridium
- Pass: iridium
Below are known security issues for this alpha. No plans on correcting these for the alpha. Future versions of this will be done in Node.js. Also like I said, it's just an alpha. :)
- DB creds are built from DB_INIT.sql (which is loaded by running INIT.sh) and creates user 'user' has a password of 'pass'. If you change this be sure the creds are reflected in the .env file.
- Websockets are PUBLIC
- Websockets API key pre-set in .env and bootstrap.js (Use node to reload)
- Downloads are NOT behind the web auth and can be downloaded without being loged in
Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as:
- Simple, fast routing engine.
- Powerful dependency injection container.
- Multiple back-ends for session and cache storage.
- Expressive, intuitive database ORM.
- Database agnostic schema migrations.
- Robust background job processing.
- Real-time event broadcasting.
Laravel is accessible, powerful, and provides tools required for large, robust applications.