/yet_another_firmware_selector

Yet another OpenWrt firmware selector. With custom image builder support.

Primary LanguageJavaScriptCreative Commons Zero v1.0 UniversalCC0-1.0

Yet Another Firmware Selector

A simple OpenWrt firmware selector using autocompletion. Uses plain HTML/CSS/JavaScript. Checkout the Demo.

image

Quick Run

  • Download the sources and change the working directory
  • Start webserver (e.g. python3 -m http.server)
  • Go to http://localhost:8000/www/ in your web browser

Configure with config.js.

Attended Sysupgrade Support

This firmware selector can speak to a ASU server to build custom images. To enable the feature, the asu_url option in the config.js needs to be set.

Installation

Place the www/ folder somewhere web accessible. Then use the collect.py script to update the config.json file:

./misc/collect.py scan "https://firmware.example.com/{version}/targets/{target}" ~/openwrt/bin/ www/

This should do it.

The https link is used to access image files. {version} will be replaced by the name of the release, e.g. 19.07.4. {taget} will be replaced by the main- and sub target, e.g. ath79/generic.

The collect.py script searches the ~/openwrt/bin/ directory for profile.json files. These are merged into overview.json files (one per release). The overview.json files are then placed into www/data/ and www/config.js is updated.

To let OpenWrt create profile.json files, enable the build setting (make menuconfig): Global build settings ---> [*] Create JSON info files per build image.

If the option is not available (OpenWrt 18.06 or 19.07.3), apply commit openwrt/openwrt@881ed09.

Scrape

If you want to scrape the OpenWrt download website and update the config.js:

./collect.py --download-url "https://firmware.example.com/{version}/targets/{target}" scrape https://downloads.openwrt.org /var/www/firmware_selector

Similar Projects