Webistrano is a Web UI for managing Capistrano deployments. It lets you manage projects and their stages like test, production, and staging with different settings.
It took a little longer because we got some feedback at Rails Conf Europe that we incorporated.
Further Webistrano now has its new home and own Trac/Wiki/Ticketsystem at the Peritor Labs:
The major change in version 1.1 is a new shiny UI by the curtsy of Marcus Lamer.
Further recipes are now associated to stages and not projects anymore so that different stages of a project can have different recipes. Webistrano now also set two variables inside recipes by default. Those two variables ( :webistrano_project and :webistrano_stage) are set to the project and stage name and can be used to do some decision making inside your recipes.
Upgrading from 1.0 is quite easy, just download the new version, copy your configuration files over and upgrade the database:
RAILS_ENV=production rake db:migrate
The roadmap for the next versions includes some basic monitoring capabilities and some form of permission management that lets you manage which user can deploy which projects and so on.
The screencasts have not been updated yet but the content they provide is still valid, the only change is that recipes now belong to stages.
Webistrano is a Web UI for managing Capistrano deployments. It lets you
manage projects and their stages like test, production, and staging with
different settings.
http://beta.project.com/ links to project/beta,
which symlinks to project/releases/2007..42
with RAILS_ENV=production
http://www.project.com/ links to project/published,
which symlinks to project/releases/2007..41
with RAILS_ENV=production
That way, developers deploy at whim, and managers move a given release
thru the system to published as they test and bless versions.
(Naturally, the system ought to provide database steps, too.)
Webistrano is a Web UI for managing Capistrano deployments. It lets you
manage projects and their stages like test, production, and staging with
different settings.
This is exactly what Webistrano is for. Makeing complicated multi-stage Capistrano environments easy through a Web UI.
Basically you would create one project in Webistrano and then have 3 different stages (alpha, beta, prod). Each stage would overrive the deploy_to variable:
I want to use only one svn lineage (I abhor code forks), and to
symlink the beta and prod domains to previous entries in the one
releases/2007* folder. This implies that the public version is the
exact same source files as passed alpha and beta tests. We would bless
a version by moving the symlink to it.
Is this what your lecture claims Capistrano makes hard? Or do you
imply that using multiple SVN drops is hard?
The different Rails env would also be set as a variable or inside your
mongrel configuration.
I want to use only one svn lineage (I abhor code forks),
You can argue a lot how the right way to do this is, but in my experience using different branches is the way to go. As long as you do not commit to this branch/tag you have exactly the same code without any hacks like your symlink stuff. Further you can backport bug-fixes and important patches.
and to
symlink the beta and prod domains to previous entries in the one
releases/2007* folder. This implies that the public version is the
exact same source files as passed alpha and beta tests. We would bless
a version by moving the symlink to it.
You can easily do this with Webistrano, just define a custom task for updating the symlink.
Is this what your lecture claims Capistrano makes hard? Or do you
imply that using multiple SVN drops is hard?
In general handling different environments of the same project with Capistrano is not trivial. Webistrano tries to make this easy.
The different Rails env would also be set as a variable or inside your
mongrel configuration.
lighttp.
Should make no difference, you would then set the env in your lighttpd config.
In general handling different environments of the same project with
Capistrano is not trivial. Webistrano tries to make this easy.
Have you tried Multistage?
Yes, but the management of stages is not easy. Maybe you want other people to deploy the staging and testing envs and those people are not friends of the CLI. Or you do not want to remember the many CLI args to capistrano for deploying the test env to a special set of servers. Or you want to know who deployed which version when to which servers.
This is where Webistrano comes in.
It is more than a GUI for Webistrano and not a replacement for it.