Fetching contributors…
Cannot retrieve contributors at this time
75 lines (44 sloc) 2.93 KB


Guard::Passenger is the useful development server solution. The guard automatically starts Passenger and intelligently restarts the server when needed.


Please be sure to have guard installed before continue.

Install the gem:

gem install guard-passenger

Add it to your Gemfile (inside test group):

gem 'guard-passenger'

Add guard definition to your Guardfile by running this command:

guard init passenger


Please read guard usage doc


Passenger guard can be really be adapted to all kind of rack project with Passenger. Please read guard doc for more info about Guardfile DSL.

Standard rails app

guard 'passenger' do

Passenger standalone

Passenger standalone is used as default. You can pass options to the guard to disable or configure it. Guard::Passenger will start Passenger on startup and take it down on exit. By default Passenger standalone is activated and port is set to 3000.


You can choose to ping localhost:port(/path) after Passenger has been restarted, it's done asynchronously so it won't block other guards execution. If you set :ping to true, it will ping localhost:3000/, it you set :ping to a String, it will append the path to localhost:3000/ for the ping. If the ping responds with a non-5XX response, Passenger is considered as running, otherwise, there is probably a problem with Passenger.

Guard options

Guard::Passenger accepts some options for configuration.

# :standalone    boolean            run Passenger standalone                (default: true)
# :cli           string             options to pass to passenger command    (default: '--daemonize')
# :notification  boolean            Notifications enabled                   (default: true)
# :ping          boolean or string  ping localhost after Passenger restart  (default: false)
# :sudo          boolean or string  start Passenger under sudo              (default: false)

guard 'passenger', :standalone => false, :cli => '--daemonize --port 3001 --address my_app.local --environment production', :ping => '/foo', :sudo => 'rvmsudo' do


Pull requests are very welcome! Make sure your patches are well tested. Please create a topic branch for every separate change you make.


Fabio Kuhn

Contributors Forks