batou helps you to automate your application deployments:
Getting started with a new project is easy:
mkdir myproject
cd myproject
git init
curl -sL https://raw.githubusercontent.com/flyingcircusio/batou/main/bootstrap | sh
git commit -m "Start a batou project."
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/environment.cfg
[environment]
connect_method = local
[hosts]
localhost = myapp
To deploy this, you run:
$ ./batou deploy dev
Check the detailed documentation to get going with a more ambitious project.
The project is licensed under the 2-clause BSD license.
mercurial
and subversion
are installed and in $PATH
../develop.sh
to create a local virtualenv with everything set up.bin/tox
cd doc; make
export GNUPGHOME=<DIRECTORY OF BATOU HERE>/src/batou/secrets/tests/fixture/gnupg
$PATH
for age encryption support.See CHANGES.md.