diff --git a/GpioController/appsettings.json b/GpioController/appsettings.json index db7d565..eb18778 100644 --- a/GpioController/appsettings.json +++ b/GpioController/appsettings.json @@ -7,11 +7,11 @@ } }, "Authorization": { - "Enabled": false, + "Enabled": true, "AuthorizedEmails": [ "yourEmail@gmail.com" ], - "AuthorizedCorsOrigins": ["http://yourProductionWebsite:3000", "http://localhost:3000"] + "AuthorizedCorsOrigins": ["https://pinpanda-api.com"] }, "Filters": { "AllowOnlyTheseChipsets": [], diff --git a/Installation/linux-arm64/pinpanda-api-1.4.deb b/Installation/linux-arm64/pinpanda-api-1.4.deb index bb905d6..9c370f2 100644 Binary files a/Installation/linux-arm64/pinpanda-api-1.4.deb and b/Installation/linux-arm64/pinpanda-api-1.4.deb differ diff --git a/Installation/linux-x64/pinpanda-api-1.4.deb b/Installation/linux-x64/pinpanda-api-1.4.deb index ddb6a3b..acc118d 100644 Binary files a/Installation/linux-x64/pinpanda-api-1.4.deb and b/Installation/linux-x64/pinpanda-api-1.4.deb differ diff --git a/README.md b/README.md index b698129..f17f12b 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@

The Cutest Way to Control Your GPIOs

+

https://pinpanda-api.com/


@@ -40,8 +41,9 @@

  • Installation
  • -
  • Usage
  • -
  • Optional Settings
  • +
  • Online Usage
  • +
  • Local Usage
  • +
  • Settings
  • Roadmap
  • Contributing
  • License
  • @@ -53,25 +55,19 @@ ## About The Project -PinPanda-Api is here to make your DIY projects a breeze! No more getting tangled in chipset architectures or stressing over the quirks of different board manufacturers. Just dive in and get started fast! +PinPanda-API is a easily installable REST API that allows you to interact with GPIOs online at https://pinpanda-api.com/ or locally. No coding required. +It makes any DIY project a breeze. No more getting involved with chipset architectures or worrying about different board manufacturers. Just dive in and get started fast! -No coding required. Just follow the installation steps to get quick access to GPIO functionality. +Follow the installation steps to get started.

    (back to top)

    ## Getting Started ### Prerequisites -- Have curl installed: -```sh - sudo apt-get install curl -``` - - - -- Have a Debian/Ubuntu Linux Distro installed on your board. +- Have an Ubuntu / Debian Distro installed on your board.
    More Info
    Follow your boards documentation if you haven't already.
    @@ -84,6 +80,12 @@ No coding required. Just follow the installation steps Optional Installs +- Install curl: + +```sh + sudo apt-get install curl +``` + - Install crontab if you want to automatically run the API on startup. ```sh @@ -94,10 +96,13 @@ No coding required. Just follow the installation steps - Optional Steps + (Optional) Have PinPanda-API launch on Reboot 1. To start the API on reboot: ```sh @@ -109,12 +114,23 @@ No coding required. Just follow the installation steps +
    +(Optional, but Required for Online Control) Grant Access + +1. Go into the appsettings.json file and update the `AuthorizedEmails` value with the email address you'll be logging in with.
    + Logo +2. At this point, the API is only available on your local intranet. To make it accessible from [PinPada-API](https://pinpanda-api.com) you'll need to give it access. To do this login to your router or firewall and add a rule. Allow TCP traffic for the IP of your SBC Development Board and the port the API is running on (Default is 3005). It should look something like this:
    + Logo
    + + +
    +

    (back to top)

    -## Usage +## Local-Usage [Postman Documentation](https://documenter.getpostman.com/view/2447338/2sB2cSiPcM)
    GET /sbc/chipsets/gpios @@ -215,11 +231,25 @@ No coding required. Just follow the installation steps +## Online-Usage +pre-requisite: +1 - Navigate to the [PinPanda-API website](https://pinpanda-api.com)
    +Logo +


    2 - Login with Google
    +Logo +


    3 - Visit [whatismyipaddress](https://whatismyipaddress.com/) to find and copy your public IP address. This is how [PinPanda-API](https://pinpanda-api.com) will communicate securely with your board.
    +Logo +


    4 - Enter in that IPv4 address you just copied, followed by the port your API is running on. (Default is 3005)
    +Logo +


    5 - Add a new request and start interacting with the GPIOs on your board.
    +Logo +


    6 - Send requests to turn off / on your GPIO pins. Use the red stop button to cancel all active requests. That's it!
    + -## Optional Settings -To see your API settings, refer to the [AppSettings](https://github.com/SparkyCoder/PinPanda-API/blob/main/GpioController/appsettings.json) file in your optional installs directory: `/opt/pinpanda-api-1.4`.
    -All the settings below are optional. PinPanda should work without changing any of these. +## Advanced-Settings + +To update your API settings, refer to the [AppSettings](https://github.com/SparkyCoder/PinPanda-API/blob/main/GpioController/appsettings.json) file in your optional installs directory: `/opt/pinpanda-api-1.4`. #### Kestral: - `Kestral:Endpoints:Http:Url` - This is the endpoint your API will bind to.
    @@ -255,15 +285,17 @@ All the settings below are optional. PinPanda should work without changing any o ## Roadmap -- [x] add to list available GPIOs +- [x] Add endpoint to list available GPIOs - [x] Add endpoint to Update GPIO state - [x] Add endpoint to read GPIO values +- [x] Add settings to make usage easier (filter, security, configuration, etc...) - [x] Add secure endpoints for Google JWT Auth +- [x] Create UI to interface with individual boards +- [x] Add communication between SBC and [PinPanda-API](https://pinpanda-api.com) +- [x] Add documentation - [ ] Add additional chipset architectures - [ ] linux-muscl-64 - [ ] linux-arm -- [ ] Add UI for interacting with API -- [ ] Update Install See the [open issues](https://github.com/SparkyCoder/PinPanda-API/issues) for a full list of proposed features (and known issues). @@ -275,7 +307,19 @@ See the [open issues](https://github.com/SparkyCoder/PinPanda-API/issues) for a ## Contributing If you have a suggestion that would make this API better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". -

    Don't forget to give the project a star! Thanks again!

    +

    + + +Contribute in other ways. Sponserships are solely responsible for keeping this project running. If you found this repo useful please consider becoming a sponsor. + +[![Sponsor](https://img.shields.io/badge/Sponsor-💖-ff69b4?style=for-the-badge)](https://github.com/sponsors/SparkyCoder) + + +

    Don't forget to give the project a star!

    + + + +

    Thank you!

    (back to top)

    @@ -284,7 +328,7 @@ If you have a suggestion that would make this API better, please fork the repo a ## License - See [LICENSE](https://github.com/SparkyCoder/PinPanda-API/blob/main/LICENSE) for more information. + See [LICENSE.txt](https://github.com/SparkyCoder/PinPanda-API/blob/main/LICENSE) for more information.

    (back to top)

    @@ -311,7 +355,7 @@ Project Link: [Gpio Controller Api](https://github.com/SparkyCoder/PinPanda-API) [issues-shield]: https://img.shields.io/github/issues/SparkyCoder/PinPanda-Api.svg?style=for-the-badge [issues-url]: https://github.com/SparkyCoder/PinPanda-API/issues [license-shield]: https://img.shields.io/github/license/SparkyCoder/PinPanda-Api.svg?style=for-the-badge -[license-url]: https://github.com/SparkyCoder/PinPanda-API/blob/master/LICENSE +[license-url]: https://github.com/SparkyCoder/PinPanda-API/blob/master/LICENSE.txt [product-screenshot]: images/screenshot.png [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555 [linkedin-url]: https://www.linkedin.com/in/david-kobuszewski-60315428 diff --git a/images/step0.png b/images/step0.png new file mode 100644 index 0000000..bed66a6 Binary files /dev/null and b/images/step0.png differ diff --git a/images/step1.png b/images/step1.png new file mode 100644 index 0000000..e32bba0 Binary files /dev/null and b/images/step1.png differ diff --git a/images/step2.png b/images/step2.png new file mode 100644 index 0000000..2f2afae Binary files /dev/null and b/images/step2.png differ diff --git a/images/step3.png b/images/step3.png new file mode 100644 index 0000000..a155920 Binary files /dev/null and b/images/step3.png differ diff --git a/images/step4.png b/images/step4.png new file mode 100644 index 0000000..018518d Binary files /dev/null and b/images/step4.png differ diff --git a/images/step5.png b/images/step5.png new file mode 100644 index 0000000..a290109 Binary files /dev/null and b/images/step5.png differ diff --git a/images/step6.png b/images/step6.png new file mode 100644 index 0000000..1fe61e8 Binary files /dev/null and b/images/step6.png differ