A simple OpenWrt firmware selector using autocompletion. Uses plain HTML/CSS/JavaScript. Checkout the Demo.
- 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.
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 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.
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
- Gluon Firmware Selector: Original source of this project for images generated by Gluon, now with pictures.
- Freifunk Hennef Firmware Downloader: Similar to the project above, but PHP based.
- LibreMesh Chef: Allows to select configurations.
- GSoC Firmware Selector: Result of the GSoC
- FFB Firmware Selector: Build for Freifunk Bielefeld