I'm rather proud of the network I've set up at home, so I think I'll tell you all about it :)
Before organizing my network, I had a Windows XP box (ugh, not mine), two iMacs (one with Linux that nobody used, one with MacOS 9 that nobody used). Obviously, there were lots of fights over the Windows box since that was the only one that was useful to anyone. I finally managed to get an old P3 system, so I decided I would make my computer infrastructure useful.
Firstly, I installed Debian/testing on the P3 (it had smoothwall on it before, I was shocked to turn the thing on for the first time and see a LILO prompt :). I setup dhcpserver and NFS first, since I knew I'd need those (and ssh, obviously).
I then re-installed Linux on an iMac. I configured it so that it would be very easy to use for everyone in my family. This entailed installing XFCE4 and GDM on the machine. Then I made a skeleton configuration. Essentially, I picked a nice theme and customized the panel to include all the usuable apps on the system. This is, BTW, Firefox, XMMS, Gaim, XFFM, AbiWord, GNUmeric, "Change Password", volume control, speaker toggle (I wrote a script to toggle the iMac's internal speakers using XFCE's toggle-launcher), GIMP, and a util to get pictures from a digital camera. So now when anyone logs in they have a clear interface to access whatever they need. Nobody has any trouble using it.
Anyway, after that machine worked properly I imaged the second iMac with the image of the first iMac (I changed the hostname from "cato" to "nibbler" on the second machine). I have those two machines sitting next to each other. They're used at least every day now, so I feel an improvement has been made.
Now back to the server. I installed syslog-ng to take log messages from the two iMacs. Then I installed postfix and began accepting mail for my gotdns.org domainname (I had to open up a port in my NAT box obviously). Next I added FTP, and opened that up to the outside. After that I installed an extra 40G drive in the server for homedirs. I shared these to the macs with NFS. I synced the authentication information with NIS (insecure, I suppose, but good enough for my purposes).
So at this point we have an always-on server that does email, ftp, and ssh; and two iMacs that serve as word processors, spreadsheets, web, AIM, digi-cam access, etc. machines. Very nice, but what about the Windows box?
I created an admin account (called root ;) and added a Limited user account for everyone that would use that system. Then I configured each to get a folder off the main server via samba (the user's homedir). So now anything saved in I: is available on any computer in the house. Nice, and no more fights over computers!!
Interestingly, I've taught my brothers to use Bittorrent on the main server*. They download the torrent to their homedir (the only thing they can write to), ssh in (putty in Windows, ssh in Linux) to the main server, run screen, run btdownloadcurses FILENAME and C-a d to detach their screen. Then in a few hours, the come back, ssh into the server, screen -R -D and check their download. If it's done, they quit (and leave screen around so they can just screen -R -D again next time), and the file's right in their home directory. It's very nice to start a download, leave for a while (with the computer off) and come back to a different computer to check/use the file they want. I'm impressed with myself ;)
* I do this because it's the only machine for which the upload ports are open.
So to summarize:
router (NetworkEverywhere, only does NAT and wireless)
"snookums" (main server; debian/testing) (always on)
|-> DHCP for all machines (and WiFi machines)
|-> NFS homedirs to iMacs ("nibbler", debian/unstable; "cato", debian/unstable)
|-> Syslog for iMacs
|-> NIS for passwd/group sharing on iMacs and snookums
|-> SAMBA homedirs to windows xp computer ("dell", XP Pro)
|-> DNS for internal names (snookums = 192.168.1.2, nibbler = 192.168.1.10, etc.) and cache
| ssh (from external and internal machines)
| ftp (from external and internal machines)
| email (from external machines, no relaying allowed for non-local machines
Anyway I'm very happy how everything's worked out. It's really made things easier for everyone, too. If you have questions, etc, please email me.
Thinking about the future, I hope to replace the router with another Linux box running NAT and doing QoS so I can get Vonage. (I don't want the file server to be a NAT box for security reasons. It's better to not expose that whole box to the internet IMO. Right now I don't like the fact that wireless is inside the firewall, I want it to be outside). I also would like to get a gigabit ethernet switch and run gigabit between upstairs and downstairs (I have a switch on both floors but they're cascaded by only 100Base-T), and add gigabit to the server and windows machine (since they both support it). Hopefully that will make performance even better :)