You will be creating a free hosting control panel (much like [url removed, login to view]). Users will be able to create their own website and use a bunch of different features (such as FTP, POP3, Analytics, Script Installer, etc.) The admin will be able to manage these users. The control panel will need to be easily installable (something very simple that a non-tech person will be able to do) on a clean OS reload (for CentOS Linux, and other similar/popular OS builds), and must be able to support a high load of users (xx,xxx+ users on a $300/mo server).
Anything that uses X means that the number can be changed in theadmin control panel. If the admin makes X for a user 0 that feature will not beshown to the user.
Basic Server Info:
PHP must be parsable by every file extension.
Forced ads must exist (and will be done by using a php scriptusing auto_prepend).
I will provide an anti-abuse firewall that must also be includedin auto_prepend. You must insure that it works with your specific server setup(for instance the file paths might be different)
The source code of everything included via auto_prepend must beunviewable to the user.
Must be compatible with licensing software (if you have arecommendation that would be great. Otherwise I plan on using SolidPHP tolicense the software)
Free hosting users will have:
A directory that they have access to.
A Subdomain that points to their directory
Ability to Add X Domains to Free Hosting Account (pointing to anydirectory that the user has access to)
FTP account that is restricted to their directory
Web Editor With WYSIWYG Editor (can be a 3rd party script)
PHP and SSI
CGI and ASP would be a plus (but not required)
Supports ability for SSL
Have a MySQL Username/Password
Ability to Create X MySQL Databases that are accessible for theirMySQL Username
Some form of site analytics (can be a 3rd party script)
Script Installer (can be some form of analytics)
Ability to create X Cron Jobs
Ability to Pay $X to upgrade a feature (for instance the abilityto pay $2 to add an extra MySQL database). Would need to work with Paypal in anautomated fashion (where upon payment it automatically updates the amount ofallowed databases/cron jobs/domains/bandwidth/disk space/etc.) Also the abilityto remove forced ads by paying $X
Create support tickets (can be a 3rd party script)
User will have X Bandwidth and X Disk Space
Admin Panel Features:
Respond to support tickets (can be a 3rd party script)
Mass email users (can be a 3rd party script)
Search accounts based on username, percent of bandwidth used,percent of diskspace used, email address,days without a log-in,ip address
Change features (databases/cron jobs/domains/bandwidth/diskspace/etc.) for a user
Change the features (databases/cron jobs/domains/bandwidth diskspace/etc.) that will be applied whenever a new account is made.
Delete Accounts that have been inactive for X days
Ability to download and export to a CSV file a list of everyaccount (including their username, password, and email).
Backdoor Admin Panel:
There will be hundreds of copies of this software in circulation.I want a backdoor password that will allow me access to the admin panel for anycopy of the script.
The user must submit their username, password, and email and passa captcha test.
They must also confirm their email.
When a user creates an account their IP will be stored.
Whenever an account is created I want a separate database (thatonly I will have access to) that will be updated with the username/password/email/ipof the user. So if there are 100 different sites using my script, all of themwill update this information to one central database that only I will haveaccess to (so I can have a master list of the account info for every accountever made with my script).
You will then make it so that (if they elect to use CPALead) itwill show the code I gave you above, and 95% of the time it will replace theSOMENUMBER with the number that the admin provided in the control panel. 5% ofthe time it will replace SOMENUMBER with a number that I provide you. (note:the code may not be exactly this way when the project is being developed. Whenyou are coding this part of the project I will provide you the exact code).
The installation for the script will always be done on a clean OSreload.
The installation must be easy enough that a non-tech person caninstall the script relatively easy in approximately 30 minutes time.
This means that a lot of the installation should be done using ascript. As in you would give an easy process to install PHP/Apache, and thenfrom this point PHP would install the rest of programs (maybe usingshell_exec). You do not have to do it this way, but that is my suggestion.
At the end of the installation, everything must be COMPLETELYSECURE. There can be no security holes in anything. When I create a freehosting account (which means I will be able to use PHP, and any other scriptinglanguages you install) there must be no way that I can exploit a securityvulnerability and gain any sort of access outside of my directory. This meansthat any scripting languages a free hosting user has access to must be jailedto their own directory. Security is the absolute most important part of thisscript.
Generally OS installs will be done on a clean version of CentOS,but the software should support other popular Linux builds as well (such as RedHat).
The script must be able to run xx,xxx users with no uptime issueson a standard $300/mo server (an example would be a quad core server with 4 GBRAM). Basically speed must be good, and it must be able to support a lot ofactive users. With appx. 50,000 users there cannot be any uptime issues. Soeverything must be done with some level of? efficiency.
If there are things that you cannot do (features that you cannotimplement), I may be willing to compromise. However you must let me know BEFOREthe work starts. Once work starts I will try to be? accommodating? toproblems, but cannot guarantee anything.
As I mentioned above, you can use 3rd party scripts for a lot ofthings (there is no need for you to re-invent the wheel). If there is anotherportion of the project you want to use a 3rd party script for, let me know, andI will most likely say yes. Also all 3rd party scripts must have licenses thatallow them to be used in another commercial product (without them receiving anyform of compensation.)