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.
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
- Getting Started - Create your first boot menu
- Server Setup - Configure DHCP, TFTP, and HTTP infrastructure
- Reference - Commands and configuration
- Architecture - Technical design
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file elfshoe-0.1.2.tar.gz.
File metadata
- Download URL: elfshoe-0.1.2.tar.gz
- Upload date:
- Size: 50.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fac8d03fe3bebda8adac682d5ce8c4d2868d073aa6810a095649adfd15fa2b42
|
|
| MD5 |
ef946eba8b9a385af30e7e0c0ad7df58
|
|
| BLAKE2b-256 |
9a3bb23304d7336bbc6cc2da7ce3ffbf5919230676a739eb0dab75ff4b4a0f8d
|
Provenance
The following attestation bundles were made for elfshoe-0.1.2.tar.gz:
Publisher:
release.yml on timhughes/elfshoe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
elfshoe-0.1.2.tar.gz -
Subject digest:
fac8d03fe3bebda8adac682d5ce8c4d2868d073aa6810a095649adfd15fa2b42 - Sigstore transparency entry: 928707235
- Sigstore integration time:
-
Permalink:
timhughes/elfshoe@ae6b0a6aa7246343ad9f0f320fab42a0417b9ab1 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/timhughes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ae6b0a6aa7246343ad9f0f320fab42a0417b9ab1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file elfshoe-0.1.2-py3-none-any.whl.
File metadata
- Download URL: elfshoe-0.1.2-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db4c216cff49086e4dd351ecf8bcbbed276445875b74c6f887f7038574351c32
|
|
| MD5 |
96bc2dbb5511eb0355e6c5f383b96601
|
|
| BLAKE2b-256 |
b5d0f3afb41732d2f8a0c9241c5a16200561f3f09a10699e38319c0955144148
|
Provenance
The following attestation bundles were made for elfshoe-0.1.2-py3-none-any.whl:
Publisher:
release.yml on timhughes/elfshoe
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
elfshoe-0.1.2-py3-none-any.whl -
Subject digest:
db4c216cff49086e4dd351ecf8bcbbed276445875b74c6f887f7038574351c32 - Sigstore transparency entry: 928707260
- Sigstore integration time:
-
Permalink:
timhughes/elfshoe@ae6b0a6aa7246343ad9f0f320fab42a0417b9ab1 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/timhughes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ae6b0a6aa7246343ad9f0f320fab42a0417b9ab1 -
Trigger Event:
release
-
Statement type: