Skip to main content
Version: Next

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.

tip

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:

rugix-bakery.toml
#: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:

Loading ....

You will find the most recent version of this schema on GitHub.