Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Yet Another Firmware Selector

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


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.


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

./misc/ scan "{version}/targets/{target}" ~/openwrt/bin/ www/

This should do it.

The https link is used to access image files. There are different variables available:

  • {version}: Version in the profiles.json files. E.g. 19.07.4 or SNAPSHOT.
  • {target}: Main- and sub target, E.g. ath79/generic.
  • {base}: Distinct path to the targets directory. E.g. releases/18.06.8/targets/

The 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.


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

./misc/ scrape www/

Similar Projects

You can’t perform that action at this time.