Not really an insider secret, but more of an Advanced How-To.
If you are not familiar with Linux, don’t try it. If you don’t know why you would need to or doubt if it’s necessary, don’t do it.
This MAY screw things up, if you are not careful. You may encounter problems doing this. If this breaks your computer, it is not my fault. You have done something wrong. Sometimes it IS your fault.
This is NOT guaranteed to work. This is NOT guaranteed to be an effective alternative to your hosting service. Hell, this isn’t guaranteed to be anything.
First things first:
Why would you want to?
Because a server hosted at home can be cheaper in the long run and you will have more flexibility.
What do you need?
1) A computer WHICH WILL STAY ON ALL THE TIME, doesn’t matter if it’s a Mac (only Intel!) or a PC, just x86 or x86_64, but I’m going to write this guide for the Mac.
Specs:
1.8 Ghz Intel Core 2 Duo or better
1GB of RAM (4GB recommended)
More than 10GB of unused HDD space. 40+GB recommended.
Mac OS X, Windows XP/Vista/7
2) A fast (20Mbit/s or faster UP AND DOWN) internet connection with no (or 500GB/month or bigger) bandwidth cap and open ports. FIOS is best. Cable should work. Don’t even bother doing this with DSL or anything similar.
And it HAS TO BE behind a router/NAT device. AND it has to have a STATIC IP (IP does NOT change).
3) Virtualization software: VMWare works best. VirtualBox is good, as it’s free.
4) A server OS on a Disc / as an .iso (or similar) file:
The way I’m doing it should work only with Debian.
How to do it:
Step 1
Install VMWare or Virtualbox onto your computer. I’m using Virtualbox for this, but Vmware should work fine.
Step 2
Download Debian or find a disc of it
I suggest getting the small version of Debian from here:
http://www.debian.org/distrib/netinst#smallcd
Step 3
Create a virtual machine. Settings should look like this

(basic settings should look like this, but some stuff may vary, as long as it’s bridged to the right connection)
Oh, and give it ~512MB of RAM!
Step 4
Install Debian into the virtual machine. You will have to
1) Select the .iso image as a virtual disc, then start the Virtual Machine
2) Insert your Debian disc, then allow the virtual machine to read it, then start the virtual machine.
Step 5
Install Debian. It should be fairly easy for anyone who has ever installed an OS on a computer before.
If the installer asks if you’d like to install server software, ignore it. If the installer asks you to install the GUI interface, ignore it, as this isn’t needed)
Step 6
This is where it gets interesting:
First, we will start by updating the virtual machine and then downloading and unpacking the control panel software.
We are going to use ISPCP Omega as the control panel software.
ISPCP omega is Open Source software.
Run this:
# aptitude update
# aptitude safe-upgrade
# aptitude install tar bzip2 wget lsb-release
# mkdir -p /usr/local/src/ispcp
# cd /usr/local/src/ispcp
# wget http://mesh.dl.sourceforge.net/sourceforge/ispcp/ispcp-omega-1.0.0.tar.bz2
# tar -xjvf ispcp-omega-1.0.0.tar.bz2
# cd ./ispcp-*
(note: # represents each separate command, do not insert a # in the terminal)
Step 7
Make sure every package repository needed is there: Check /etc/apt/sources.list for non-free repository servers. They HAVE to be there.
Step 8
Install the control panel
(this will also install everything else you may need):
# aptitude update
# aptitude safe-upgrade
# aptitude install $(cat ./docs/Debian/debian-packages-`lsb_release -cs`)
If the courier screen pops up, select NO to “Web Directories”
If the postfix screen pops up, select “Internet Site”
If a screen pops up asking if you would like to continue installing without maildirs, select YES
If a screen pops up asking you to force sync updates, select NO
If the proftpd screen pops up, select “standalone”
Then,
# make install
and
# cp -Rv /tmp/ispcp/* /
Step 9
Configure MySQL by running this command:
# mysql_secure_installation
ONLY USE A-Z, a-z, 1-9 in your MySQL password!
Step 10
Set up the control panel software by running these commands:
# cd /var/www/ispcp/engine/setup
# perl ./ispcp-setup
All steps should be easily understandable. If you don’t know the answer to some of the questions asked by the control panel, leave a comment below.
Step 11 (OPTIONAL)
Clean the temporary directories
# rm -fR /tmp/ispcp
That should be it.
Access your control panel by going to the address specified before when installing the control panel.
It should look similar to this: http://admin.your-domain.tld
It should now act like any hosting provider’s server. You should forward ports from your router/NAT device. The process is different for every router.
The ports you should forward are:
Port 21, 20 (FTP)
Port 25 (SMTP)
Port 22 (SSH)
Port 53 (DNS)
Port 80, 443 for Apache
Port 110 (POP3)
Port 143 (IMAP)
465 (SMTPs)
993 (IMAPs)
995 (POP3s)
You can use http://www.everydns.com/ as a free DNS service (if you have to use it with your own domain names).
Or, you can use dyndns.com as a free DNS service if you DO NOT have a domain name.




