batou
=====

.. raw:: html

    <a href="https://bitbucket.org/gocept/batou" style="float:right;border-bottom:none">
      <img src="https://bitbucket.org/zgramana/bitbucket-ribbons/raw/988dffc5fbeb/png/bitbucket-ribbon-dark-gray.png" />
    </a>

.. rubric:: multi-(component | host | environment | platform) deployment

batou is a tool that makes it easy to define automated service deployments for
complex (web) applications. It is developed at `gocept
<http://gocept.com>`_ and made available under the BSD license.

Here is the smallest component and environment definition you can make:

.. literalinclude:: ../../examples/tutorial-helloworld/components/hello/component.py
    :language: python

.. literalinclude:: ../../examples/tutorial-helloworld/environments/tutorial.cfg
    :language: ini

.. code-block:: bash

    $ bin/batou-local dev localhost
    Updating Hello > File(hello) > Presence(hello)
    Updating Hello > File(hello) > Content(hello)

batou was created by extracting our experience with automated deployments for
complex projects. We have used Fabric previously and are happy users of Puppet
for system configuration.  We want to make it easy for you to have deployment
automation that is idempotent and convergent -- two very useful properties
for this kind of work.

This project is still young and being developed very actively -- so please be
aware that things may change a lot.  However: all of the code is being used for
our own projects on a daily basis.

Documentation
-------------

.. toctree::
    :maxdepth: 2
    :glob:

    introduction
    tutorials/index
    guide/index
    changes
    legal

Contributing
------------

We'd love if you want to contribute: whether by reporting bugs, sending us your
ideas, or by hacking on batou. Here are the tools we use to develop batou:

* `batou redmine project <http://projects.gocept.com/projects/batou>`_
* `bitbucket repository <http://bitbucket.org/gocept/batou>`_ (pull requests welcome!)
