Setting Up Remote Boot (PXE) at Home with iVentoy

If you are familiar with Ventoy, you know it’s a game-changer for creating multiboot USB drives. You simply copy ISO files onto a flash drive, and the tool handles the rest.
iVentoy takes this concept to the next level: it allows you to boot and install operating systems on multiple machines over the network with virtually zero configuration. The workflow is just as simple—drop your ISO files into a folder and select PXE boot on the client machine.

Here is how I deployed iVentoy using Docker to streamline my home lab.
1. Router Configuration (OpenWrt)
To make PXE work, your network needs to know where the boot server is. I configured the dnsmasq DHCP server on my OpenWrt router to provide the necessary PXE parameters to all devices.
Add the following to your /etc/config/dhcp (or via LuCI):
config boot
option servername 'server'
option serveraddress '192.168.1.20' # IP of your iVentoy host
option filename 'iventoy_loader_16000'
2. Crafting the Docker Image
I created a lightweight Docker image based on Debian to host the iVentoy binaries.
Dockerfile:
FROM debian:bookworm-slim
ARG IVENTOY_VER=1.0.19
# Download and extract iVentoy
ADD https://github.com/ventoy/PXE/releases/download/v$IVENTOY_VER/iventoy-$IVENTOY_VER-linux-free.tar.gz /tmp/iventoy.tar.gz
RUN tar -xf /tmp/iventoy.tar.gz -C /opt && \
mv /opt/iventoy-$IVENTOY_VER /opt/iventoy
VOLUME /opt/iventoy/iso
# Ports for DHCP, TFTP, NBD, and Web UI
EXPOSE 68/udp 69/udp 10809/tcp 16000/tcp 26000/tcp
ENTRYPOINT ["bash", "-c", "cd /opt/iventoy && ./iventoy.sh -R start && sleep 5 && tail -f log/log.txt"]
3. Deployment with Docker Compose
Using docker-compose makes managing the volumes and network modes much easier. Note that network_mode: host is critical for PXE to intercept DHCP requests correctly.
docker-compose.yml:
version: "3.7"
services:
iventoy:
image: iventoy
build: . # Path to the Dockerfile
container_name: iventoy
restart: unless-stopped
privileged: true
cap_add:
- NET_ADMIN
hostname: iventoy
network_mode: host
volumes:
- /share/Boot-Images:/opt/iventoy/iso:ro
- /share/container-data/iventoy/config.dat:/opt/iventoy/data/config.dat
4. Management and Testing
Once the container is running, the web interface is accessible at http://<your_ip>:26000. From there, you can customize the boot screen, manage ISOs, and adjust deployment settings.
I tested this setup by booting an openSUSE installation ISO on a Proxmox VM. The client picked up the IP, loaded the iVentoy menu, and started the installation flawlessly!
Conclusion
If you frequently reinstall operating systems or manage a home lab, iVentoy is a must-have. It eliminates the need for physical USB sticks and makes OS deployment as simple as copying a file.




