This project provides a Python-based pipeline to generate customized Debian ISO images for automated deployment.
It uses Jinja templating and a modular architecture to dynamically build installation media with reproducible and secure configurations.
The primary use case is ISO-based automated deployment. PXE workflows are supported but require manual kernel/initrd extraction.
- Automated Debian ISO generation
- Verified downloads (GPG + SHA256)
- Dynamic configuration with Jinja templates
- Modular pipeline (download → verify → build)
- Structured partitioning with LUKS + LVM
- Automatic SSH key injection
- Preseed-based unattended installation
- PXE-compatible deployment (manual setup required)
- Debian 13 (Trixie) support (extendable)
- UEFI-only
sudo apt install xorriso gnupg python3-venvconfig/ → configuration files
assets/ → static files (grub, postinstall, recipes)
templates/ → Jinja templates
cache/ → temporary build data (auto-cleaned)
output/iso/ → generated ISO images
keys/ → GPG public keys
src/ → application source code
python -m venv .venv
source .venv/bin/activatepip install -e .cp .env.example .envGenerate a password hash:
openssl passwd -6cp config/example.yml config/default.ymlEdit config/default.yml and adjust values.
python -m src.mainThe pipeline executes the following steps:
- Build Debian ISO metadata
- Download ISO + checksum files
- Verify authenticity (GPG signature + SHA256)
- Generate preseed configuration
- Generate post-install scripts
- Extract ISO and inject configuration
- Rebuild final ISO image
To use the generated ISO in a PXE environment:
-
Extract kernel and initrd from the ISO:
xorriso -osirrox on -indev custom.iso -extract / iso-root/
-
Use:
iso-root/install.amd/vmlinuz iso-root/install.amd/initrd.gz -
Serve preseed over HTTP and configure boot parameters:
auto=true priority=critical preseed/url=http://server/preseed.cfg
-
ISO integrity is verified using:
- Debian CD signing keys (GPG)
- SHA256 checksums
-
No secrets are stored in the repository
-
Sensitive data is injected via
.env
Generated ISOs are stored in:
output/iso/
This tool performs fully automated installations and may erase all data on target disks.
Always test in a virtual machine before using on real hardware.
- Only UEFI systems are supported
- Designed for reproducibility and offline usage
- Keys are stored locally and not fetched at runtime