How to deploy Rails apps on Servage.net

Okay, so I’ve had quite a bit of struggle with the tech support before
the app deployed. So I’ll post my experiences here if anyone’s looking
for info about deploying Rails apps on Servage.

First off, Servage has great service, but the tech support staff is
utterly inexperienced as far as Rails goes. Also, you don’t have ssh
access so you won’t be able to rake db:migrate. Finally, the their FAQ
is not correct. So, it’s not a good choice for Rails developers in
general. But if you don’t mind getting your hands dirty (or yell at
support staff) it can be done.

Before you upload your app, you need to make some modifications first.
Follow the Servage FAQ (available only through control panel), but,
when changing permissions and ownership change everything to 777
instead of 755 (FAQ says 755, but that doesn’t work). Ownership must
be set to “webserver” recursively only for “tmp” and “log” folders.

Next, you need to change the environment.rb file in “conf” folder.

Uncomment below to force Rails into production mode when

you don’t control web/app server and can’t set it the proper way

ENV[‘RAILS_ENV’] ||= ‘production’ # UNCOMMENT THIS!!!

You therefore need to force Rails to enter production mode because
there is no way of switching modes on Servage.

Finally, go here:

http://insignificant.org/2007/12/03/rails-migration-without-ssh/

This will give you a path like this:

http://yourapp.com/migration

Just enter the version you want to migrate to, and the password
embedded in the MigrationController code (make sure you change that
password before you upload your app, just in case). And also remove
the migration controller and views once the app is deployed and
database migrated. The app will appear to not work before you migrate
the database, naturally.

This should do.

I forgot to mention that you can also safely freeze gems. I have
noticed no problems with that.