From Fedora Project Wiki

Web Hosting Control Panel

Contact Information

Why do you want to work with the Fedora Project?

I recently started working in IT department at Istanbul Technical University. All computers in student laboratories at ITU has Fedora pre-installed by IT. I frequently use these computers, and I would like to contribute to make it better.

I also tried Fedora several times on my personal computer. I was impressed with the advanced installation process, however due to my relations with Pardus distribution, I never had chance to use it as my primary operating system.

But the main reason is, I loved proposed project, and I will have a lot of fun while coding it! :)

Do you have any past involvement with the Fedora project or with any another open source project as a contributor (if possible please add some references as well)?

I am an active developer at Pardus GNU/Linux project. I am maintaining few (server related) packages and working on voting system in Package Manager.

Here is my ohloh page.

Did you participate with the past GSoC programs, if so which years, which organizations?

I have proposed for an project for Pardus in GSoC 2010, however it was not accepted.

Will you continue contributing/ supporting the Fedora project after the GSoC 2012 program, if yes, which team(s)/area(s), you are interested with?

I would like to maintain my project and its package even years after this program. I might create patches for other packages that is related with this project (like apache, mysql, php), if I needed to.

Why should we choose you over the other applicants?

I have experience on both server management and web applications. I have used different hosting control panels including but not limited to cPanel/WHM and Plesk. I believe I understand what users wants to see/use, as I am also a user.

Proposal Description

An overview of your proposal

Web Hosting Control Panel allows user to create and manage web, ftp, e-mail, dns, database hosting services for a domain. There are few open source alternatives, however their interfaces are confusing and not easy to use. An open-source control panel software which provides convenient UI is vital for servers.

The need you believe it fulfills

In order to host basic web services, people are needed to configure different applications using different configuration markups with different setting key/values. Managing a hosting server is complicated and hard, especially for beginners.

Creating an easy to use control panel would benefit dedicated and virtual server owners. Instead of buying expensive control panel softwares, people can spend money on better hardware for server.

Any relevant experience you have

I have experience on Linux server administration for 3-4 years. I have used CPanel/WHM and Plesk before, and some other custom control panels by hosting companies. I am aware of how these control panels work, and also what users need/want.

I have been configuring servers manually (without using control panels) since last year. I am familiar with Apache, MySQL, BIND configurations and documentations.

How do you intend to implement your proposal

I am planning to create a Django application for control panel. Configuration settings for all servers and tools will be stored in a database, and the application will provide a front-end interface to modify them. When changes are submitted, this application will create a valid configuration file for related software and save it to system. Application back-end will also be capable of restarting/reloading services if needed.

Final deliverable of the proposal at the end of the period

I believe a beta version which supports limited number of services would be available as a package at the end of the GSoC 2012 program.

After the period of GSoC program, new subpanels for resellers could be implemented as well.

A rough timeline for your progress

  • Week 0-1: Making research and practicing Django framework
  • Week 2: Create database scheme for application
  • Week 3: Create Django application
  • Week 4: Create a UI
  • Week 5: Create a revolutionary UI
  • Week 6-7: Prepare back-end tools to save configuration settings
  • Week 8-9: Connecting back-end parts to front-end
  • Week 10: Testing
  • Week 11-12: Creating package(s) and review
  • Week 12+: Implementing new panel for resellers

Any other details you feel we should consider

Proposed control panel could be expanded with add-ons, such as one-click installer for wordpress/phpbb, creating git repositories, etc.

Since I am an active developer at Pardus GNU/Linux, I am also planning to port the application to Pardus Corporate edition at the end of the period. This port would be a great example for how the application could be ported to other distributions. It is also a promise that I would continue working on the project after GSoC program.

Have you communicated with a potential mentor? If so, who?

I have contacted with Dennis Gilmore. We have discussed about whether I should use database or configuration files as a data source. I have also contacted once more for asking about web frameworks.