[Update] Revamping DaloRADIUS for the Future
Update: So I’ve began work on the DaloRADIUS revamp I talk about. I called it RadiusNES, meaning Radius-Node-ESpress (Express JS)
What changed? Instead of using MySQL and Freeradius, Liran (founder of DaloRADIUS) recommend the Node-radius, a NodeJS implementation of the RADIUS technology.
Although I felt hesitant to go with Node-radius after a few tries at first, he seems convinced it’s a great choice, and I’m gradually getting the hang of it. I’m still learning, but so far, I’m like this dog:
In summary, here is the eventual stack in use:
- Database: MongoDB
- RADIUS Server: NodeJS (node-radius)
- API: ExpressJS
- Frontend: Angular JS 2
I’ve split the parts into 2:
- The Server-cum-API combined into one repository.
- The frontend part, AngularJS.
So for anything administrator stuff, communication happens via API REST.
For a NAS authentication with RADIUS, it’ll happen over the usual 1812 port which kicks up along with API and whatnot.
More details of how it works will be shared in the project repositories as time goes on. At the time of sharing this, the project is only 2 days into the making, so things are rough at the moment.
Repositories
Angular: https://github.com/seanmavley/RadiusNES-angular
Server: https://github.com/seanmavley/RadiusNES-server
You may follow the progress in their respective repositories. In about a month’s time, things will have settled, and I’ll be happy to see any PR or issues raised.
For now, any Issues raised or PRs, I doubt I’ll be able to respond or merge.
Happy Radiusing!
DaloRADIUS is awesome, and if you’re into ISP stuff, you might have come across one of the popular Web Management interfaces for Freeradius out there.
TL;DR:
My name is Rexford, a web developer. For some weeks now, I’ve been using DaloRADIUS and I wish to revamp the entire Web Management platform. I plan to do this because I’m happy a tool like that exist, and I wish to make it better.
More details of what will happen and why, below!
I’m tired and don’t have time explaining what RADIUS, Freeradius, DaloRADIUS and Chillispot whatnot are.
What matters now is how I’m excited to revamp the entire DaloRADIUS Web interface. Let’s go over the why, how, what and when of this so-called revamp.
Why?
The answer is simple! Just for fun!
Well, that’s not entirely true. There’s more to why I wanna build the DaloRADIUS from scratch up. The original codebase for DaloRADIUS is from 2007, as much as I can tell. I do not know the first time the actual code was added to the DaloRADIUS management, however, it is old.
Old enough that doesn’t conform to the majority of coding styles today. Although written in PHP, there’s much to be desired on the workflow and how it works.
One of the challenges I faced getting up to speed with DaloRADIUS was getting comfortable with the current codebase.
Too many hard coded configuration variables, touching configurations files to make changes and more.
Have you tried RadiusDesk?
Yes, I have! How to install RadiusDesk and integrate into an already running server structure can be troubling, plus the moving parts seem convulated to me.
DaloRADIUS remains extremely easy to configure for an already running system, and thus I believe it’ll be much easier revamping and improving.
In all, the goal is to get a 2017-ish approach for DaloRADIUS.
The idea that technically inclined network or systems or server administrators/engineers don’t have to look at great UI and have nicely written codebase is wrong.
Over the years, many have embraced DaloRADIUS after, probably asking many questions, relating to how to deploy the platform. However, I guess after getting comfortable with, the desire to make it better fades.
I hope to bring DaloRADIUS up and ready for the future. I believe a more recent code is, that’s how the new developers joining to contribute.
By decoupling the Database and it’s related queries from the UI (as it appears to be all conjoined at the moment, with PHP code tucked within HTML and vice versa), I believe the separation of concerns will make development easier and fast to follow by any new developer!
How?
My name is Rexford, and I’m a Senior Web Developer. The how, well, I build web applications.
That’s how come I believe revamping DaloRADIUS is something in my capability.
What?
Below are what I plan to change with the development from ground up.
- The front-end will look better, with Bootstrap or Foundation Zurb or MaterializeCSS. All these frameworks are 2016+-ish
- Front ground up, an API endpoint (written in NodeJS, ExpressJS) which will communicate with the already existing MySQL database with same tables and whatnot as the current DaloRADIUS
- A brand new front-end, built from ground up, using preferably, AngularJS 2
The revamp will still make similar queries to the backend of MySQL as the database.
Extra additions:
- A new approach to handling configurations. With the exception of the database name, database password and database username which will be configured within the configuration files manually, every other setting will be configurable in the front-end.
Eventually, the UI will be turned into a Progressive Web App, in which there won’t be any need for an iOS/Android or whatever app. The platform for the web will still work as mobile apps, and load offline.
When?
Would you like such a revamp?
I currently have a bit of free time on my hands, and so should be able to exert a bit of time on completing the project within the next 5 months.
The 5 months should be a max timeframe, although it could stretch longer depending on the support I get.
Would you support such a project?
Lemme know in the comments below what you think.
Is there something like that already built?
Screenshots
I’ve started revamp to some of the pages..