If I understand correctly, the root problem of the OP
is not being able to use standard capistrano recipes
since the production server (in the DMZ) cannot reach
the git repo that is inside the company firewall?
What I have done in such a scenario (where my production
server is at a hosting company) is to use standard
capistrano practice, but have a “production” branch of
the git repo on the production server. So the
on the production server is pulling from a “local” repo.
The top of my deploy.rb then becomes something like:
set :user, ‘vandenabeele’ # username on the production server
set :application, ‘flamjobs’ # app name
set :repository, ‘email@example.com:git/flamjobs.git’
set :branch, ‘production’
For that, I has set-up a “bare” repository in the directory
and I push into that from my dev machine before running
cap deploy (I could probably automate that too …).