No description
Find a file
2025-08-27 15:21:27 -07:00
.forgejo/workflows did stuff 2025-08-26 09:25:35 -07:00
.github chore(deps): bump docker/login-action from 3.4.0 to 3.5.0 2025-08-21 10:24:17 -04:00
.helix refactor!: Rename template to generate and move rebase/upgrade under switch (#116) 2024-05-26 22:47:34 -04:00
examples Added initial debian support 2025-08-27 15:21:27 -07:00
integration-tests fix: Use different mount options based on build engine 2025-08-10 18:38:09 -04:00
process Added initial debian support 2025-08-27 15:21:27 -07:00
recipe feat: Add bootc support (#448) 2025-08-09 14:05:59 -04:00
scripts feat: Add bootc support (#448) 2025-08-09 14:05:59 -04:00
src fix: Use different mount options based on build engine 2025-08-10 18:38:09 -04:00
template fix: Use different mount options based on build engine 2025-08-10 18:38:09 -04:00
test-files fix: Parse Version from container and remove ostree commit 2025-05-31 00:45:23 -04:00
utils did stuff 2025-08-26 09:25:35 -07:00
.earthlyignore Add ability to use incremental caching for rust builds in Earthfile 2023-12-27 16:36:16 -05:00
.editorconfig feat: Embed build scripts and extract into temp dir for build (#516) 2025-08-10 16:09:42 -04:00
.envrc feat: add flakehub entry + nix flake (#109) 2024-03-05 21:34:29 +00:00
.gitignore Added initial debian support 2025-08-27 15:21:27 -07:00
.rusty-hook.toml chore: Clippy fixes 2025-04-28 23:51:35 -04:00
bacon.toml chore: Make sure clippy checks entire workspace 2025-01-29 15:49:01 -05:00
build.rs chore: Upgrade shadow-rs 2024-12-16 21:14:37 -05:00
Cargo.lock chore: Update deps 2025-08-16 13:24:56 -04:00
Cargo.toml feat: Embed build scripts and extract into temp dir for build (#516) 2025-08-10 16:09:42 -04:00
CHANGELOG.md chore: Release 2025-07-31 09:52:44 -04:00
cliff.toml chore: Add cargo release files 2024-02-13 16:33:43 -05:00
cosign.pub fix: Remove check for specific branches for signing (#114) 2024-03-05 09:18:43 -05:00
DEBIAN_INTEGRATION_APPROACH.md Added initial debian support 2025-08-27 15:21:27 -07:00
distrobox.ini fix: Better support distrobox (#160) 2024-11-24 11:50:38 -05:00
Earthfile feat: Embed build scripts and extract into temp dir for build (#516) 2025-08-10 16:09:42 -04:00
flake.lock feat: add flakehub entry + nix flake (#109) 2024-03-05 21:34:29 +00:00
flake.nix chore: Release 2025-07-31 09:52:44 -04:00
install.sh chore: Release 2025-07-31 09:52:44 -04:00
justfile chore: adjust release command 2025-07-29 00:41:46 -04:00
LICENSE Add LICENSE 2023-10-01 20:57:24 +00:00
README.md Added initial debian support 2025-08-27 15:21:27 -07:00
rust-toolchain.toml feat: Bugreport command (#28) 2024-01-31 09:51:13 -05:00
rustfmt.toml feat: upgrades (#26) 2024-01-27 19:07:03 -05:00

BlueBuild. A minimal logo with a blue-billed duck holding a golden wrench in its beak.

Debian Blue-Build CLI

A fork of blue-build/cli adapted for Debian package management and atomic image building.

Overview

Debian Blue-Build CLI provides a command-line interface for building Debian atomic images using recipe-based configuration, maintaining compatibility with the original blue-build system while adding Debian-specific functionality.

Features

  • Debian package management (APT-based)
  • Recipe-based image configuration
  • OSTree composition support
  • Bootc container generation
  • Multi-format image output

Installation

# Clone the repository
git clone <repository-url>
cd blue-build-cli

# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Build the CLI
cargo build --release

# Install the CLI
cargo install --path .

Usage

Basic Recipe

# recipe.yml
name: debian-server
version: 1.0.0
description: Debian server image

packages:
  - openssh-server
  - nginx
  - postgresql

repositories:
  - deb http://deb.debian.org/debian trixie main
  - deb http://deb.debian.org/debian-security trixie-security main

customizations:
  user:
    name: admin
    password: secure_password
  network:
    hostname: debian-server

Build Command

# Build image from recipe
debian-blue-build build recipe.yml

# Build with custom output format
debian-blue-build build recipe.yml --format qcow2

# Build with specific architecture
debian-blue-build build recipe.yml --arch amd64

Architecture

  • Recipe Parser: YAML recipe processing
  • Package Manager: APT-based package handling
  • Image Builder: OSTree and container generation
  • Output Formats: ISO, QCOW2, RAW, VMDK support

Development Status

  • Core CLI: Implemented (Rust-based)
  • Debian Integration: 🚧 In Progress
  • Recipe System: Basic structure
  • Debian Driver: 🚧 Implemented (basic)
  • Debian Modules: 🚧 Implemented (debian-packages)
  • Testing: 🚧 Basic structure

Dependencies

  • Rust 1.70+
  • OSTree tools
  • Debian build tools (debootstrap, apt-get, dpkg)
  • Container tools (Docker/Podman/Buildah)

Supported Debian Versions

This project supports the following Debian releases:

  • Debian 13 (Trixie): Current stable release (recommended)
  • Debian 14 (Forky): Testing release
  • Debian Sid: Unstable/rolling release

Note: Debian 12 (Bookworm) is no longer supported as it has moved to oldstable.

Configuration

Configuration files are located in ~/.config/debian-blue-build/.

Contributing

See CONTRIBUTING.md for development guidelines.