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.