Skip to content

timhughes/elfshoe

Repository files navigation

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

About

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

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors