new features discussion

An idea:

You should add in for the next version or somthing 3 things. 1 a Online File editor. 2 a Web editor for making pages when you dont have FTP 3. Make like a Payment or ticket kinda deal so like you could check all the payments and tickets. 4 isnt very important but.. Maybe have a Upgrade version of Ehcp. so you dont have to reinstall

From now on, i want to discuss many things here,
so that many people can see results of discussion,
and have idea about ehcp and its users/developers/community

Just a few ideas:

1. Disk quota
As far as I know quota doesn't work with vsftpd and virtual users, but you could put something like:
/usr/bin/nice -n 19 du -ms /var/www/vhosts/
in cron to run once a day for example. I used nice because du can use a lot of cpu if there are a lot of small files. This doesn't count the space occupied by the database.

Maybe you could generate a bash or php script using the homedir field in the domains table and adding that script to cron.

2. Bandwidth quota
I found this blog post about bandwidth management with apache. mod_cband seems interesting, but I didn't have time to test it.

3. Security
I use Denyhosts on my server to fight brute force ssh attacks (This is why I want to know how many ip's I have in hosts.deny). Fail2ban is also good at this (or so I've heard). Maybe you could install one of them with ehcp. Also it would be a good idea to log failed panel login attempts.

I was thinking of working on a simple iptables firewall for ehcp. Just something to allow incoming connections only on specific ports (and maybe from specific ip ranges) and block everything else. What do you think?

4. ClamAV and SpamAssassin (with amavisd-new)
I wanted to install those on my server and I was thinking if they should be included with ehcp. Do you think they are useful? (we have spamassasin at work and I still get a lot of spam) I also don't know how much cpu they use.

I think I'll have some free time these days, and I can work on those ideas, but I need to know what you're doing so we don't work on the same things.

You may start on working on all these ideas, i just released ver 0.29.06 with a few improvements and a few bugfixes, and i will be reather busy in my other business in 1-2 months, so you may work on all these ideas.

Here what i know/think on your ideas:

1-2: Disk & Quota: These are very necessary parts of a hosting operation, ehcp needs such a thing. I didnt have much time to implement this. But keep in mind the main idea behind ehcp or server operations. Any program/code/snippet that you write should be easy, non-resource consuming, with little code. As you know, many features in ehcp is implemented in very few lines of php code, some 5 lines, some 10-20 lines.. So, any addon, plugin, addition, idea that you are going to implement in ehcp (or in any other program i think) should be simple, working right away, non-resources consuming.

3- This would be ideally good. i mean, to have an iptables controller in ehcp would be good. But, keep in mind that, many people may not know to use a firewall/iptables. So, this should be implemented very carefully and in an easy way. Some parts of a software/ehcp can live with a bug, but not firewall bug... Because, if there is a bug in firewall or if user accidentally blocks himself/herself then panel admin cannot access even his/her server. if we design this in a clever way, so that to avoid such accidents, then this would be a very good idea... We may also use/integrate existing tools...
I will work on this too , later... (not in 2 months)
4- spam issues will be solved in Ubuntu 8.10-9.10 i think. The main issue with spamassassin in ubuntu prior to 8.10 is, it is not configured automatically and, it is quite hard to implement in easy steps, hard to keep it error free. So, i waited for Ubuntu itself to implement it. As i see, newer ubuntu's will have it done, so, we will only add it in the list of apt-get statements... :)

Anyway, I encourage you in all of these fields, and thank you that you added many good thins to ehcp.
See you.

What's new in 0.29.06? :)

Few improvements and some bugfixes:
* fixed postfix auth bug
* Fix Mail Configuration link in options: (This is used after changing ehcp mysql user pass, or if you upgraded from a previous version, in some cases)
* backup dir settable in misc table,
* installer detects /etc/apt/sources.list with very few files
* mysql users's passwords are encrypted in db, fixed something about this,
* in domain settings:
# Edit dns template for this domain
# Edit apache template for this domain
This way, you can edit apache/dns config templates for individual domains (your feature request)
These may also be used for custom dns and custom apache, Other custom settings still exists.

* Add dns only hosting (ehcp is used only for dns server for that domain, domain actually hosted on some other machine, useful for multiple ehcp's)
* Bulk Add domain (may add tens of domains in one step, puts Under construction page in all)
* new classapp.php, sets up new fiels on old ehcp install automatically, that is, if a new database field does not exist, then it sets up it upon first run. (function checkTables)
* Server status, in ehcp->home, system: Shows many server related data (There is also a separate sysinfo on left menu) (mostly your code, i modified a bit, added something, removed something)

* New option in Options/settings: messagetonewuser, used to send email for some info to new clients like: "Dns servers for our server: -> -> ->"
New clients receive this automatically

* bugfix: "my password protected directories" was showing for all domains, not active one, now, it shows only active one, There also a function to show all pass prot. dirs of your own.

* Daemon reconnects mysql in a few minutes, in case the mysql server is gone, this was done, because i received some errors related to this.

* password reminder works, i hope, buggy before.

* in case you dont know: new features already exist in previous version:
* add mysql db to existing user and vice versa

I thought it was few, but when i counted, there are many improvements :)
Some of these are your suggestions, some are suggestions of other ehcp users...
Thank you all...

By the way:
to upgrade an existing ehcp (versions 0.28-0.29), this should work mostly: just overwrite your classapp.php file with new one, restart ehcp daemon: /etc/init.d/ehcp restart, go to options, fix mail config, should work ... mostly.. .
if you use some older version than 0.27, i suggest a full upgrade

I think version plan for ehcp as follows, approx:

versions 0.30-0.40: Stability
0.50 : More wanted features such as quota and some other...
0.50-0.90 : More features and stability for new features...

0.90-1.00 : Most stable ehcp with many features...

Now you can check disk quota for each domain.
I added function updateDiskQuota() to check the used disk quota and add that info to mysql, edited adddomain() to add quota to mysql and made a few other minor edits.

To use this version you'll have to add 2 more fields to your domains table:
diskquotaused int(4) No 0
diskquota int(4) No 0


I don't know what to do when someone goes over his disk quota...I'll think of that tommorrow.

i got your functions, included in my local copy, fixed very few things,
I think to send a remind email to admin if anybody exceeds quota,
or we may put an option in options like "Suspend over-quota domains - yes/no" and suspend a domain automatically upen first check... something like that..

I have also good news for you,
as i remember, you had requested (or somebody) subdomain with separate ftp,
i implemented that, will release with next version, testing now..
i will send new files to you soon.

Thank you for your contributions...

I was thinking of setting a grace period when creating each domain.
If the user is over quota, he will get an email and I'll set the start of the grace period in the domains table. If the grace period is over, the domain will be deactivated or redirected to a special page.

From a user's point of view, he will receive an email when he is over quota and he has 7 days (for example) to fix the problem.

I added function overDiskQuota(), edited function updateDiskQuota() to call the new function, edited function show to show a warning when user is over quota.
A also edited the serverstatus function; I moved some of the bash stuff to a separate file and added some more info. I think serverstatus should show only important informations about the server, so it's useful for the user; for everything else you have ssh access. If you display to much information, almost nobody will read it.

You can download the 2 files from here.
I was already working when I received your email, so I continued to work on my version of classapp.php. I wrote here exactly what I did so it will be easier to add the changes to your version of the file.

applied your changes to classapp.php of mine, with minor changes/improvements...
Added the option to notify only or take down the domain, by admin, using misc table in ehcp db.
not coded that option to ehcp gui yet... can be set from phpmyadmin only.
serverstatus function is same as yours.
sending you new file by email..