It's unlikely that you'll find a whitepaper that completely describes everything you need, but here's one:
http://thinktank.wpi.edu/article/158
We set up a laptop running linux and cvs. It was probably a month process to get everything working well enough, and another year until the configuration was finalized and everyone was used to using it. It is not used for anything else.
The laptop runs cvs with the pserver protocol. It's connected to the internet at my home (check with your ISP to make sure that this won't your TOS). I use dyndns.com (which sponsors team 501) to provide dns that will update whenever my dynamic IP changes. My home router is configured to forward the appropriate ports to the laptop. I also run a DNS server on the laptop, which isn't used on my home network, but is used when connected to the team's wireless network (which isn't connected to the internet). When it is connected to the internet, a cron job rsyncs the data with a webserver (daily in the offseason, hourly during the season). The webserver runs viewvc, so that anyone can access the data at any time, and also provides RO access to the cvs repository, so nothing gets out of sync. I bring the laptop home with me when we aren't meeting.