[freeside-devel] Some Ideas

Jason Thomas jason at debian.org
Tue Nov 15 19:03:56 PST 2005


Hi All,

I've been evaluating FreeSide for the company I work for, and as I'm a
Debian developer I had a go at packaging it up for Debian.

Well to put it bluntly things look to be a mess. Which explains why it
took Richard Siddall 6 months to create redhat packages.
http://www.sisd.com/pipermail/freeside-devel/2005-September/000521.html


Anyway, so I've written down some ideas which should help spur some
developement work on FreeSide and maybe even new users. Hopefully this
will lead to packagable product for Debian/Redhat/<insert distro>.

So below is the list, I'm not at all experienced with FreeSide, so if
there is anything dumb just say so or ignore it.

Thanks.


IDEAS
=====

 * Split freeside into nicely defined parts (which can still be in the same
   tarball):
	- fs
	- fs docs
	- fs web interface
	- fs self service server
	- fs self service client
	- fs modules; radius, bind, postfix, sendmail, apache, etc

 * Use autoconf in each part, so that various configuration options can be
   changed easily, like install directories. AutoMake can be used to substitute
   paths in perl scripts and modules.

 * There can still be a single Makefile in the base of the directory structure
   to make it easy for people use to the current install method.

 * Each part should not rely on others. This is so that the web interface or
   self service server could be run on another machine.

 * The web interface should not need to run as the freeside user.

 * If we make freeside self service server a module than other modules can be
   written. Or perhaps we can write an some sort of socket based API with which
   to interact with freeside.
 
 * A clearly seperate web interface would make it easier for people to write
   there own, or for us to have more than one. Perhaps we could use some sort
   of templating system.

 * The configuration files should be cleaned up. why so many dirs. Let use
   something familiar look INI files.
 
 * DB choice should be in the config file. The name of the DB shouldn't have
   anything todo with the other config files.
 
 * Each part should have its own config file. The minimum in each config would
   probably be database info.

 * All paths should be configurable in the config file, and use sensible
   defaults. e.g logging to log/freeside instead of etc/freeside/

 * Logging probably should use syslog or at least be configurable. There is a
   perl module for that.

 * handler.pl where should that go, not etc/freeside/

 * Template path should be in config file.

 * Provide example web server conf files.

 * Pages in web interface should be split into multiple pages, instead of one
   big long page.
 
 * It would be cool if freeside could be neutral when it comes to things like
   DNS. So you store DNS entries but there not specific to bind. Then we could
   have some sort of module to populate bind. Same with mail softwarei and
   radius. etc. Like modular I suppose.


More information about the freeside-devel mailing list