Un seul binaire
Binaire Go avec iPXE embarqué, UI web, SQLite et tous les assets. Aucune dépendance à l'exécution. scp et go.
Serveur de boot PXE et HTTP autonome. Un seul binaire. Zéro config. proxyDHCP intégré, tu ne touches jamais à ton routeur. 50+ distros détectées automatiquement.
# Pull, run, PXE boots. Thirty seconds. $ docker run -d --name bootimus \ --cap-add NET_BIND_SERVICE \ -p 67:67/udp -p 69:69/udp \ -p 8080:8080/tcp -p 8081:8081/tcp \ -v $(pwd)/data:/data \ garybowers/bootimus:latest $ docker logs bootimus | grep Password admin: Password: 7f3a-plum-swift-echo $ open http://localhost:8081
Pas un fork de scripts Perl vieux de 15 ans. Pas un wrapper autour de dnsmasq. Un vrai serveur, écrit en Go, batteries incluses.
Binaire Go avec iPXE embarqué, UI web, SQLite et tous les assets. Aucune dépendance à l'exécution. scp et go.
Répond au PXE sur UDP/67 sans toucher à ton DHCP existant. Zéro reconfiguration du routeur. Plug & play sur n'importe quel LAN.
Extraction automatique du kernel/initrd pour Ubuntu, Debian, Arch, Fedora, NixOS, Alpine, FreeBSD, Windows (wimboot) et plus.
Assigne des images spécifiques par MAC. Les nouveaux clients sont auto-détectés au premier PXE. Passe les leases en statique quand c'est prêt.
GParted, Clonezilla, Memtest86+, SystemRescue, ShredOS, netboot.xyz. Active-les depuis l'UI, ils apparaissent dans le menu.
Auth par token avec bcrypt. Backend LDAP/AD optionnel avec admin par groupes. Les comptes locaux restent en fallback.
Tout ce que fait l'UI passe par un appel API. Assignations de boot scriptables, scans, WoL. Flux de logs live en SSE.
Docker multi-arch (amd64/arm64), binaire statique, ou une image appliance Alpine de 2 Go à flasher sur USB.
Déposez autounattend.xml, kickstart, preseed ou cloud-init. Attachez à une image par défaut, surchargez par client. Bootimus l'injecte au boot — zéro clic, zéro assistant.
Le client envoie un DHCPDISCOVER. Bootimus répond avec les détails PXE via proxyDHCP pendant que ton DHCP habituel distribue toujours l'IP. iPXE charge via TFTP, chain vers HTTP, récupère le menu. L'utilisateur choisit une image. Kernel et initrd streament depuis le serveur. Fin.
# Client boots, sends DHCPDISCOVER broadcast [dhcp] → DHCPDISCOVER from b4:2e:99:01:5f:a3 (no PXE options from primary DHCP) [proxy] ← DHCPOFFER-PXE: next-server=bootimus, filename=ipxe.efi [tftp] → RRQ ipxe.efi (198 KiB, 14 ms) # iPXE loads, chains to HTTP menu [http] → GET /menu.ipxe 200 2.1 KiB [menu] ↳ 17 images · 3 groups · 6 tools [menu] ↳ user selected: ubuntu-24.04-live-server # Kernel + initrd stream over HTTP [http] → GET /iso/ubuntu-24.04/vmlinuz 200 14 MiB · 612 MB/s [http] → GET /iso/ubuntu-24.04/initrd 200 76 MiB · 598 MB/s [boot] handoff ok · client booting
Pas de blobs propriétaires. Pas de télémétrie. Pas de firmware binaire planqué dans un vendor/. Tout le stack est sur GitHub sous Apache 2.0 — clone, audite, fork, auto-héberge.
$ bootimus version --verbose bootimus 1.0.0 commit 8e87824 (clean) go 1.23.4 linux/amd64 build static · reproducible licence Apache-2.0 embedded ipxe 1.21.1+upstream GPL-2.0 proprietary 0 blobs telemetry disabled (compile-time) $ ldd ./bootimus not a dynamic executable $ sha256sum ./bootimus 7f3a9b0c… bootimus
Bootimus embarque iPXE pour chaque architecture courante. Besoin de binaires signés Microsoft pour Secure Boot, d'un iPXE customisé, de GRUB, syslinux, ou de ton loader signé par ta CA interne ? Dépose un dossier dans data/bootloaders/, sélectionne-le dans l'UI, c'est fait. Les fichiers manquants basculent transparent sur le set embarqué — jamais un boot cassé.
ipxe.efi · la valeur par défaut. Buildé depuis upstream master, embarqué dans le binaire.
embarqué · fallbackipxe-arm64.efi · pour les Raspberry Pi 4/5, les hôtes Apple Silicon, les serveurs ARM.
embarqué · fallbackundionly.kpxe · pour le vieux matos qui ne veut rien savoir de l'UEFI. Toujours d'actualité en 2026.
embarqué · fallbackDépose un shimx64.efi + grubx64.efi signés pour les flottes en Secure Boot obligatoire. Pas besoin d'enrôlement MOK dans le firmware.
custom · BYOCompile ton propre iPXE avec branding, couleurs de menu perso, scripts embarqués. Dépose le .efi.
custom · BYOPas d'iPXE ? Pas de souci. Tout ce qui parle TFTP et HTTP fonctionne. Bootimus sert juste des octets.
custom · BYO$ tree /var/lib/bootimus/bootloaders data/bootloaders ├── ipxe-builtin/ # embedded — always available │ ├── ipxe.efi │ ├── ipxe-arm64.efi │ └── undionly.kpxe ├── ipxe-secureboot/ # your custom set │ ├── shimx64.efi (signed by Microsoft) │ ├── grubx64.efi (signed by Microsoft) │ └── ipxe.efi (signed by your CA) └── ipxe-themed/ └── ipxe.efi (custom branding) $ bootimus bootloaders use ipxe-secureboot ✓ active set: ipxe-secureboot ✓ falls back to ipxe-builtin for: ipxe-arm64.efi, undionly.kpxe # PXE boot trace, Secure Boot client [tftp] RRQ shimx64.efi → ipxe-secureboot/shimx64.efi [tftp] RRQ ipxe-arm64.efi → ipxe-builtin/ipxe-arm64.efi (fallback)
Docker, bare metal, ou USB flashable. Choisis ton poison.