Skip to content

Getting started

Requirements

Flashberry expects a Linux host with:

  • Docker with Compose v2;
  • permission to run privileged containers;
  • enough free storage for the root filesystem, raw image, and compressed image;
  • binfmt/QEMU handlers for cross-architecture execution.

Install the binfmt handlers once on the host:

docker run --privileged --rm tonistiigi/binfmt --install all

Verify the host setup using the same configuration you intend to build:

make check-host CFG=flashberry.local.yml

Create a private configuration

The tracked flashberry.yml is a safe example. Copy it to the ignored local file before adding SSH keys, Wi-Fi credentials, or machine-specific packages:

cp flashberry.yml flashberry.local.yml
$EDITOR flashberry.local.yml

Do not commit flashberry.local.yml.

Validate first

make check CFG=flashberry.local.yml

This checks Git whitespace, Docker Compose syntax, shell syntax, ShellCheck when available in the assembler image, configuration validation, and unit tests.

Build the complete image

make all CFG=flashberry.local.yml

The output is written below out/, normally as:

out/
├── flashberry.img
├── flashberry.img.zst
└── flashberry.img.zst.sha256

You can also execute each stage separately. See Build pipeline.