What it is
A browser-based configuration front-end for OpenWrt. You select your device, fill in the settings you want (network, WiFi, VLANs, firewall zones, WireGuard, AdGuard Home, wifi mesh, multi-WAN, etc.), and it produces a single image you flash once. On first boot the router configures itself from those settings.
- Single node: https://wrtnova.com/builder/
- Multi-node / fleet: https://wrtnova.com/networks/
Relationship to the official OpenWrt project
It does NOT build or fork its own firmware. It uses the official Attended Sysupgrade (ASU) infrastructure — the same path as the firmware-selector. The image you download is stock OpenWrt compiled by OpenWrt's own build servers, with the requested packages included.
The only thing WrtNova generates is a uci-defaults first-boot script, which it submits to ASU as the defaults payload so it gets embedded in the image. So relative to the standard process, the firmware itself is identical to what you'd get from the firmware-selector with the same package set — the difference is the configuration layer, not the firmware.
What's different / what a user gets vs. the standard process
- The standard firmware-selector lets you add a defaults script, but you write it yourself. WrtNova generates that script for you from a UI, covering things that are tedious to hand-write correctly:
- Switch VLAN tagging with DSA-vs-swconfig handling per detected hardware
- Guest / IoT zone isolation wired into the firewall
- WireGuard client as a separate routed LAN segment with a routing-level kill switch (fails closed, doesn't leak to WAN) plus a reconnect watchdog
- AdGuard Home, mesh (802.11s / batman-adv), mwan3 multi-WAN failover, DDNS
- Single-node and multi-node/fleet configs (shared config with per-node overrides).
- The generated first-boot script is left on the device at
/rom/etc/uci-defaults/99-asu-defaults, so you can read exactly what was applied, and a factory reset re-applies your configuration rather than reverting to a bare image.
A note on secrets
Anything you put in the config (root/WiFi passwords, WireGuard keys, etc.) gets baked into the uci-defaults and submitted to the public ASU build server, where the build is retrievable by hash for ~30 minutes after it completes. Leave all password fields empty instead — the defaults are safe for first boot (no root password; Wi-Fi password is 12345678). Set real credentials after first boot via LuCI or SSH. [The UI will remind you of this.]
Transparency
The first-boot script (wrtnova.sh) and front-end are open source: https://github.com/LongQT-sea/wrtnova
You can read what it does before building, and inspect the embedded script on the device after flashing.
Tested on
- Xiaomi CR6606, R3G, MiWiFi Mini
- Haier HAR-20S2U1
- D-Team Newifi D2
- Linksys WHW03 V2
Best place for discussion
Please keep discussion in this thread for now; bug reports and feature requests are welcome as GitHub issues at the repo above.
Not affiliated with the OpenWrt project; it builds on top of it.