from Hacker News

Ask HN: How to deploy to a customer that doesn't have access to your repo?

by blooberr on 3/4/15, 5:51 PM with 6 comments

I need to support multiple deployments to various customers. Their servers could be on anything.

I can access them, but I don't want them to be able to directly checkout code from my Github repo.

The only tool I'm familiar with is Capistrano, and as far as I know, requires access on the production machine to the source control repository. That's not what I want in this situation... Any ideas or suggestions?

  • by pjungwir on 3/4/15, 6:29 PM

    It sounds like Capistrano's `deploy_via` option is what you're looking for:

    http://bu.chsta.be/blog/2013-02-24/capistrano-deployment-str...

  • by yen223 on 3/4/15, 11:14 PM

    If you use ssh for your deployments, look up "ssh agent forwarding". It allows you to temporarily use credentials from your own local machine to perform remote operations.
  • by Someone1234 on 3/4/15, 6:10 PM

    Take a stable version, put it into a zip, put that onto a HTTPS server, and then give them a deployment script which downloads via wget and unpacks it.

    Amazon's S3 will host the zip file for pennies.

  • by fideloper on 3/4/15, 6:07 PM

    No matter what you'll have code on their servers. Some languages have obfuscation/encryption you can use.

    Overall from a tech perspective, I'd suggest building the app into containers (docker), so the computer they use at least becomes less important. Not sure what that means for users of Windows.

    (Docker won't protect against code theft but is a nice abstraction so the host OS matters less)

  • by brianjking on 3/4/15, 6:12 PM

    Ftploy.com?