{"id":22143753,"url":"https://github.com/invpe/espwatchtower","last_synced_at":"2026-05-01T12:31:55.854Z","repository":{"id":191654017,"uuid":"685009632","full_name":"invpe/ESPWatchTower","owner":"invpe","description":"ESP32 Wireless Intrusion Detection eXperiment","archived":false,"fork":false,"pushed_at":"2023-10-01T08:56:41.000Z","size":69,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-11T02:11:42.222Z","etag":null,"topics":["arduino","esp32","esp32-arduino","hobby-project","ids","wids","wifi-security"],"latest_commit_sha":null,"homepage":"","language":"C++","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/invpe.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":"2023-08-30T10:14:24.000Z","updated_at":"2025-06-30T15:13:55.000Z","dependencies_parsed_at":"2025-03-24T11:44:40.689Z","dependency_job_id":"442c4795-ef24-4344-833b-784a90857eb3","html_url":"https://github.com/invpe/ESPWatchTower","commit_stats":null,"previous_names":["invpe/espwatchtower"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/invpe/ESPWatchTower","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invpe%2FESPWatchTower","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invpe%2FESPWatchTower/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invpe%2FESPWatchTower/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invpe%2FESPWatchTower/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/invpe","download_url":"https://codeload.github.com/invpe/ESPWatchTower/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/invpe%2FESPWatchTower/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32497810,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["arduino","esp32","esp32-arduino","hobby-project","ids","wids","wifi-security"],"created_at":"2024-12-01T22:15:55.040Z","updated_at":"2026-05-01T12:31:55.819Z","avatar_url":"https://github.com/invpe.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![image](https://github.com/invpe/ESPWatchTower/assets/106522950/1ce50f55-5bde-4de7-a26e-021e15043a4b)\n\n# 🗼 WATCHTOWER\n\nWatchTower is a simple yet very effective WiFi intrusion detection system designed to safeguard your home network against unauthorized access. \nBy monitoring incoming data packets and comparing them to a whitelist of known devices, WatchTower swiftly identifies potential intruders. \nWhen an unknown device is detected, WatchTower triggers a red LED indicator, providing a visual alert. When there is nothing unusual happening, it stays in the shadows\nwithout any sign of life. \n\nAs with any \"red\" scenario it is good to dive deeper and either mark the device as trusted or change your Access Point password immediately.\nWatchTower enables telnet access for you to control its behaviour. \n\n\n# 🗞️ Use case\n\nReal world scenario where a friend of mine suspected his AP was used by his neighbour.\nSince APs are not user's friendly in terms of notifying you about breaches, i had an idea to simply shine a 🔴 \nwhen an untrusted device is found using his AP.\n\nWe went with WatchTower and found it really happening after few hours.\n\n![image](https://github.com/invpe/ESPWatchTower/assets/106522950/265d9c85-8e52-4a30-97bf-c01fe82795b2)\n\n\n# 🅰️ How does it work\n\nIt is really simple, that's why i like it.\n\nWatchTower will continosuly look for packets going through your AP over WIFI.\nAll devices that happen to send data with your AP will be added to a list.\nDevices are marked **untrusted** by default, so you will need some minimal time to isolate the ones you trust.\nThen when you're all set, anytime a device that is **untrusted** is seen talking with your AP, you will get a 🔴 \n\nUnder the hood, you will have access to a telnet server running on the WatchTower,\nthere you can set names, trust, untrust, add, delete devices.\n\n\n# 🚶‍♂️ Next steps if you're still interested.\n\n- [Install](https://github.com/invpe/ESPWatchTower/blob/main/install_manual.md)\n- [Use](https://github.com/invpe/ESPWatchTower/blob/main/usage_manual.md)\n- Have fun ! 🙂\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvpe%2Fespwatchtower","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finvpe%2Fespwatchtower","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvpe%2Fespwatchtower/lists"}