Automated iPXE boot menu generation - where elves craft your network boot menus.
- 🔧 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
# 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/# Clone repository
git clone https://github.com/timhughes/elfshoe.git
cd elfshoe
# Install with pip
pip install -e .
# Or use hatch
hatch shell- Python >= 3.7
- PyYAML >= 6.0
- Jinja2 >= 3.0
- Getting Started - Create your first boot menu
- Server Setup - Configure DHCP, TFTP, and HTTP infrastructure
- Reference - Commands and configuration
- Architecture - Technical design
See docs/examples/config.yaml for a complete working example with Fedora, CentOS, Debian, and netboot.xyz.
Contributions welcome! See CONTRIBUTING.md for development setup and guidelines.
MIT License - see LICENSE file for details.