Skip to content

FAQ Frequently Asked Questions

jweiss edited this page Nov 2, 2010 · 2 revisions

How do I run Webistrano

Webistrano is a Ruby on Rails application and therefore can be run as every other Rails application. That means that you have the following options:

  • WEBrick – bundled but slow
  • Mongrel – fast and stable
  • Apache2/Nginx + mod_passenger – easy to setup
  • Unicorn – fast and robust

We advice to only use WEBrick for testing or development.

How does Webistrano do the deployment?

Webistrano bundles Capistrano, a Ruby deployment library. Once a deployment is started in Webistrano, it will assemble a valid Capistrano configuration out of your settings and kick it off. Capistrano will then login to your servers through SSH and checkout the source.

What are recipes?

Recipes are a set of Capistrano tasks and variables that can be shared across projects/stages. You manage recipes globally and then add them to each stage than needs to use them. Example recipes are custom tasks to start and stop your services, like a task to start MySQL. Only admins can create and manage recipes.

Where are recipes run?

It is important to remember that all Ruby-code inside recipes/tasks is run on the deployment machine. Only the shell-code run through run/sudo/invoke_command is run on the remote machines. The Ruby interpreter is only running locally. If you want to run Ruby-code remote, you need to upload a Ruby script and call it.

What configuration parameters are available

Typically you only need the default variables that Webistrano automatically creates when you create a project. At any time you can define your own project/stage configuration parameters. Those can then be used in your recipes. Furhter, Webistrano/Capistrano can be customized through many ConfigurationParameter.

What is the difference between a role and a host?

Webistrano hosts are globally known servers that Webistrano can deploy to. When configuring a stage you need to add servers to it in order to deploy it. Each time you add a host you give it a role like app. This host is then used by the stage as a application-server. You can also create your own custom roles like ferret_server and reference this role in a task.