blob: 2452880f739383aec37b9b26d81b11f84aa5e5e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# Yet Another Firmware Selector
A simple OpenWrt firmware selector using autocompletion. Uses plain
HTML/CSS/JavaScript. Checkout the [Demo](https://mwarning.github.io/yet-another-firmware-selector/www/).

## 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](www/config.js).
## Attended Sysupgrade Support
This firmware selector can speak to a [ASU server](https://github.com/aparcar/asu) 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](https://github.com/openwrt/openwrt/commit/881ed09ee6e23f6c224184bb7493253c4624fb9f).
### 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
- [Gluon Firmware Selector](https://github.com/freifunk-darmstadt/gluon-firmware-selector): Original source of this project for images generated by [Gluon](https://github.com/freifunk-gluon/), now with pictures.
- [Freifunk Hennef Firmware Downloader](https://github.com/Freifunk-Hennef/ffhef-fw-dl): Similar to the project above, but PHP based.
- [LibreMesh Chef](https://github.com/libremesh/chef/): Allows to select configurations.
- [GSoC Firmware Selector](https://github.com/sudhanshu16/openwrt-firmware-selector/): Result of the GSoC
- [FFB Firmware Selector](https://github.com/freifunk-bielefeld/firmware-selector): Build for Freifunk Bielefeld
|