118 lines
2.8 KiB
Markdown
118 lines
2.8 KiB
Markdown
<div align="center">
|
|
<center>
|
|
<img src="https://github.com/blue-build/.github/assets/60004820/337323ed-70e4-4025-8c73-e8fe0c183c7c" alt="BlueBuild. A minimal logo with a blue-billed duck holding a golden wrench in its beak." style="max-height: 300px;" />
|
|
</center>
|
|
</div>
|
|
|
|
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```yaml
|
|
# 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
|
|
|
|
```bash
|
|
# 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.
|