Projects
A Rugix Bakery project is a directory containing the following files and directories:
run-bakery
: Shell script for running Rugix Bakery pinned to a major version.rugix-bakery.toml
: Project configuration file.layers
: Directory containing project-specific layer configurations (optional).recipes
: Directory containing project-specific recipes (optional).tests
: Directory containing integration tests for system images (optional).
We also refer to the directory containing all these files and directories as the project directory.
Note that you must always run ./run-bakery
directly in the project directory.
You can initialize a project from a variety of templates with ./run-bakery init
. You can also browse the templates on GitHub to get an idea of how Rugix Bakery projects for different distributions and devices may look like.
Project Configuration
Each project is configured in a rugix-bakery.toml
configuration file. Such a file typically has two sections, repositories
and images
. We explain those sections in further detail in dedicated sections of this documentation.
To give you an idea how a configuration file may look like, here is an example:
#:schema https://raw.githubusercontent.com/silitics/rugix/refs/tags/v0.8.0/schemas/rugix-bakery-project.schema.json
[repositories]
rugix-extra = { git = "https://github.com/silitics/rugix-extra.git", branch = "v0.8" }
[images.customized-arm64]
layer = "customized"
architecture = "arm64"
The #:schema
directive is used to specify a JSON Schema for the TOML file. Rugix Bakery comes with JSON Schemas for all its configuration files, enabling straightforward validation and autocompletion in modern IDEs.
For reference, here is the complete schema for project configuration files:
You will find the most recent version of this schema on GitHub.