batou

Automated application deployment

batou helps you to automate your application deployments:

  1. Create a model of your deployment (using a simple but powerful Python API)
  2. Describe different environments (where your model will be deployed on actual machines)
  3. Run the deployment (using the batou utility)

Getting started with a new project is easy:

$ mkdir myproject
$ cd myproject
$ curl https://bitbucket.org/flyingcircus/batou/.../bootstrap-template -o batou
$ chmod +x batou
$ ./batou

Here’s a minimal application model:

$ mkdir -p components/myapp
$ cat > components/myapp/component.py
from batou.component import Component
from batou.lib.python import VirtualEnv, Package
from batou.lib.supervisor import Program

class MyApp(Component):

    def configure(self):
        venv = VirtualEnv('2.7')
        self += venv
        venv += Package('myapp')
        self += Program('myapp',
            command='bin/myapp')

And here’s a minimal environment:

$ mkdir environments
$ cat > environments/dev.cfg
[environment]
mode = local

[hosts]
localhost = myapp

To deploy this, you run:

$ ./batou deploy dev

Support

batou itself is released “as is”.

We hang around #batou in the Freenode IRC network.

A public `mailing list XXX`_ is there for general discussion and help.

You can also report bugs to our bugtracker.

Commercial support

We will be happy to give you commercial support for batou: feature implementation, bug fixing, consulting, or education.

If you need us, send an email to mail@flyingcircus.io to get an offer for our services.

Contribute

batou is developed as open source / free software. If you want to get in touch and contribute, you are more than welcome.