This morning Zac and I started a new project. It was the right time to clean a bit our server install and deployment process.

Linode stack script Rails/Passenger/Nginx ready

We've started by updating the stack script that we've been using in the past, and added some functions to it.

You can find the stack script at https://github.com/cookieshq.co.uk/linode-stackscript or on Linode stack scripts base https://manager.linode.com/stackscripts/edit/7423

It will allow you to select your Database password, SSH port, Rails env install, deploy user and ruby version (default to 2.0.0-p247)

It will install everything your expect on your server including passenger, Nginx, system wide RVM.

Once done the last thing you need to do is to configure your ~/.ssh/config file with your new Port.

Capistrano database.yml deployement

The next thing we needed was a common and easy way to deploy our database.yml file to each new project.

For that we've created a Capistrano recipe available here https://github.com/cookieshq.co.uk/capistrano-database-management-setup

Once install on your fresh project, when you will run cap [env] deploy:setup the script will ask you for a database username, password and name and set all this to a database.yml file in your shared path.

Then on each deploy, this file will be linked to your last release config folder.

Quick and easy.

We hope it helps