What a week for learning new things. I already knew the basics of port forwarding and punching holes in firewalls, and a year or two of occasional linux usage has put me in a great position to set up the infrastructure for our fledgling company.
This week, I have set up a linux server (Ubuntu 11, very nice), Git and Gitolite from scratch (learning a hell of a lot about SSH on the way), got Git working across our network, punched some holes in the firewall, figured out how to make SSH only use RSA keys, and finally got remote access via a dynamic IP mapper through into our office box. As far as I can tell, it's as locked down as possible (arbitrary SSH port, no password access, no VNC access, arbitrary confluence port, no guest logins) but we now have a Wiki and a git repo that we can use from home.
Git is actually very nice to work with, once you accept some of the choices they have made. I know for a fact, though, that not being able to lock binary files exclusively will cause us headaches at some point in the future. We need to structure our Unity projects to mitigate consecutive edits of binary files (like prefabs and scenes). This may be enough of a problem to move us back off Git and over to something like Perforce or Plastic, but I sincerely hope not.
There really is something quite - primal, I guess is the word - about ssh'ing into a box, messing with authorized_keys and coming away with a clone of the git repo on my windows box. It all feels a bit magic.
I think it's going to stand us in excellent stead when we begin setting up ejabberd on an EC2 instance next week. Roll on the crazyness for a few more weeks!