I know is possible to run OpenWRT on virtual machine. But does anyone has any idea or heard of any idea that I can run LUCI independently on a web server of some sort?
The goal here is to be able use LUCI as a configuration "generator" where I can incorporate it into our own web portal so that our customer can use it to "generate" a configuration file and then "mass" upload the configuration file to multiple router at a time.
Yes, you can just tell customer to use (if they have) a spare router to do so on their own, but incorporating into our own company web portal would be much nicer.
And obviously I can remove ANY page such as the "status" page where it require live information from router. I will only keep the "pages" that is "configurable"
Thank you!
LuCI runs on top of uhttpd, so at a fundamental level, sure it might be possible to get it running.
but...
LuCI depends on the underlying UCI data in the config files, and it uses UCI calls to read and write the config files. Therefore, you'd need to have the entire UCI underpinnings as well, so now you're talking about needing to recreate key aspects of the underlying structure of OpenWrt. As such, there would probably be little point and/or lots of effort to do so.
Further, if you're looking to generate configurations that touch the hardware (i.e. ethernet, wifi, CPU related things, etc.), you'd need to emulate that so that OpenWrt (or whatever 'stand-in' you'd design) believes that the files represent something in reality -- the paths and structure for the device tree need to be known and replicated. And, it gets more complex if you're dealing with wifi and ethernet which have device-specific MAC addresses.
All of the above assumes you're dealing with one hardware brand+model. If you add additional hardware targets, you'd have to have unique configuration utilities for each one.
So can it be done... probably, but with a lot of work to make it function.
With all of that in mind, what's wrong with the existing methods of configuration? Are you developing a product against official OpenWrt (and contributing the relevant code back to the project), or are you forking OpenWrt for this device (or family of devices)?
1 Like
Hello Peter,
THANK YOU very much for the reply! Yes, your thoughts were exactly mine too, but I figure to ask since there are so many third party stuff out there for OpenWRT and thought there could be someone or some company made this. We have our own router hardware which runs one a customize version of OpenWRT that we develop. We used to use a customized version of Advanced tomato and also developed our own web portal which “mimic” the UI of the Advanced tomato and generated the configuration file. But looking at the OpenWRT, it seems it is much more complicated to do so. The UI part is not so bad, the bad part is the complicated back-end logic which generate the configuration file. There are just too much “unknown” and complicated logic for pages such as the Firewall/Network devices and MultiWAN. Also there are add-on package which has their own UI that we would also need to develop. And it seems “someone” already did all that work (LUCI UI), so I figure if there is a easy way of “using” that instead of re-develop my UI.
Frank
Yeah... especially if you're already developing against a very different firmware (Advanced Tomato), building a non-device-bound/remote web based configuration utility on OpenWrt LuCI will be pretty tricky and likely out of scope for these forums.
Good luck!
If your problem is solved, please consider marking this topic as [Solved]. See How to mark a topic as [Solved] for a short how-to.
Thanks!
I haven't personally had the need for this, but wouldn't something similar to/based on ansible be a more viable route here?
Hello Dimitris,
Can you elaborate a bit more as to what you mean by using “ansible”?
And yes, this is most likely not for “personal” use. This would be for customer who has hundreds or thousands of routers that they need to push the configuration change.
Frank
Sorry about the delay, I was away from the computer for a few days.
Your use case is something that has certainly been done before but far out of my experience zone. I can provide some general pointers, but I'm presuming "between the lines" that you might need to look for some technical/consulting help from people/companies with experience in large scale CPE (customer premises equipment) deployment and remote management.
ansible is a tool for automating deployment/management of fleets of machines of many different types (Linux servers, other OS/platforms, and yes including OpenWrt).
To be honest it might be part of the your solution but it's definitely not all of it. For example you'll need to orchestrate/automate what happens with unresposive devices (retries, alerting etc). With thousands of them there will always be some that are disconnected, broken etc.
Quite a few years ago I worked with a customer who used TR-069 for devices they were producing for their ISP customers. So that's one protocol/buzzword you might want to look for in terms of experience for people you hire/contract to help. No idea if that particular protocol is obsolete or not these days, by the way.
If you were looking to hire, for example, you might want to look for people currently/previously working for ISPs.
Hopefully this provides some useful pointers. Again sorry, this is really "above my pay grade" as they say.
Edit to add a couple more things (which, again, an expert employee/consulting shop in the field would know anyway):
-
Imagebuilder can help you build custom OpenWrt images for already-supported devices. If you only need existing supported devices and packages, and you "only" want to mix in some specific configuration, this might help you produce your custom image(s).
-
Depending on your exact needs you might need a level of customization that requires building from source. For example, if you need a custom TR-069 agent above. The developer guide is probably a good starting point for doing that. I suspect that for what you want you (or whoever you hire) will end up doing some of this anyway.