We are still actively working on the spam issue.
Home server Original
Please note: If you are going to run ANY services that can be accessed from the external internet, beyond the confines of your home, please secure your system per Setting up a Server.
Contents
Operating systems
You should run Debian, RHEL or CentOS if you want Linux, or any *BSD that you like.
Ubuntu usually does retarded things with their packages and versions (lib*-ubuntu1.l2), and pulls unstable software from Debian Sid.
Rolling release distros (Arch, Fedora) are not really good for a server, because it's supposed to stay working, and it shouldn't break/change it's behavior on updates.
Gentoo is usually too much trouble to be worth it, but it's ok.
You should also consider a NAS-centric operating system for a home server - FreeBSD-based FreeNAS or NAS4Free are common choices. Both are free software and have simple GUIs to set up your services.
Centralized storage
One option is to set it up with NFS (Linux-centric, can be used on windows but it's shit) or samba, so you can watch your chinese cartoons on any device and keep your documents/whatever synchronized.
You may want to consider a RAID array for long-term file storage. RAID is not backup, but will protect your files in case of drive failure. NAS4Free allows you to easily set up RAID arrays using UFS or ZFS.
Remote access
Setting up SSH access enables you to:
Tunneling
Create a tunnel and use it as a proxy for environments that block certain DNS requests or pages and to encrypt your data
Wake on lan
Turn on a pc on your lan Arch Wiki guide
Web hosting
Host webpages, use nginx or apache debian nginx guide
Proxy
You can use a proxy guide
Compression
Ziproxy (Opera style web compression, including images)
Media automation
Torrenting
Use a daemon like transmission or deluge
TV Series
You can use a daemon like Sickbeard
Movies
You can use a daemon like Couchpotato
Music
You can use a daemon like Headphones
Voip
You can use mumble-server (free), ventrilo or teamspeak (non-free)