How to activate a custom theme

I'm working on building a custom theme for LuCI. I'm attempting to do so by running a base OpenWRT instance in a Docker container in which I am manually installed LuCI to make it available. I've mapped local folders and files to volumes in the Docker container such that the files necessary for the theme are available where they need to be as far as I can tell. I've been trying to follow the instructions for how to create themes on the wiki, and I've gotten to the point where I can see my custom theme in the list on the System -> Languages and Style tab, and I can select and apply it, but it doesn't actually change the theme.

By default, when I access the LuCI UI, it is running the Bootstrap theme, but when I select my new, custom theme, it appears to apply it, but I don't see any changes. When I inspect the page source in the browser devtools, I can see that the Bootstrap theme and it's resources are still what is loaded in the browser.

I've not been able to find much on developing custom themes for LuCI, so I'm not exactly sure what I'm missing. Any ideas or nudges in the right direction would be greatly appreciated. Thank you.

uci show luci | grep -E '(theme|media|cache)'
find /www -type d | grep YOURTHEME
find /usr/lib/lua  | grep YOURTHEME

@anon50098793 running that first command you listed there returns this:


The other two just show that the contents for my custom theme are there. Still not sure what's missing. Something still seems missing, as it is still not actually applying/using my custom theme.

great, everything is fine then...

My problem is, my custom theme, which appears to be in place and configured to be available as necessary, isn't able to actually be applied for some reason...

Maybe this will help...

So, I just noticed something that seems interesting and potentially relevant here. When I open the browser devtools with the LuCI admin UI open, and I view the Sources tab, I notice that the luci-static folder only appears to have bootstrap and resources folders in it, but when I look at /www/luci-static on the filesystem, I see my theme folder there. Is there perhaps some uhttpd config missing that maps my theme folder or something like that maybe?

So, I've been digging on this, trying to figure out what could be up, and have discovered an additional clue. We've been tracing the actual LuCI code, and found this change in dispatcher.lua, and we've found that when we replace:

local media = luci.config.main.mediaurlbase

with the hard-coded path to our theme as such:

local media = "/luci-static/pivotel"

The UI actually uses our theme templates now. This has led us to believe that there appears to be an issue with luci.config.main.mediaurlbase not actually getting set correctly for some reason. Anyone here happen to have any idea what might cause that, and if there is a bug here, or if we're doing something wrong to cause that? Any idea @anon50098793?