LuCI - OpenWrt Configuration Interface
 
 
 
 
 
 
Go to file
Eamon Xiong 1a7ea5810c luci-mod-dashboard: rework the layout using standard LuCI markup
Give each kind of data the form that suits it: a row of KPI cards for
the values you check at a glance, a row of charts for the per-client
data, and a tabbed panel for the details you look up once. Every field
the page showed before is still there, only shaped differently.

Build it from the markup LuCI and the themes already provide, so the
page takes the look of whatever theme it runs in instead of carrying
one of its own: .cbi-section with h3 and .cbi-section-descr for the
cards and KPI tiles, .cbi-map with a .cbi-map-tabbed group for the tab
panel and ui.tabs for its menu, .table with a .table-titles row and
cbi-rowstyle stripes for the tables, .ifacebox for the wireless radios,
the theme's .label for badges, and code, em, small and strong for
values. ui.tabs also keeps the selected tab across the poll re-render.

The charts are the one part LuCI has no component for, so they are
drawn in a new lib/charts.js as plain DOM and SVG, with no dependency.
Their colours, and the few rules left in custom.css, read the generic
LuCI colour variables. Not every theme defines those, so each one now
falls back to both a light and a dark literal, keyed on the theme's
darkmode attribute and on prefers-color-scheme. custom.css used to
fall back to light literals only, which left the page dark grey on
dark under a theme that has a dark mode but not the variables.

The five icons are redrawn as one stroke set and applied as a CSS
mask, so they take their colour from the theme as well.

The wireless signal is plotted as the RSSI the driver reports, in dBm,
rather than a percentage derived from an assumed noise floor, and
clients are graded against -67 dBm. Byte counters are formatted with
%1024.2mB and the traffic axis labelled in KiB/MiB/GiB, matching how
the status pages present the same values.

No new data is collected and no new ACL entry or RPC method is needed.

Signed-off-by: Eamon Xiong <eamonxiong@gmail.com>
2026-09-17 23:01:15 +03:00
.github build: skip waiting for formality check on bot PRs 2026-07-15 09:00:58 +03:00
applications luci-app-qosify: cut the cost of a poll tick 2026-09-17 07:02:55 +02:00
build build: modify zoneinfo2lua.pl to handle luci-lua-runtime 2026-06-04 21:32:48 +03:00
collections luci-layer2: create a minimal collection for layer-2 devices 2026-03-04 20:34:46 +01:00
contrib/package lucihttp: adjust to cmake 4.x compatibility 2025-10-07 18:56:21 +03:00
doc_gen docs: favicon and hierarchy 2026-02-22 16:51:25 +01:00
docs docs: favicon and hierarchy 2026-02-22 16:51:25 +01:00
libs luci-lib-px5g: drop package 2026-08-08 01:22:00 +02:00
modules luci-mod-dashboard: rework the layout using standard LuCI markup 2026-09-17 23:01:15 +03:00
plugins luci-plugin-2fa: stop trusting X-Forwarded-For 2026-08-08 03:33:38 +02:00
protocols protocols: remove myself as maintainer for vpnc 2026-09-07 07:01:51 +03:00
themes luci-theme-openwrt-2020: Revert "use lighter color for checkboxes" 2026-09-14 21:09:21 +03:00
.gitignore luci: add macOS filename to .gitignore 2026-04-02 16:01:31 +02:00
CONTRIBUTING.md luci: minor edits to CONTRIBUTING.md & PR template 2026-04-17 01:31:17 +02:00
LICENSE
NOTICE luci-lib-nixio: remove unmaintained axTLS lib 2025-09-25 14:55:12 +02:00
README.md docs: refresh for JS and drop Lua references 2026-02-16 01:06:46 +01:00
eslint.config.mjs github: add linting for JS and MD 2026-02-16 01:42:55 +01:00
jsdoc.conf.json docs: favicon and hierarchy 2026-02-22 16:51:25 +01:00
luci.mk treewide: precompile ucode templates at build time 2026-09-02 10:49:46 +03:00
package.json npm: bump clean-jsdoc-theme from 4.3.3 to 5.2.0 2026-09-05 10:11:09 +03:00

README.md

OpenWrt luci feed

Translation status

Description

This is the OpenWrt "luci"-feed containing LuCI - OpenWrt Configuration Interface.

Usage

This feed is enabled by default. Your feeds.conf.default (or feeds.conf) should contain a line like:

src-git luci https://github.com/openwrt/luci.git

To install all its package definitions, run:

./scripts/feeds update luci
./scripts/feeds install -a -p luci

API Reference

You can browse the generated API documentation directly on Github.

Use ucode and rpcd for server side operations.

Development

Documentation for developing and extending LuCI can be found in the Wiki

License

See LICENSE file.

Package Guidelines

See CONTRIBUTING.md file.

Translation status

Use Weblate instead of direct editing of the *.po files.

Translation status