Reputation: 917
I have a simple ruby (non-rails) app that uses resque, and won't start up without config.ru on heroku. When I add a config.ru file I get the following error when running rackup
locally:
/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:133:in `to_app': missing run or map statement (RuntimeError)
from /Users/nickkarrasch/Dropbox/Coding/Ruby/smsnotifyv2/config.ru:in `<main>'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:199:in `app'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:250:in `start'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:141:in `start'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/bin/rackup:4:in `<top (required)>'
from /usr/local/Cellar/ruby/1.9.3-p194/bin/rackup:23:in `load'
from /usr/local/Cellar/ruby/1.9.3-p194/bin/rackup:23:in `<main>'
What do I need to put in config.ru?
Upvotes: 3
Views: 2204
Reputation: 7338
The content of that file (config.ru), will depend on what you're actually trying to do and the framework you're using since is just used for configuring Rack applications, it tells the Rack::Builder
what middleware should be used and in which order. These are some of the examples offered in the Heroku documentation for deploying rack applications.:
Sinatra:
require './hello'
run Sinatra::Application
Ramaze:
require ::File.expand_path('./../hello', __FILE__)
Ramaze.start(:file => __FILE__, :started => true)
run Ramaze
Camping
require './hello'
run Rack::Adapter::Camping.new(Hello)
Upvotes: 6