GSOC 2014/Student Application Ruvolof/ControlPanel
An overview of your proposal
The goal of this project is to provide an open source and free to use web hosting control panel which is compatible with Fedora. The project will be written mainly in Python (see suggestions below) and will consist in a set of scripts that allow the user to manage all the services and configuration. In addition to this, the project will provide a web interface served over HTTP, which will provide an user friendly interface to this set of scripts.
The need you believe it fulfills
There are many excellent web hosting control panels out there: CPanel, Plesk and DirectAdmin are probably the best known. They cost, and the cost is justified by the fact that they work very well. Other good solutions are actually open source, but offer very long installing process (like ISPConfig). The idea is to produce a web hosting control panel which is both open source and free to use and at the same time efficient and easy to use.
Any relevant experience you have
Since February 2013 I've started my own hosting company. Currently I use CentOS and DirectAdmin. I've tried many web hosting control panel both as user and as administrator.
How you intend to implement your proposal
The idea is to provide a script which automatically installs the needed software and does the whole configuration. This script will come with a set of sub-scripts which will allow the user to add/remove/modify domains, emails, dns records, ftp accounts and databases. In order to make it easily extendable, these sub-scripts will be stored in a directory tree and they will be retrieved according to the command used. In this way, to add new features it will be enough to add a sub-script into the correct path and the core system will remain unchanged. For this to be a useful project and to compete with other similar software it will be needed that other contributors will join the project at the end of this GSoC, for this reason I'll focus mainly on an easy structure which won't require a month of debugging from contributors in order to make a very little change.
The web interface will call these scripts passing them parameters taken from forms.
A rough timeline for your progress
Week 1: main script. The main script will act as launcher for other sub-scripts.
Week 2: initial setup.
Week 3: users related scripts. Coding scripts to add/remove and modify users.
Week 4: domains related scripts. Coding scripts to add/remove and modify domains.
Week 5: databases related scripts. Coding scripts to add/remove and modify database.
Week 6: emails related scripts. Coding scripts to add/remove and modify emails.
Week 7: ftp related scripts. Coding scripts to add/remove and modify ftp accounts.
From week 8 to 11: web interface. Realizing an user friendly web interface.
Week 12: packaging.
Any other details you feel we should consider
If it's not strictly required that this project has to be written in Python, I would consider Perl for the scripting part, which in my opinion comes in handy when it's time to deal with configuration files. But Perl's my favourite language, so my opinion may be impartial. :)
Have you communicated with a potential mentor? If so, who?
Yes, I've contacted Eduardo Echeverrìa.