Skip to main content

Automated, validated, multi-architecture iPXE boot menu generation - where elves craft your network boot menus

Project description

elfshoe

Automated iPXE boot menu generation - where elves craft your network boot menus.

Documentation PyPI version PyPI - Python Version PyPI - Downloads

Features

  • 🔧 Configuration-driven - Define distributions and boot options in YAML
  • 🏗️ Multi-architecture support - Automatic x86_64, ARM64, i386, ARM filtering per client
  • 🔄 Dynamic version detection - Automatically fetch latest versions from metadata
  • ✅ URL validation - Verify boot files exist before adding to menu
  • 📝 Custom templates - Jinja2-based templates, easy to customize
  • 🚀 Fast mode - Skip validation for quick regeneration
  • 🎯 Modular architecture - Plugin system for adding new distributions
  • 🏗️ Modern build system - Uses Hatch for packaging and environments

Quick Start

# 1. Copy example configuration
cp docs/examples/config.yaml config.yaml

# 2. Generate menu
elfshoe

# 3. Deploy to your HTTP server
sudo cp elfshoe.ipxe /var/www/pxe/

Installation

From PyPI

pip install elfshoe

From Source

# Clone repository
git clone https://github.com/timhughes/elfshoe.git
cd elfshoe

# Install with pip
pip install -e .

# Or use hatch
hatch shell

Requirements

  • Python >= 3.7
  • PyYAML >= 6.0
  • Jinja2 >= 3.0

Documentation

Example Configuration

See docs/examples/config.yaml for a complete working example with Fedora, CentOS, Debian, and netboot.xyz.

Contributing

Contributions welcome! See CONTRIBUTING.md for development setup and guidelines.

License

MIT License - see LICENSE file for details.

Credits

  • Built with iPXE - open source network boot firmware
  • Uses Hatch for modern Python packaging

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elfshoe-0.1.3.tar.gz (48.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

elfshoe-0.1.3-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file elfshoe-0.1.3.tar.gz.

File metadata

  • Download URL: elfshoe-0.1.3.tar.gz
  • Upload date:
  • Size: 48.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for elfshoe-0.1.3.tar.gz
Algorithm Hash digest
SHA256 1fcf4b37be8990beccce074b8672da4860eb0f6bdd03a61cb0bde0fc691cc13b
MD5 27e36208355cb946ea7a1088a4fe3cc5
BLAKE2b-256 5d63bc7fc100aa7840fbabc3722e552b7fc00600e8b378f9d2dde74732f4b2b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for elfshoe-0.1.3.tar.gz:

Publisher: release.yml on timhughes/elfshoe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file elfshoe-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: elfshoe-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 19.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for elfshoe-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6c689306f3a63e34a3fc5b6536db85de4b22583fc728901c22053bb176929337
MD5 8a048f3e7fda32c38885079885d13429
BLAKE2b-256 8b032d1ea028ca70ce759123aa907de2f3c4520776f5a124c4037295f13f4252

See more details on using hashes here.

Provenance

The following attestation bundles were made for elfshoe-0.1.3-py3-none-any.whl:

Publisher: release.yml on timhughes/elfshoe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page