diff --git a/README b/README new file mode 100644 index 0000000..d665177 --- /dev/null +++ b/README @@ -0,0 +1,76 @@ +Hobo +==== + +Administration portal to configure and deploy applications. + +Installation +------------ + +Dependencies can be installed with pip, + + $ pip install -r requirements.txt + +It's then required to get the database configured (./manage.py syncdb); by +default it will create a db.sqlite3 file. + +Hobo can then be run like typical django applications (./manage.py runserver), +it will communicate to deployment agents using Celery and expects a running +RabbitMQ server running on localhost. + +The agent in charge of deploying application can then be run on the application +servers, for example: (--broker=... can be omitted if running on same host). + + celery --broker=amqp://guest@localhost// -A hobo.agent worker -l info + +Just like the django application itself, the celery process will use settings +from the file declared in the DJANGO_CONFIG_FILE environment variable. + + +Configuration +------------- + +It's possible to limit agents to particular applications, or particular +hostnames, using the AGENT_HOST_PATTERNS configuration variable. + +The format is a dictionary with applications as keys and a list of hostnames as +value. The hostnames can be prefixed by an exclamation mark to exclude them. + + AGENT_HOST_PATTERNS = { + 'wcs': ['*.example.net', '! *.dev.example.net'], + } + +Will limit wcs deployments to *.example.net hostnames, while excluding +*.dev.example.net. + +Some applications may support deployments templates, they can be specified in +the configuration with the SERVICE_TEMPLATES variable. + + SERVICE_TEMPLATES = { + 'wcs': [('export-auquo-light.wcs', u'Au quotidien light'), + ('export-auquo.wcs', u'Au quotidien'), + ('export-demo.wcs', u'Démo au quotidien') + ], + } + + +Usage +----- + +Go to environment settings, pick a service, fill its name and URL, and watch it +being deployed. Successfully deployed services will add a link to their +administration pages on the homepage. + + +Agents +------ + + - w.c.s. + +w.c.s. instances will be deployed using "/usr/sbin/wcsctl check-hobos" by +default, this command can be adapted in the AGENT_WCS_COMMAND setting. It +should be run with the same rights as the wcs process (redefine the command +to use sudo if necessary). + +Template keys defined in SERVICE_TEMPLATES have to map wcs skeleton sites +(created from settings / export) stored in /var/lib/wcs/skeletons (the exact +directory may vary according to the wcs configuration).