Flavours allows you to describe application configurations in a vendor-neutral standardised way that can be shared and remixed.
Easily integrate different services into web applications with automatic discovery and configuration functionality.
Create vendor-neutral configurations that work seamlessly with existing container technologies to enable rapid deployment anywhere.
Distribute software and services through a common specification, across cloud vendors, hosting services and platforms.
Flavours is a platform-independent specification and reference implementation for working with containerised web applications.
Container platforms and configuration management tools have made it faster and easier to package and deploy web apps, but key steps in the deployment workflow remain unstandardised, fragmented and left to DevOps teams to address on a per-project basis.
This is the gap that Flavours aims to fill.
Flavours addresses the needs of the multiple user-types in an ecosystem, by providing the configuration glue that connects platform, application and addon developers together with service and hosting providers.
I am building a complete website and I want it to be portable and vendor-neutral.
As an application developer, adopting Flavours means your application becomes more portable and can be run on any hosting service supporting Flavours, or directly within your own development environment.
The Flavours application configuration file - app.flavour - is included in the root of your project and can be stored in your preferred version control tool. As you make configuration options available in your application, you can add them to its configuration file with default values that are in turn discovered and enable supporting hosting services to expose configuration options.
You can integrate addons and service providers into your project by including a loose reference to the addon or service, which will be automatically discovered and resolved.
The Flavours specification comprises of YAML-based configuration files, the Flavours command line tool and platform-specific addon managers. The app.flavour is bundled with the application and describes the applications dependencies and configuration options. In turn this is used to select an appropriate addon manager that resolves dependencies and performs the application configuration and setup.
Together with container technologies, applications can be deployed and run with no vendor-specific settings and seamlessly moved across environments.
Applications are described in a configuration file called app.flavour. This describes app configuration options and dependencies on other services or addons.
The app.flavour can be interpreted using the Flavour command line tool for local development or by any hosting provider that supports Flavours. The app.flavour references addons that are found in the addon registry.
Service providers expose services and make them discoverable through addons that integrate their services.
The addon registry is a repository of Flavour aware addons that are accessed by addon managers. Each addon is described with an addon.flavour configuration file that is queried by the Flavours command line. Addons can integrate service providers or standalone functionality.
Addon managers specialised for different platforms, are fetched from Docker Hub and are added to addon.flavour configuration file. Addon managers manage the project dependencies and prepare the project.
Flavours was initially created by Divio - the same team behind django CMS and Divio CMP. Flavours was born out of a need for an extensible way to add flexible platform support without introducing vendor-specific configuration.
The Flavours specification and reference source code is licensed under Apache 2. We hope the included reference code will help others adopt Flavours and join the conversation to further develop the specification.
You can find the Flavours logo and other resources in our Git repository. We kindly ask you to link to the Flavours website when you reference Flavours and not to modify the logo.