# 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