RouterDeck Console is a windowed management interface for OpenWrt,
modelled on the way desktop router tools such as MikroTik WinBox work: object
lists with flags and live counters, object windows, changes that apply at once
with Undo/Redo and Safe Mode, and a RouterOS-style command line. It talks to
rpcd over uhttpd's /ubus and edits UCI through its own rpcd plugin. LuCI is
not needed, but can stay installed next to it.
Русский · RouterDeck Console · Installation · Development · Compatibility · Validation
This README describes current main. The published v0.1.0 prerelease was
an earlier LuCI theme (luci-theme-routerdeck, with an optional dashboard and
Workspace page). That theme has been removed from the source and is no longer
developed; see removing it.
- Windows: Quick Set, WiFi (with an access list), Interfaces (Ethernet, VLAN, bonding, GRE/EoIP/IPIP/VXLAN tunnels, WireGuard, OpenVPN), Bridge, PPP (clients, PPPoE server, secrets), IP (addresses, ARP, routes, firewall with mangle, raw and address lists, IPsec, DHCP server, DNS, Dynamic DNS, pools, services, settings, UPnP), IPv6, Routing (rules, tables, OSPF and BGP over bird), Queues (simple queues and SQM), Files, the log, and the System menu (identity, clock, NTP, logging, password, users, certificates, packages, scheduler, scripts, startup, resources, LEDs, disks, backup and restore, firmware, reset, reboot). They are live object lists with RouterOS-style flags, comments, Find, sorting and context menus.
- Tools: Ping, Traceroute, Torch, Bandwidth Test (iperf3), IP Scan, Netwatch and Graphing (services on the router), Wake on LAN and live traffic graphs.
- Changes apply at once, one change per Undo step, without a separate Save & Apply. Safe Mode rolls everything back when the console stops answering, for example after a change cut your own connection.
- New Terminal is a RouterOS-style command line over the same objects
(
/ip firewall filter print,add,set,export, Tab completion,?). New Shell embeds the router's shell through ttyd.
See RouterDeck Console for the window-to-OpenWrt mapping, the command line, how changes are made, access control and known limitations.
| Firmware | Package | Validation |
|---|---|---|
| OpenWrt 25.12.5, armsr/armv8 | .apk, noarch |
Package lifecycle and console checks in QEMU |
| OpenWrt 24.10.8, armsr/armv8 | .ipk, all |
Package lifecycle and console checks in QEMU |
| FriendlyWrt, NanoPi R3S-LTS | Not certified | Hardware/firmware validation pending |
See the validation report for exactly what was exercised. The checks run in virtual machines; they do not establish real Ethernet or Wi-Fi drivers, PPPoE negotiation or VPN connectivity on a physical device.
There is no published release of the console yet. Build the package from
source (see Development), copy it to
/tmp on the router and install it:
# OpenWrt 25.12
apk add --allow-untrusted /tmp/routerdeck-console-0.1.0-r1.apk
# OpenWrt 24.10
opkg install /tmp/routerdeck-console_0.1.0-r1_all.ipkOpen http://<router>/routerdeck/ and log in with a router account (root by
default). Installation lists the optional packages
that turn on more windows, and how to remove the console again.
Node.js 22+, Python 3, QEMU and a running Docker installation are used for the complete workflow. The local preview only needs Node.js.
npm ci
npm run dev # http://127.0.0.1:5173/routerdeck/ — simulated router
npx playwright install chromium webkit
./scripts/test.sh
./scripts/package.sh 25.12.5 # official SDK → dist/packages/25.12/*.apk
./scripts/package.sh 24.10.8 # official SDK → dist/packages/24.10/*.ipkThe preview runs the console against a simulated router (log in as root,
password routerdeck) and never talks to a real one. VM setup
binds HTTP and SSH to loopback, uses QEMU user-mode networking and changes no
host network interfaces.
GitHub Actions runs the browser tests and builds the package from checksum-pinned official SDKs. VM checks are a separate gate run locally; CI does not pretend to run them.
Apache-2.0. The console bundles Preact (MIT); see NOTICE. RouterDeck uses original artwork and system fonts; no MikroTik code or assets are included, and it is not affiliated with MikroTik or the OpenWrt project.
