{"id":20189150,"url":"https://github.com/tizilogic/gdo-server","last_synced_at":"2026-04-16T17:32:25.703Z","repository":{"id":112089836,"uuid":"192605482","full_name":"tizilogic/gdo-server","owner":"tizilogic","description":"Simple Server to securely control GPIO on RPi Hardware","archived":false,"fork":false,"pushed_at":"2024-04-13T20:25:08.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-24T03:03:52.857Z","etag":null,"topics":["iot","python3","raspberry-pi"],"latest_commit_sha":null,"homepage":null,"language":"HTML","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/tizilogic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null}},"created_at":"2019-06-18T20:07:14.000Z","updated_at":"2024-04-13T20:25:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"e7ed3693-bb6b-4ceb-9c94-5a3b948d396c","html_url":"https://github.com/tizilogic/gdo-server","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/tizilogic%2Fgdo-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tizilogic%2Fgdo-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tizilogic%2Fgdo-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tizilogic%2Fgdo-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tizilogic","download_url":"https://codeload.github.com/tizilogic/gdo-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241622601,"owners_count":19992504,"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":["iot","python3","raspberry-pi"],"created_at":"2024-11-14T03:34:27.645Z","updated_at":"2026-04-16T17:32:25.621Z","avatar_url":"https://github.com/tizilogic.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gdo-server\n\nTHIS IS A WORK IN PROGRESS...\n\nSimple Server to securely control GPIO on RPi Hardware.\nI use this to open my garage door at home. Used together\nwith [gdo-client](https://github.com/tizilogic/gdo-client)\nbut also provides a rudimentary web interface to use as \nstandalone.\n\n## The Setup\n\nI use an old Raspberry Pi model B that I have hooked up to\nmy remote control for the garage door. I run Apache2 on it\ntogether with mod_wsgi to run my server software, that enables\nclients to connect and activate the GPIO pin that is being \nused to activate the remote for the garage.\n\n## Trying to stay \"safe\"\n\nSince I really don't want anyone else opening my garage door,\nI tried to implement a couple of safe guards to prevent common\nattacks:\n\n1. I'm using [letsencrypt](https://letsencrypt.org/) to encrypt\nweb traffic.\n1. A pin can only be activated with a passphrase *(don't worry\nit isn't the one found on this repo... I use a crazy long one\nirl.)*\n1. The server provides 64 bytes of `salt` that is valid for 60 \nseconds and can only be used once. *(The `salt` comes from \n`/dev/urandom` and the server waits for a random fraction of\na second before sending the `salt`, to make it more robust\nagainst timing attacks)*\n1. `SHA3-512` is being used together with the `salt` for \ntransmitting the salted and hashed passphrase.\n\nThose are the safeguards I was able to come up with, but as it\nstands with cryptography, usually something believed to be safe\nin reality ever so often isn't, so fingers crossed. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftizilogic%2Fgdo-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftizilogic%2Fgdo-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftizilogic%2Fgdo-server/lists"}