iPXE Server

This commit is contained in:
2026-02-02 21:50:03 +01:00
commit 96249d0c06
6 changed files with 743 additions and 0 deletions

50
quadlet Normal file
View File

@@ -0,0 +1,50 @@
# ipxe-server.container
# Quadlet unit for iPXE boot server
# Place in: ~/.config/containers/systemd/ (rootless) or /etc/containers/systemd/ (root)
[Unit]
Description=iPXE Boot Server
After=network-online.target
Wants=network-online.target
Requires=caddy.service
After=caddy.service
[Container]
Image=localhost/ipxe-server:latest
ContainerName=ipxe-server
# Join caddy network for reverse proxy
Network=internal_caddy
# Mount points for boot assets and configuration
Volume=%h/ipxe/boot:/srv/boot:ro,Z
Volume=%h/ipxe/menus:/srv/menus:ro,Z
Volume=%h/ipxe/config:/etc/ipxe:ro,Z
# Optional: mount ISO storage for serving live images
Volume=%h/ipxe/images:/srv/images:ro,Z
# Environment
Environment=IPXE_LOG_LEVEL=info
Environment=TZ=Europe/Oslo
# Resource limits
PodmanArgs=--memory=256m --cpus=0.5
# Labels for Caddy/Traefik discovery (optional)
Label=ipxe.server=true
# Health check
HealthCmd=/usr/local/bin/healthcheck.sh
HealthInterval=30s
HealthTimeout=5s
HealthRetries=3
[Service]
Restart=on-failure
RestartSec=10
TimeoutStartSec=90
[Install]
WantedBy=default.target