Is there a way to locally host your own Team Foundation Server so that all the machines on a network can work together on the same project?
If so, is there a way to host it so that you can access the TFS outside the network?
I was wondering about this since we are not a lot on the same project and we do not have the money to pay for web hosting. I have a very good machine which would probably be able to run a server.
First, if you haven't already, check out Microsoft's free hosted TFS solution. That's probably the simplest way to go.
If you still want to deploy TFS locally, you certainly can. If you have access to TFS (via a MSDN subscription, for example), it should just be a matter of downloading and running the installer. Verify that you're on a supported OS (Vista, Windows 7, Windows Server 2003, Windows Server 2008, or WIndows Server 2008 R2, according to MSDN), run the installer, then the configuration wizard. You can find instructions for the latter on MSDN.
After you get it installed and configured, verify that you can connect to your TFS instance from the local Visual Studio, then you just need to make sure the right port (8080 for default TFS) is open in your firewall for LAN access. WAN access will be a bit more complicated, depending on your situation. The gist is that you need to get messages from the internet routed to the correct port on your computer, which may involve anything from port forwarding to VPNs.