FAQ Frequently Asked Questions
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.