Shared hosting made it possible for the web to be what it is today. However, time didn’t stop and software is evolving. Now-days, the concept of shared hosting is rather problematic. Lets say, there are over 100 mini websites on a shared host. Each of those websites is an Apache virtual host, connecting to a database – at least in the classic model. A bigger failure in any of the sites that crashes any of the shared programs will stop every site, completely. Also, if one of the sites gets hacked, the whole server can get exposed to the hackers.
Needless to say, that configuration is not a girl’s dream. Lucky wise, the experts been busy in the last years, and created the basics for a new technology called LXC. The kernel got extended with a namespace feature, and that makes it possible to create lightweight virtualization, and thus isolation. Feels familiar? You might know tools like VirtualBox, where you run one operating system in a window of another – virtually. In that particular case, virtualization is not really lightweight, as the whole hardware-logic has to be calculated for the virtual machine, – the VM. However, we – the open source guys – do not really want to run other operating systems.
To get rid of the shared hosting concept we actually could run several instances of the same operating system, well isolated form each-other, and the kernel namespace feature makes this possible. LXC is one of the new applications, that implements this concept of containers or virtual environments, – the VE’s. LXC 1.0 was released on 20th of February 2014, so its really fresh technology, and as it came out, I instantly started to work with it. After almost a full year of working with it, and using it for several months in production, the 2.x version is available as an rpm.

Once the rpm is installed you can start using it. The fist step would be to install tools and apply configuration settings for:
– web services
– mail services
– user settings

There are some requirements you should keep in mind before starting the installation.
It is recommended to set up key-based ssh authentication.

In order to run a proper server you will have to set up a powerful computer, with SSD’s,
set a static IP address, and obtain some signed certificates.
These files will be used if present, other wise they will be generated.

/root/ca-bundle.pem
/root/key.pem
/root/crt.pem

However, installation files can be re-configured, so skip this step if you don’t have any certificates yet.

To start the host-configuration procedure use:

srvctl update-install all

As srvctl is a bit similar to systemctl, and if used frequently they can be confused, so the shorthand-syntax for the command is simply:

sc command [mandatory argument] [optional argument]

To see all available commands, and the use syntax, simply use sc without any arguments, anytime, anywhere.

The first installation will generate a configuration file, that you can edit – I suggest you to use the midnight commander:

In order to reverse-proxy on the SMTP protocol, saslauthd has to be patched.
This is done by downloading a precompiled patched version of saslauthd.
You might want to compile your own for uncommon architectures, eg, non x86_64.
The main problem is that perdition sends the “OK! Capabilities” message before the authentication OK.
saslauthd does not recognize this by default, and quits. The patch fixes it.

This software is under construction, and upgraded continuously.
If you plan using it please contact me for support!

First of all, we are now part of PKI, the Public Key Infrastructure. StartSSL authenticated D250 Laboratories, and the SSL keys are successfully built in to all our services, that need encryptions.

There are also news from our internal site, the forum and the wiki have now facebook-connect authentication built in, for easy login.

And last but not least, we got involved to the development of ISPConfig. Several new features are implemented, such as password-less ssh login, or signing CA certificates by a local custom CA.
these features are uploaded into the SVN trunk of ISPconfig 3, and hopefully should be included in the next update.