So you wish to install your own server to run may be a website or your own mail, or a specific application or service (Subsonic? Minecraft?…)
You will obviously have few requirement to match based on your needs.
You could have a dedicated server using OVH or any other provider, but I’ll assume your here to use your own hardware and host it at home.
In fact, a server does not need to be very powerful, so you could reuse an old laptop or computer if you want. For example a Rapsberry Pi (Based on Arm with 256Mo Ram) is enough to host quite a few services. But don’t except high reactivity tho.
My first dedicated server@HOME was a custom ITX (Small size) config based on:
Case: Thermaltake Element Q
Motherboard: Intel DG41MJ (ITX socket 775)
Processor: Intel E5300 2.5Ghz
2GB DDR2 RAM
250GB 2.5 7200tr/m Hard Drive
Paid 250e 4 years back
And I had a very good experience with it and I was hosting few websites with modest trafic (few hundreds per day) and dozen of services such as Subsonic, Ajaxplorer, FTP, Mails, …. No need to be much faster in fact.
Although my config now is way too powerfull for my needs (But it was my own gift xD)
I’m now having a i7 2600 with 16GB Ram + OCZ Vertex 3 SSD 64gb + 2x2To Storage (For duplication). I actually really enjoy using SSD in my machines now (Fast load time, very good performance with MySQL databases or heavy I/O tasks)
Obviously the faster your Internet connection is, the better but I would say there is no specific minimum, it will just limit your type of services and traffic.
If you could have at least 128kb/s (16ko/s) upload speed with your ADSL, that would be a good start. Download will not matter much usually, as upload is always the bottleneck in ADSL. (If you are having cables, ADSL2, VDSL2, or even FTTx, lucky you. In that case you will probably be very comfortable with upload)The server described earlier was on an ADSL2 connection at 16M/1M.
Now I’m having FTTB with 100M/40M (So much faster…indeed)
Another important aspect of your network will be your router, to route correctly the needed traffic to your server. You will need to open several ports to let enter the traffic.
GNU/Linux is THE Operating System for servers. Widely used, very stable and with good performance, it is a good choice to run your server on.
In the GNU/Linux family, it exists a lot of “flavor”, Ubuntu being the most popular and very easy to handle. Ubuntu has a dedicated server version called Ubuntu Server and will run quite well. But although I’ve started with Ubuntu Server, I’m quickly moved to Debian and could only strongly recommend you to give it a try.
Ubuntu being based on Debian, you will not feel much the difference as a server version. However I felt Debian to be much more stable and reactive than Ubuntu. However Debian got 3 majors branches (Stable, Testing and Unstable) with different version of application. Stable being based on very robust and tested set of application, while Testing has more up to date and Unstable being cutting edge version, with possible bugs for these 2 versions.
You want to play safe? I suggest you to use Debian Stable and if an application is not up to date enough, to install a more updated version from backport repositories.