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

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 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.1.tar.gz (50.7 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.1-py3-none-any.whl (19.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: elfshoe-0.1.1.tar.gz
  • Upload date:
  • Size: 50.7 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.1.tar.gz
Algorithm Hash digest
SHA256 a3157796f180df09ed82b2600a0f064fec2fcdea379ba3832ffeff3437927cff
MD5 26ad0f5187d3a935ab862f05fb1722d7
BLAKE2b-256 b20074f03c26d80caff7e277162883d918dd78691079bcfbf3eeb1c9fd64b73e

See more details on using hashes here.

Provenance

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

Publisher: publish-to-pypi.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.1-py3-none-any.whl.

File metadata

  • Download URL: elfshoe-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 19.5 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 34fae0a758cfe9ede3f59e2ee1694d69da004b9cdcac09d9f7990caf1e8a8fdb
MD5 d797b56f39f61a4a743e38d53485af5c
BLAKE2b-256 171b98062955bfaddadee951f178e1a0622b456481eb0f53b490911fe3df07d3

See more details on using hashes here.

Provenance

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

Publisher: publish-to-pypi.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