Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm looking for recommendations on how to automate / simplify deployment from a git repository (github) to a hosting service. The hosting service supports FTP (yuck) / SSH / SFTP access.

Any good tools out there to give push-button deployment of new revisions? I know it's not a hard script to write, but when you start thinking about things like roll-back and multiple sites, it gets complicated enough that I'd rather not re-invent the wheel.

share|improve this question
add comment

4 Answers

up vote 4 down vote accepted

If you don't want to install git on the remote (hosting) server then there are a couple of pretty good options:

CodeBase

Beanstalk

I prefer the latter because it's version tracking and deployment features are combined.

I have also seen people who do have git installed on their remote server use a cron job to run git pull every few hours. This works best if you have a branch for live completed code and a branch for new features etc.

Update:

It's actually an application called Deploy that CodeBase integrates with (both made by the same team).

www.deployhq.com

share|improve this answer
add comment

I've found Pagodabox to be the easiest repo as well as host to develop on, and its free for basic accounts.

share|improve this answer
add comment

What I'd try and do is create your git repository in a directory structure like:

~/website/
 .git/
 public_html/
 public_html2/

Then just pull different revisions appropriately. This method also keeps your .git folder out of the way of what your visitors might browse for. I can't exactly say much more without knowing specifics.

share|improve this answer
add comment

Have a look at Webistrano, which is a Web UI for managing Capistrano deployments. It lets you manage projects and their stages like test, production, and staging with different settings. Those stages can then be deployed with Capistrano through Webistrano.

We've been using it for a few years, deploying from our Subversion repo, but it supports Git as well. Rollbacks, multi-server deploys, etc., are supported.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.