Откройте для себя процесс деплоя приложений и систем непрерывной интеграции (Capistrano, например).
А вообще это делается так:
1. Используется Git. GitHub простое и недорогое решение для хранения изменений. Если очень душит жаба, берите самый простой, но надежный комп, поднимаете git server, делаете авторизацию по ключу и высовываете его хвост в инет. Пишите какой-нибудь примитив для бэкапа git-хранилища куда-нибудь еще. Хотя бы тупой архив, который отправляется ночью на почту. Работаете и не паритесь.
2. Ставите Vagrant, в нем делаете разработку, подготавливате фичи, демонстрируете заказчику и в отдельном экземпляре подготавливаете staging. Можно поставить несколько окружений. Ничего не мешает это сделать.
3. На git сервере настраиваете hook для Capistrano, который будет автоматически деплоить после присвоения тега для основной ветки. Или деплоите ручками.