Regardless if you are working on a team or as a single developer, it is beneficial that you set-up your own development server. You can use this for code repository, project management tool, or application server. For single developer, or for those working remotely with a team, renting a dedicated server or VPS is a good choice. Because you can access your server in any location.

When git was new, gitosis is commonly used to manage git-based projects. At the present, gitolite has replaced gitosis in popularity. But if you are just a single developer, or a small team with very few projects, you don't need any of these. Just plain git and ssh is enough.
First, you will need to setup a development server. You can read and follow this tutorial to setup a debian-based server. To recap, you need at a minimum to setup a password-less login to your server.

Since this is my first post, I want to start with something very simple yet useful. Usually, our first hurdle when studying a technology or framework is to setup our development environment. Assuming your machine is Linux based, this is how to prepare your machine. For this guide, my operating system is Linux Mint 14 Cinnamon, which is based on Ubuntu 12.10

The default configuration of MySQL is not very fast. They made it generic so that it can run on servers with small memory (For example, a VPS with 256Mb RAM). But desktop nowadays have so much memory and disk space that we can trade off for faster performance.
Performance is important because it affects your productivity. I have experimented with many configurations, but below is the simplest that I came up with that gave me good results.

NGINX is an awesome software that functions as both web server and as a reverse proxy. Sometimes you may need to configure it in front of your tomcat or other application server. There are many reasons but here are some common ones: