51 lines
1.1 KiB
Plaintext
51 lines
1.1 KiB
Plaintext
# 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
|
|
|