Heroku is an excellent way to easily deploy Rails applications. But there's a trick to doing it: it's a read-only file system.
To some, this may be old news, but to others who have come across a project using SASS, you might feel like your out of luck. Fat Free CRM, for example is a great new project, and it uses SASS. Try running it on Heroku and you'll start getting frustrated. If you're not familiar with SASS, it automatically generates static CSS files for you in production, meaning it needs write access to the file system.
So, what do you do? The good thing is Heroku has a plugin to help with SASS. But, in this instance, it doesn't seem to work. I've installed it with Fat Free CRM and have pushed up to Heroku, but I get errors so rather than debug the issue you can try another option: http://github.com/mooktakim/heroku_sass_and_cache/tree/master.
Here's a step-by-step. First, if you don't have a Heroku account, signup and install the gem:
$ gem install heroku
Next, get the Fat Free CRM code:
$ git clone git://github.com/michaeldv/fat_free_crm.git
And turn it into a Heroku project
$ cd fat_free_crm $ heroku create
You'll need to install a plugin to manage the location for SASS files.
$ script/plugin install git://github.com/mooktakim/heroku_sass_and_cache.git
Read the documentation for the plugin, but you'll need to add this to
Just drop that on the first line of your
routes.rb file and commit all of your changes.
$ git add . $ git commit -m "feeling sassy" $ git push heroku master
That last bit will deploy your application to Heroku. Fat Free CRM requires that you run the
rake crm:setup task.
$ heroku rake crm:setup USERNAME=myusername PASSWORD=mypass EMAILemail@example.com
After that, you should have a working Fat Free CRM on Heroku. Try
heroku open and you'll land at your new login screen.
This will get you going, but you'll find that minor things like storing avatars won't work because they expect to be stored on the file system. Missing avatars aren't an application deal-breaker and I imagine that there might be some options in the future for separate storage options, or even just using Gravatar.
If you have any luck with the official Sass support on Heroku, leave a comment and I'll update the post.