34

I've been starting Thin with thin -V start in development.

However, I would like Thin to be the default instead of WEBrick and to be able to start it with rails s.

Is there a way to set Thin as the default instead of WEBrick in Rails 3?

If that's not possible, is there at least a way to start it in the test environment automatically?

deb
  • 12,326
  • 21
  • 67
  • 86

4 Answers4

46

I sent a pull request on the Github repository of rack and it was accepted: https://github.com/rack/rack/commit/b487f02b13f42c5933aa42193ed4e1c0b90382d7

In a near future, we will be able to use Thin just by adding gem 'thin' to our Gemfile and starting app with rails s.

Note that this may be a temporary measure, however.

I chose Thin because Mongrel was not maintained currently and no other server seemed to suit as an alternative to Mongrel.

Tsutomu
  • 4,848
  • 1
  • 46
  • 68
  • 15
    As of Rails 3.2.0.rc2, which was released yesterday, `rails s` invokes Thin when your Gemfile has `gem 'thin'` line. Yey! – Tsutomu Jan 05 '12 at 11:20
  • 1
    Actually, `rails s` now invokes Thin even if we attempt to set WEBrick as the development default with `gem 'webrick', group: :development`. I'm using Ruby 1.9.3-p327 and Rails 3.2.12 on Debian, BTW. – MarkDBlackwell Feb 26 '13 at 18:01
  • 1
    @MarkDBlackwell You are right. This has been the behavior of `rack` since the era of mongrel. If you have installed the first-priority server library (currently, `thin`), the `rack` picks it up instead of WEBrick even if `Gemfile` does not contain `gem 'thin'`. – Tsutomu Mar 17 '13 at 13:51
14

Alternatively you could use foreman, especially if your web applications tend to get more complicated to run (background workers, clock processes to handle scheduling, etc.)

Taking thin as an example, you would need to create a Procfile in your Rails app with the following content:

web: bundle exec rails server thin -p $PORT

Then just:

foreman start

to start your server.

zaiste
  • 547
  • 4
  • 9
8

You can run rails3 with thin using rails server thin

See the output of rails server -h for more options.

epochwolf
  • 12,340
  • 15
  • 59
  • 70
4

In Gem file use: gem 'thin'
bundle install
then rails s it will take thin as default server for your project.

vidur punj
  • 5,019
  • 4
  • 46
  • 65