Miscellaneous Suggestions and Ideas

The Prohacker

Verified User
Joined
May 23, 2003
Messages
142
I'm always glad to see a new product come to market, it spurs improvement in current and the newly released product, which in the end helps everyone..

Since you are still early in development of your control panel, I thought I might throw some ideas into the pot that might help in the general aspect of things..

1) Template driven configurations - Have each config file generated by DirectAdmin produced of an editable template..

So you could have vhost.conf.tpl for an Apache VirtualHost configuration:
<VirtualHost {IP}>
ServerName {DOMAIN}
ServerAlias www.{DOMAIN} *.{DOMAIN}
ServerAdmin webmaster@{DOMAIN}

DocumentRoot /home/{USERNAME}/public_html
BytesLog domlogs/{DOMAIN}-bytes_log
CustomLog domlogs/{DOMAIN} combined

User {USERNAME}
Group {SITEGROUP}
php_admin_value safe_mode 1
php_admin_value open_basedir /home/{USERNAME}/
php_admin_value sendmail_path ‘/usr/sbin/sendmail -t -i -L {DOMAIN}’

ScriptAlias /cgi-bin/ /home/{USERNAME}/public_html/cgi-bin/
</VirtualHost>

Or a dns.conf.tpl formated along the same lines..

2) Script chrooting - Part of my second suggestion is in the first suggestions code.. By default generate a open_basedir jail for PHP in each virtual host, and to atleast use suExec to make CGI run as the user..

suExec really isn't the perfect answer though because it cannot keep scripts from running outside their allowed home directory.. CGIWrap as I remember can.. But I haven't used it in a very long time..

3) Admin related scripts - One of the very strong points of cPanel is that it comes with things like buildapache.sea to help setup Apache/PHP/etc.. And also the extra stuff in /scripts can be an amazing help when problems come up..

4) Seperate MySQL User and Database Creation - Just doing a quick look over the user side of the panel, a user is created each time a database is.. I see that as rather waste full, and sometimes I want to create users to only access some databases..

On a side note to this, a basic permission handler would be great, sometimes I make a MySQL user that doesn't need write access to the database, just read, to do that I have to login as root and change the permissions by hand with cPanel...

Its kinda late, but I may think of a few extra things tonight or tomorrow.. :D
 
And just thought of a quick something :D

5) Jailed SSH - Something new to cPanel, and that can come in quite handy is jailed SSH on the system. As an administrator I know how it can be so much easier to deal with SSH than with FTP, so being able to offer it securely to clients is a great plus..

One thing that would need to go along with that is proccess montioring for each user.. To make sure a proccess doesn't get forked to the background like eggdrop/IRCD/etc unless allowed...
 
Even more :D

6) ASK or something along the lines - Active Spam Killer can be overkill for some people, but it could also be a great addition for the users that want it..
http://www.paganini.net/ask/

It can be setup to run with SpamAssasin to take its additional headers...
 
7) Add IP and subnet mask - Just noticed that you can add an IP but you cannot add a subnet mask, which could be needed with many server providers.. Or does the add IP function in the panel not actually add it to the system?

8) Ability to edit DNS records - Currently all that you can do is deleted selected entries or add new ones.. An edit feature could make it much easier.. Also if there was a mass edit function for admins.. So they are presented with an entire list of records for the domain that can be edited all at once.. Much like cpanel does..

9) Change input box on admin password change to a select box - Its kind of a hassle to have to look up a username and then go and type it into the text box to change the password.. Having something like a list would make it much easier..

Sample:


Change A Password
domain1.com - username1
domain2.com - username2
New Password ______________________
Confirm Password ____________________

Of course, they should be a confirm that you want to change the password so you don't accidently change someone elses :D

10) Generate bandwidth graphs with MRTG/RRDTool -
http://www.snert.com/Software/mod_watch/

Using something like mod_watch in combination with MRTG/RRDTool, you can generate bandwidth graphs for each virtual site you host.. I could be rather nice to provide those graphs to end users to pin point when they are hit the hardest..

Could be just something as simple as incomming and outgoing bandwidth.. Or something more complex like I have on my site:
14all.cgi
 
Now this is where I have a small question.. Does this panel want to break into managing a lot of the server for the admin?
I know some people don't like how much cpanel controls and might just want a basic panel for people to use and they manage the rest themselves, while others love how hands off a cpanel server can be...

If you are doing toward total server management:

11) Firewall management for admins - Ability to add/remove/edit firewall policys for the given server. Something along the lines of IPtables/IPchains..

Have preset rules that a user can just check off that they want or don't want.. Such as denying certain protocols, ports, IPs, etc..

12) Service based clustering -
Now this one, would be quite a ways off, since I'm sure you have many more important things todo :D
Full site clustering can be expensive, so service based makes it more economical... Have one server just for MySQL, another handling mail and HTTP requests, while yet others can handle DNS..

Now all of this would almost need to be dynamic, so you don't always have to have mail and HTTP grouped togather, some people may have very high mail needs while others have small DNS needs..

To access each server for updating, SSH-Keys should maybe implimented so each time a root password is changed it won't break the servers if its forgotten to be updated..

This could cut down on some of your profits, as people might not need generally as many licenses for servers if they can have one central server for a control panel, but it might open up new markets for you, with businesses who want more powerful solutions to offer customers..

13) A mail monitor -
http://webhosting-tools.com/view.cgi/MailMon

Something along these lines.. Not sure if you already have something like this, or if its in the works.. But spam is becomming a bigger and bigger problem, and just giving people direct access to sendmail/exim/qmail isn't helping it..
 
Hi Prohacker,

First of all, wow. We really appreciate the time you have taken to truly evaluate our program.

1) We actually currently do use template driven configurations for many of our services. At this point quite a few services use them, oddly enough apache doesn't, but would only take a few hours to convert anyway (has been at the back of my mind the whole time, just havn't gotten around to doing it)

dns already uses this method. We'll have to change how updates are done, because currently, each update will just write over the old template.

4) The reason for having the user and database created together was for simplicity. Some novice users of MySQL might not know how things work and they just want to answer the questions asked by their forums or whatever they may be installing. You can delete the user that's created with the database, and if you want 1 user for all databases, your unix username along with the password used at the time of the database creation will work on all databases.

7) Subnet Masks: we WILL add subnet masks, there is no question there.


Suggestions that I have not answered are a really great, and thank you very much for your input. As time allows we will be looking into what to add next, and this will be a great pool to chose from.

Thanks you very much,

John
 
Apache has been added to the programs that use DirectAdmin's template feature, so you can edit how <VirtualHost> directives will look.

there are 4 files in the /usr/local/directadmin/data/templates directory which you can copy into .../templates/custom (might have to create the dir). DirectAdmin will check there first to see if the apache templates are there before going to the ones in the ./templates directory. The reason for copying them, is that ./templates will be stomped over each update.

virtual_host.conf
virtual_host_secure.conf
virtual_host_sub.conf
virtual_host_secure_sub.conf

secure is for SSL port 443, sub is for subdomains.. tokens inside are pretty simple, DOCROOT and CGI are different because DirectAdmin needs the ability to change the DocumentRoot if an account is suspended, and CGI needs to be able to be turned off (an option for User accounts)

Thanks,

John
 
Back
Top