I've never bothered trying to get network TimeMachine working, I've heard far too many horror stories. I just have an external drive that my MacBook is plugged into at my desk. That is a TM drive and I also have SuperDuper set up to clone my MacBook drive to the same external drive a couple of times a week.

I built my own file server last year, I was tempted by FreeNAS but instead went with an Ubuntu install in the end. I wanted to be able to run various Virtual Box VMs on the server and while I know FreeNAS can do that it felt like I needed a general OS rather than a NAS specific setup.

I wouldn't want to be without ZFS (or something similar). I have a script setup to test the drives daily, so I'll know within a day if any sort of bit rot starts happening. There is no point having all this data and backing it up if you don't know whether it is corrupted or not, right ?

I have three drives in the server, setup in a ZFS mirror. That means that if the server ever dies I can just grab a single drive, put it in another machine and be up and running quickly.

I use CrashPlan for backup. I have it running on my MacBook to backup everything to CrashPlan running on the file server. The MacBook also backs up selected data direct to CrashPlan's cloud storage.

The Linux CrashPlan client also runs on the file server, backing up the entire ZFS array.

The server also runs my Squeezebox server, Unifi controller for my wifi, my FLAC-MP3 encoder script and my pfSense* router. All of those run in Virtual Box VMs, so again if the server hardware fails I can be up and running on other hardware by just pulling one drive.

I don't use AFS/Netatalk, I've never found it reliable, so I just use Samba/SMB.

* yes, my router runs in a VM. I have three network cards in the server, one is shared by the host OS and pfSense as the LAN. The other two are only used by the pfSense VM, each one goes to a DSL modem with a PPPoE connection.
_________________________
Remind me to change my signature to something more interesting someday