Profiles
SlapOS uses Buildout to install software and deploy instances.
In SlapOS, a Software Release is defined by its URL. It is in fact a
Buildout Profile.
When SlapOS installs a Software Release, it launches Buildout with this
URL.
A Software Release file, named software.cfg, can reuse other Buildout
profiles using the extends mechanism. It allows you
to create a software.cfg in a few lines.
Many different profiles exist in SlapOS.
You can use components that are utilities and/or binaries like cURL,
PHP, Apache, Java. You can also use profiles installing libraries like
libxml, to fulfil requirements.
If you need, you can also use what we call "stacks". A stack is a group
of components working together, in a reusable way. For example, when
creating a PHP Sofware Release, you will extend the "LAMP" stack,
containing all what is needed to run PHP applications (Apache, MySQL, etc)
so that you can define only what is specific to your software in a few
lines.
Recipes
In order to deploy Software Instances, SlapOS uses custom recipes.
If you have read the Buildout tutorial, you know that recipes are Python
Eggs.
Recipes achieving high quality level are included in a single Egg :
slapos.cookbook.
You can of course use your own egg, usually
mycompanyname.recipe.myinstancename.