{"id":16144312,"url":"https://github.com/ryanj/poweroverinternet","last_synced_at":"2026-01-11T23:00:03.654Z","repository":{"id":66461899,"uuid":"205459377","full_name":"ryanj/poweroverinternet","owner":"ryanj","description":"a poorly-named container that monitors net accessibility, attempts to reboot your router when unresponsive","archived":false,"fork":false,"pushed_at":"2020-07-22T19:56:58.000Z","size":263,"stargazers_count":0,"open_issues_count":10,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T10:44:33.206Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanj.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-08-30T21:31:38.000Z","updated_at":"2019-10-01T20:50:45.000Z","dependencies_parsed_at":"2023-02-28T19:31:37.589Z","dependency_job_id":null,"html_url":"https://github.com/ryanj/poweroverinternet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ryanj/poweroverinternet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fpoweroverinternet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fpoweroverinternet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fpoweroverinternet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fpoweroverinternet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanj","download_url":"https://codeload.github.com/ryanj/poweroverinternet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanj%2Fpoweroverinternet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28326166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T22:11:01.104Z","status":"ssl_error","status_checked_at":"2026-01-11T22:10:58.990Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-10-10T00:12:32.968Z","updated_at":"2026-01-11T23:00:03.637Z","avatar_url":"https://github.com/ryanj.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚡POWER🔃OVER📶INTERNET🔌\n\na poorly-named service that uses GPIO signaling to restore failed network connections\n\nInspired by:\n\n * https://fedoramagazine.org/turnon-led-fedora-iot/\n\nRequirements:\n\n * an unreliable Internet connection\n * a Raspberry Pi or similar (ARM64 with GPIO)\n * an AC/DC Control Relay, available from http://iotrelay.com\n * two spare wires\n\n## Disclaimers\n\n1. **WARNING: this container attempts to drop your internet connection via GPIO!**\n2. *USE AT YOUR OWN RISK!!! (see LICENCE for additional detils)*\n3. for additional support - call your internet service provider (or consider finding a new one)!\n\n## Basics\nBasic usage with `docker` or `podman`:\n\n```bash\nsudo podman run -it --name rerouter -e DEBUG_OUT=enabled --device=/dev/gpiochip0 ryanj/poweroverinternet:v1\n```\n\nExample output:\n\n```\n⚡POWER🔃OVER📶INTERNET🔌\n1. 📶🤔 Check google.com:443 for availability...\n2. ⚡🔌 Send net restart trigger events via gpiochip0 pin 21\n📶📡 checking uplink...\n📶🖖 net uplink active\n🤖💤 sleeping for 60s...\n📶📡 checking uplink...\n⚠️ ↪️  lookup failed - trying again...\n📶❌ network uplink is unavailable!\n⚡🔃 restarting network uplink...\n🔌💫 net restart trigger issued via gpiochip0 pin 21\n📶✨ waiting 60s for network uplink to restart...\n⏳⏳ waiting...\n⏳ waiting...\n⌛ waiting...\n📶📡 testing uplink...\n🤔 testing uplink...\n🤔 testing uplink...\n🤔 testing uplink...\n📶✅ network uplink restored!\n📶🌟 net connection recovered after 77 seconds of downtime\n📶📡 checking uplink...\n📶🖖 net uplink active\n🤖💤 sleeping for 60s...\n```\n\n### Configuration\n\nBy default, this service will attempt to contact `google.com` on port `443`.  Env keys can be used to configure the service with `REMOTE_SERVER` and `REMOTE_PORT` settings:\n\n```bash\nsudo podman run -d -it --rm --name rerouter -e REMOTE_SERVER=192.168.1.1 -e REMOTE_PORT=80 --device=/dev/gpiochip0 ryanj/poweroverinternet:v1\n```\n\nThese settings assume that you have a router or cable modem configured to respond on `192.168.1.1:80`.\n\nIn the event that the service is unable to make a connection to the configured host and port address, a trigger signal will be sent to the configured GPIO headers, which (when configured correctly) will activate the AC/DC control relay to restart any connected hardware devices.\n\n### Installation\n\nThis service can be installed and managed via Kubernetes or systemd.\n\nExample systemd unit: [poweroverinternet.service](https://raw.githubusercontent.com/ryanj/poweroverinternet/master/poweroverinternet.service)\n\nTo install this systemd unit on Fedora30 IoT, try:\n\n```bash\nsudo curl -o /etc/systemd/system/poweroverinternet.service https://raw.githubusercontent.com/ryanj/poweroverinternet/master/poweroverinternet.service\n```\n\nFix permissions, and review the new service configuration:\n```bash\nsudo chmod 664 /etc/systemd/system/poweroverinternet.service\ncat /etc/systemd/system/poweroverinternet.service\n```\n\nUpdate the environment keys as needed. See [#configuration](#Configuration) for details.\n\nWhen ready, load the systemd unit and mark it active:\n```bash\nsudo systemctl daemon-reload\nsudo systemctl enable poweroverinternet\n```\n\nCheck the status of the service with:\n```bash\nsudo systemctl status poweroverinternet\n```\n\n### Development\n\nTested and developed on Fedora 30 IoT\n\nlocal:\n\n```bash\nsudo IDLE_SECONDS=2 DEBUG_OUT=enabled REMOTE_SERVER=192.168.1.1 REMOTE_PORT=80 ./poweroverinternet.sh\n```\n\nbuild:\n\n```bash\nsudo podman build --tag fedora:poweroverinternet -f ./Dockerfile\n```\n\ntest:\n\n```bash\nsudo podman run -it --name rerouter_test --device=/dev/gpiochip0 localhost/fedora:poweroverinternet\n```\n\nshare:\n\n```bash\nsudo podman tag\nsudo podman push\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanj%2Fpoweroverinternet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanj%2Fpoweroverinternet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanj%2Fpoweroverinternet/lists"}