{"id":17234643,"url":"https://github.com/vabene1111/django-pigpio","last_synced_at":"2025-04-14T02:06:29.596Z","repository":{"id":79133176,"uuid":"174149068","full_name":"vabene1111/Django-PiGPIO","owner":"vabene1111","description":"Control \u0026 Program your Raspberry Pi's GPIO from a convenient web interface (with Docker)","archived":false,"fork":false,"pushed_at":"2024-04-16T23:45:45.000Z","size":1973,"stargazers_count":12,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-14T02:06:21.450Z","etag":null,"topics":["api","blockly","django","docker","docker-compose","python","raspberry-pi"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vabene1111.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-03-06T13:20:13.000Z","updated_at":"2025-03-23T17:50:54.000Z","dependencies_parsed_at":"2023-05-23T11:00:13.414Z","dependency_job_id":null,"html_url":"https://github.com/vabene1111/Django-PiGPIO","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vabene1111%2FDjango-PiGPIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vabene1111%2FDjango-PiGPIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vabene1111%2FDjango-PiGPIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vabene1111%2FDjango-PiGPIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vabene1111","download_url":"https://codeload.github.com/vabene1111/Django-PiGPIO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248809043,"owners_count":21164896,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","blockly","django","docker","docker-compose","python","raspberry-pi"],"created_at":"2024-10-15T05:29:55.612Z","updated_at":"2025-04-14T02:06:29.546Z","avatar_url":"https://github.com/vabene1111.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DjangoPiGPIO\nDjango PiGPIO is an easy way to program your Raspberry Pi's GPIO \npins from a modern webinterface.\n\nGoogles excellent [Blockly](https://developers.google.com/blockly/) library is used to\ncreate programs to allow everyone to get up and running quickly.\n\n![Screenshot](https://i.imgur.com/uYmrsxz.png)\n\n## Features\n- Super easy and fast to install using [Docker](https://www.docker.com/) and \n[Docker Compose](https://docs.docker.com/compose/)\n- Highly customizable programming environment\n- Remote-Control for GPIO Pins (see Screenshots)\n- Built-in documentation\n- API to run programs and control individual GPIO pins (built your own client ?!)\n- Modern Webinterface based on python django\n- Mobile friendly UI (as good as it gets with blockly)\n- Usable without internet access (trough ad-hoc WiFi network or wired connection)\n- English and German language support (easily translatable into more languages)\n\n[More Screenshots](https://imgur.com/gallery/DOGCdMK)\n\n## Intended use\nThis program is designed to allow for easy and on the fly programming of a raspberry pi.\nAlthough it supports having multiple users it is not intended to be used by multiple users at the\nsame time (this is mainly because one Pi only has one set of GPIO pins).\n\nPiGPIO is designed to work offline with the raspberry being accessed either via an ad-hoc WiFi network \nor a wired connection. For this reason all resources (CSS, JS, ...) are included in this repository.\n\nPiGPIO was not designed with a focus on security. Even though Django is pretty secure by default\nthere are several places where an attacker could compromise the security of the PiGPIO app. This is \nno problem if used in local environment, should you plan to use this on a public network consider \nusing a firewall.\n\n## Installation\n1. Clone this repository at your desired install location\n2. Initialize submodules with `git submodule update --init --recursive`\n3. Copy `.env.template` to `.env` and fill in every variable accordingly\n4. Start the docker container using `docker-compose up -d`\n5. Run `update.sh` script to create your database and collect static files\n6. To create a user execute into the docker container (`docker-compose run web_pigpio python3 sh`) and run `manage.py createsuperuser`\n\n\n### Manual Installation\nTo install PiGPIO without docker please refer to any generalizes installation tutorial for Django\napplications. Make sure to **edit `settings.py`** or set the environment variables manually.  \n\nTo install all the packages you need run `pip install -r requirements.txt`\n\nUse `manage.py migrate` and `manage.py collectstatic` to setup your database and collect the static files.\n\n## Updating\nIf you are using Docker simply pull the latest code, start the container and run `update.sh`.\n\nIf not its basically the same but you need to run `migrate` and `collectstatic` manually and you\nmight have problems if you modified `settings.py`.\n\n## Contributing\nFeel free to [report bugs]() or create pull requests if you fix or improve something.\n\n1. Clone the repository and init the submodules `git submodule update --init --recursive`\n2. Dont forget to set the environment variables when working locally (and not using docker). In PyCharm this can be done in the run configuration.\n    The following environment variables are sufficient and recommended for development\n    ```\n    DEBUG=1\n    ALLOWED_HOSTS=*\n    SECRET_KEY=\u003csome random key\u003e\n    DB_ENGINE=django.db.backends.sqlite3\n    POSTGRES_DB=db.sqlite3\n    ```\n\n3. When working on a machine that does not have the GPIO python library installed (basically anything but the pi itself)\n   it might be useful to install the [RPi.GPIO-def package](https://github.com/Def4l71diot/RPi.GPIO-def) to prevent errors.\n   Do note that this package just makes the interpreter think you have the required library's, no code is\n   actually executed.\n4. Install requirements `pip install -r requirements.txt` (or with PyCharm open `requirements.txt` and click on banner)\n5. Setup database with `manage.py migrate`.\n   \u003e NOTE: You need to either set the environment variables globally or when using PyCharm set them under `Settings | Languages and Frameworks | Django`\n\n\n## License\nMost of the Code in this repository is licensed under the MIT License which basically allows you to do whatever you want.\nClick [here](https://github.com/vabene1111/Django-PiGPIO/blob/master/LICENSE.md) to see some actually useful information \nabout what you can and cannot do.\n\nAdditionally the [Blockly](https://developers.google.com/blockly/) library by Google is used to create the programs. It is licensed under\nthe `Apache License 2.0` which also basically allows everything. For more details please\nrefer to [the original license](https://github.com/google/blockly/blob/master/LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvabene1111%2Fdjango-pigpio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvabene1111%2Fdjango-pigpio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvabene1111%2Fdjango-pigpio/lists"}