{"id":16963250,"url":"https://github.com/ruzickap/ansible-openwrt","last_synced_at":"2026-03-06T04:36:42.214Z","repository":{"id":39787744,"uuid":"197537246","full_name":"ruzickap/ansible-openwrt","owner":"ruzickap","description":"Ansible playbooks configuring Openwrt devices (Wi-Fi routers)","archived":false,"fork":false,"pushed_at":"2026-03-01T10:53:40.000Z","size":423,"stargazers_count":7,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-01T11:45:02.098Z","etag":null,"topics":["ansible","ansible-playbook","openwrt","public","router","wifi"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ruzickap.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2019-07-18T07:40:02.000Z","updated_at":"2026-03-01T10:53:43.000Z","dependencies_parsed_at":"2024-02-06T09:29:57.561Z","dependency_job_id":"1c351fa2-98f8-4a17-900a-9ef633e94420","html_url":"https://github.com/ruzickap/ansible-openwrt","commit_stats":{"total_commits":124,"total_committers":5,"mean_commits":24.8,"dds":0.5080645161290323,"last_synced_commit":"8b09c76abe26c871c95ad34148c83a099d1e78ca"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/ruzickap/ansible-openwrt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruzickap%2Fansible-openwrt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruzickap%2Fansible-openwrt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruzickap%2Fansible-openwrt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruzickap%2Fansible-openwrt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ruzickap","download_url":"https://codeload.github.com/ruzickap/ansible-openwrt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ruzickap%2Fansible-openwrt/sbom","scorecard":{"id":892727,"data":{"date":"2025-08-24T03:18:45Z","repo":{"name":"github.com/ruzickap/ansible-openwrt","commit":"9aef5d2e13aab6718a14f095425b3a0aa2ed2ff9"},"scorecard":{"version":"v5.2.1","commit":"ab2f6e92482462fe66246d9e32f642855a691dc1"},"score":8.1,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#code-review"}},{"name":"Maintained","score":10,"reason":"24 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#maintained"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#binary-artifacts"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dangerous-workflow"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#security-policy"}},{"name":"Dependency-Update-Tool","score":10,"reason":"update tool detected","details":["Info: detected update tool: RenovateBot: .github/renovate.json5:1"],"documentation":{"short":"Determines if the project uses a dependency update tool.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#dependency-update-tool"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#packaging"}},{"name":"Pinned-Dependencies","score":10,"reason":"all dependencies are pinned","details":["Info:  12 out of  12 GitHub-owned GitHubAction dependencies pinned","Info:   9 out of   9 third-party GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#pinned-dependencies"}},{"name":"Token-Permissions","score":10,"reason":"GitHub workflow tokens follow principle of least privilege","details":["Info: jobLevel 'packages' permission set to 'read': .github/workflows/codeql-actions.yml:25","Warn: jobLevel 'contents' permission set to 'write': .github/workflows/release-please.yml:19","Info: topLevel permissions set to 'read-all': .github/workflows/codeql-actions.yml:17","Info: topLevel permissions set to 'read-all': .github/workflows/mega-linter.yml:13","Info: topLevel permissions set to 'read-all': .github/workflows/pr-slack-notification.yml:22","Info: topLevel permissions set to 'read-all': .github/workflows/release-please.yml:13","Info: topLevel permissions set to 'read-all': .github/workflows/renovate.yml:49","Info: topLevel permissions set to 'read-all': .github/workflows/scorecards.yml:14","Info: topLevel 'pull-requests' permission set to 'read': .github/workflows/semantic-pull-request.yml:16"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#token-permissions"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#vulnerabilities"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#cii-best-practices"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":9,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'main'","Info: 'force pushes' disabled on branch 'main'","Warn: 'branch protection settings apply to administrators' is disabled on branch 'main'","Info: 'stale review dismissal' is required to merge on branch 'main'","Info: required approving review count is 2 on branch 'main'","Info: codeowner review is required on branch 'main'","Info: 'last push approval' is required to merge on branch 'main'","Info: 'up-to-date branches' is required to merge on branch 'main'","Info: status check found to merge onto on branch 'main'","Info: PRs are required in order to make changes on branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#license"}},{"name":"SAST","score":9,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 4 commits out of 5 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#sast"}},{"name":"CI-Tests","score":10,"reason":"5 out of 5 merged PRs checked by a CI test -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project runs tests before pull requests are merged.","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#ci-tests"}},{"name":"Contributors","score":3,"reason":"project has 1 contributing companies or organizations -- score normalized to 3","details":["Info: found contributions from: mckinsey \u0026 company"],"documentation":{"short":"Determines if the project has a set of contributors from multiple organizations (e.g., companies).","url":"https://github.com/ossf/scorecard/blob/ab2f6e92482462fe66246d9e32f642855a691dc1/docs/checks.md#contributors"}}]},"last_synced_at":"2025-08-24T12:28:48.710Z","repository_id":39787744,"created_at":"2025-08-24T12:28:48.710Z","updated_at":"2025-08-24T12:28:48.710Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30161897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T04:22:03.816Z","status":"ssl_error","status_checked_at":"2026-03-06T04:22:00.183Z","response_time":250,"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":["ansible","ansible-playbook","openwrt","public","router","wifi"],"created_at":"2024-10-13T23:24:09.183Z","updated_at":"2026-03-06T04:36:42.180Z","avatar_url":"https://github.com/ruzickap.png","language":"Jinja","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ansible-openwrt\n\nAnsible playbooks configuring OpenWrt devices (Wi-Fi routers)\n\n\u003e 💡 Always [build](https://firmware-selector.openwrt.org/) your own OpenWrt\n\u003e Firmware with installed packages (it will save disk space)\n\n## Flash router and allow SSH access to the router form the WAN\n\n```bash\n# Flash OpenWrt firmware\nsysupgrade -p -n -v https://sysupgrade.openwrt.org/store/834d5261fadfab7d4f781ca4aefc8c9d8a9492bfd832365b4f1bcb0bea0de956/openwrt-24.10.0-0a8242515cd3-ipq40xx-generic-zyxel_nbg6617-squashfs-sysupgrade.bin\n\n# Set root password\npasswd\n\n# Enable SSH access from the WAN\nwget https://github.com/ruzickap.keys -O /etc/dropbear/authorized_keys\n\nuci add firewall rule\nuci set firewall.@rule[-1].name=Allow-SSH\nuci set firewall.@rule[-1].src=wan\nuci set firewall.@rule[-1].target=ACCEPT\nuci set firewall.@rule[-1].proto=tcp\nuci set firewall.@rule[-1].dest_port=22\n\nuci add firewall redirect\nuci set firewall.@redirect[-1].name=Allow-SSH-22222\nuci set firewall.@redirect[-1].src=wan\nuci set firewall.@redirect[-1].proto=tcp\nuci set firewall.@redirect[-1].src_dport=22222\nuci set firewall.@redirect[-1].dest=lan\nuci set firewall.@redirect[-1].dest_port=22\nuci commit\n/etc/init.d/firewall restart\n```\n\n## [ASUS RT-AX53U](https://openwrt.org/toh/asus/rt-ax53u)\n\n* [Firmware](https://firmware-selector.openwrt.org/?version=24.10.0\u0026target=ramips%2Fmt7621\u0026id=asus_rt-ax53u)\n\nList of partitions after OpenWRT firmware installation (version 23.05.5) with\npackages installed via Ansible:\n\n```console\n# df -h\nFilesystem                Size      Used Available Use% Mounted on\n/dev/root                 4.3M      4.3M         0 100% /rom\ntmpfs                   122.2M      5.9M    116.3M   5% /tmp\n/dev/ubi0_1              33.0M     29.8M      1.6M  95% /overlay\noverlayfs:/overlay       33.0M     29.8M      1.6M  95% /\ntmpfs                   512.0K         0    512.0K   0% /dev\n```\n\nList of partitions after OpenWRT firmware installation (version 23.05.5):\n\n```console\n# df -h\nFilesystem                Size      Used Available Use% Mounted on\n/dev/root                 4.3M      4.3M         0 100% /rom\ntmpfs                   122.2M     80.0K    122.1M   0% /tmp\n/dev/ubi0_1              33.0M    160.0K     31.2M   0% /overlay\noverlayfs:/overlay       33.0M    160.0K     31.2M   0% /\ntmpfs                   512.0K         0    512.0K   0% /dev\n```\n\nList of partitions after OpenWRT firmware installation (version 24.10.0):\n\n```console\n# df -h\nFilesystem                Size      Used Available Use% Mounted on\n/dev/root                 4.5M      4.5M         0 100% /rom\ntmpfs                   121.6M    284.0K    121.4M   0% /tmp\n/dev/ubi0_1              32.7M     48.0K     30.9M   0% /overlay\noverlayfs:/overlay       32.7M     48.0K     30.9M   0% /\ntmpfs                   512.0K         0    512.0K   0% /dev\n```\n\nList of partitions after Customized OpenWRT firmware installation\n(version 24.10.0) where packages are part of the firmware image:\n\n```console\n# df -h\nFilesystem                Size      Used Available Use% Mounted on\n/dev/root                25.0M     25.0M         0 100% /rom\ntmpfs                   121.6M      1.1M    120.5M   1% /tmp\n/dev/ubi0_1              13.6M     60.0K     12.8M   0% /overlay\noverlayfs:/overlay       13.6M     60.0K     12.8M   0% /\ntmpfs                   512.0K         0    512.0K   0% /dev\n```\n\n## [ZyXEL NBG6617](https://openwrt.org/toh/zyxel/nbg6617)\n\n* [Firmware](https://firmware-selector.openwrt.org/?version=24.10.0\u0026target=ipq40xx%2Fgeneric\u0026id=zyxel_nbg6617)\n\nList of partitions after OpenWRT firmware installation (version 23.05.5) with\npackages installed via Ansible:\n\n```console\nFilesystem                Size      Used Available Use% Mounted on\n/dev/root                15.5M     15.5M         0 100% /rom\ntmpfs                   120.7M      6.2M    114.5M   5% /tmp\n/dev/mtdblock14           9.0M    452.0K      8.6M   5% /overlay\noverlayfs:/overlay        9.0M    452.0K      8.6M   5% /\ntmpfs                   512.0K         0    512.0K   0% /dev\n/dev/sda1                 3.7G      6.9M      3.2G   0% /mnt\n```\n\nList of partitions after OpenWRT firmware installation (version 24.10.0):\n\n```console\n# df -h\nFilesystem                Size      Used Available Use% Mounted on\n/dev/root                21.3M     21.3M         0 100% /rom\ntmpfs                   120.7M      2.9M    117.8M   2% /tmp\ntmpfs                   120.7M    128.0K    120.6M   0% /tmp/root\ntmpfs                   512.0K         0    512.0K   0% /dev\n/dev/mtdblock14           3.3M    304.0K      3.0M   9% /overlay\noverlayfs:/overlay        3.3M    304.0K      3.0M   9% /\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruzickap%2Fansible-openwrt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fruzickap%2Fansible-openwrt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fruzickap%2Fansible-openwrt/lists"}