Introducing Speedy – Painless rapid Rails deployment

If you’re a Rails developer I hope you too hate to run ./script/server command all the time to start the application server during the development phase. Fortunately Phusion came up with a revolutionized solution to host the Rails application on Apache server using Passenger (aka mod_rails).

To deploy a web application on Apache using Passenger you should perform following initial server configurations.

  1. Create a virtual host
  2. Add an entry to the hosts file
  3. Enable the website
  4. Finally restart the Apache web server

Apparently this is a repetitive task, no doubt it sucks your valuable time for each and every application that you develop and deploy.

Before I bought my MacBookPro, I used Debian based Linux distros like Ubuntu and LinuxMint for my development. So, at that time I noticed that Mac people have a simple solution called Passenger preference pane, which allows them to drag and drop project and deploy. I really inspired by that and I always wanted to create such an automated tool which can use by all Rails developers despite of the platform. So I thought the best solution for this is to create a Ruby gem.

So, as soon after finishing my final year exams, I sat and write the specifications for the tool. First I thought to call this tool as “FireRails”. But, finally it became “Speedy”.

I’ve hosted the Speedy on GemCutter RubyGems, so that you can install in the native way.

sudo gem install speedy

To deploy a web application navigate to the particular application root folder via terminal and simply type

sudo speedy deploy

(Since Speedy deals with many system level commands, you always need to run Speedy with administrator credentials.)

If you need, you can pass the desired hostname for above command.

sudo speedy deploy example.local

If not Speedy will create a hostname and deploy the site with the name of the root folder, enable the site and finally restart the Apache server. All these operations will only take less than 2 seconds, as the name implies.

In addition to that, you can use Speedy for maintain Apache-Passenger clean configurations. Play the video for the instructions.

Currently, Speedy supports Debian/Ubuntu variants only. Hopefully, next release will support both Mac and Linux, and my ultimate goal is to develop Speedy, to use it in production servers, very easily and very happily.

You can visit the official website and the documentation for more information and instructions. Also follow @speedygem in Twitter for stay up to date. If you would like to discuses about the features and suggest new features or to report a bug please visit the official Google group.