Environment configuration

Component assignment (TODO)

General parameters (TODO)

General environment parameters are set in the [environment] config section. Example:

service_user = website
host_domain = gocept.net
platform = gocept
branch = production

The deployment is run as this user on remote machines. If this is not the same as the user connecting via ssh, a sudo to the service user is performed.


All hosts in the [hosts] section are postfixed with this domain. This is handy do make the host/component assignment less verbose


hg-bundle|hg-pull|git-bundle|git-pull|rsync|rsync-ext, sets how the remote deployment repository is updated.

  • pull, the default, uses hg/git clone and/or hg/git pull on the remote site.

  • bundle will copy the necessary changes as Mercurial/Git bundle, via the batou ssh link.

  • rsync will rsync the working copy. This is most useful in combination with the vagrant platform.

  • rsync-ext is the same as rsync, except that it calls an external rsync binary instead of using the emulation in the Python execnet library. This is a drop-in replacement for rsync, with the exception that it handles deletion of files in the remote copy of the repository which no longer exist in the local copy.


For remote deployments, use this and only this branch. batou will complain if the local branch does not match the set branch in the environment.


Set the platform for this environment.


Set the ssh connection timeout in seconds.


Absolute path of the directory on remote machines where the remote deployment repository is stored. Supports tilde expansion. Default: ~/deployment.


Override the automatic detection of whether sudo is required to run processes as the service user. If set to True then sudo will always be used unconditionally. If set to False then sudo will never be used.

vfs mapping (TODO)

Root-component attribute overrides (TODO)