Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Deliver will use the ruby strategy by default. If you want to use a different one, define it in your .deliver/config file. Alternatively, pass it as at runtime:

$ STRATEGY=nodejs deliver

If you want to implement your own strategy, fork away. Currently, deliver only works with strategies defined in the local strategies directory, but with very little effort it can support any strategy specific to your setup. All strategies in your local .deliver/strategies directory are automatically available.


foreman exporting to upstart

These are all good conventions which have been bread over the years from orchestrating many different infrastructure setups. You can disregard everything here and go back to your existing deployment process. Alternatively, you can fork, add your improvements and contribute towards a modern and efficient deployment tool that just works.

1.1 Ubuntu

Your server is running Ubuntu, preferably 10.04 LTS.

Ubuntu + upstart are by no means the holy grail, but they work very well. By leveraging foreman, deliver supports all process supervisors that foreman supports.

1.2 Remote logins and privileges

Your local username can gain sudo privileges on the server without being prompted for a password.

Don't login with root. Don't use password logins.

If you're using chef to manage your servers sudo-cookbook & ssh-cookbook will work right out of the box.

1.3 Every app gets its own system user

A system user has been created for the app that you'll be delivering. I personally prefer the same name as the app itself. You should be able to log in as this user, without any password.

If you're already using chef, bootstrap-cookbook with the apps recipe will set everything up for you.

1.4 RVM

You might want to install rvm on the server that you'll be delivering your code to. I prefer system-wide setups in production. Yes, you've guessed it, use chef's rvm-cookbook for the best experience.

1.5 rbenv

For those that prefer rbenv in production (I do), use rbenv-cookbook.

1.6 Foreman

Every app should have this. It allows you to painlessly scale your app components, just as if you were running on Heroku. Deliver now supports a global foreman. As long as it's installed on the remote host and accessible to the system user running the app, it will just work.