Ein Binary
Go-Binary mit eingebettetem iPXE, Web-UI, SQLite und allen Assets. Keine Laufzeit-Abhängigkeiten. scp und los.
Eigenständiger PXE- und HTTP-Boot-Server. Ein Binary. Keine Konfiguration. Eingebautes proxyDHCP — du fasst deinen Router nie wieder an. 50+ Distros werden automatisch erkannt.
# 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
Kein Fork von 15 Jahre alten Perl-Skripten. Kein Wrapper um dnsmasq. Ein richtiger Server — in Go geschrieben, alles inklusive.
Go-Binary mit eingebettetem iPXE, Web-UI, SQLite und allen Assets. Keine Laufzeit-Abhängigkeiten. scp und los.
Antwortet auf PXE über UDP/67, ohne dein bestehendes DHCP anzufassen. Null Router-Umbau. In jedes LAN einklinken.
Automatische Kernel/initrd-Extraktion für Ubuntu, Debian, Arch, Fedora, NixOS, Alpine, FreeBSD, Windows (wimboot) und mehr.
Ordne spezifische Images pro MAC zu. Neue Clients werden beim ersten PXE-Request automatisch erkannt. Leases zu statischen Einträgen hochstufen, wenn du bereit bist.
GParted, Clonezilla, Memtest86+, SystemRescue, ShredOS, netboot.xyz. Im UI aktivieren — und sie erscheinen im Menü.
Token-Auth mit bcrypt. Optionales LDAP/AD-Backend mit gruppenbasierter Admin-Vergabe. Lokale Accounts bleiben als Fallback.
Alles, was das UI kann, ist auch ein API-Call. Boot-Zuweisungen, Scans, WoL-Trigger scriptbar. Live-Log-Stream per SSE.
Multi-Arch-Docker (amd64/arm64), statisches Binary oder ein 2-GB-Appliance-Image auf Alpine-Basis, das du per USB flashen kannst.
autounattend.xml, Kickstart, Preseed oder cloud-init reinwerfen. Pro Image als Standard hinterlegen, pro Client überschreiben. Bootimus reicht es beim Boot durch — kein Klick, kein Setup-Wizard.
Client schickt DHCPDISCOVER. Bootimus beantwortet die PXE-Details per proxyDHCP, während dein normales DHCP weiter die IPs verteilt. iPXE lädt über TFTP, chained zu HTTP, holt das Menü. Nutzer wählt ein Image. Kernel und initrd streamen vom Server. Fertig.
# 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
Keine proprietären Blobs. Keine Telemetrie. Keine klammheimlich eingebundene Binary-Firmware. Der gesamte Stack liegt unter Apache 2.0 auf GitHub — klonen, prüfen, forken, selbst betreiben.
$ 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 bringt eingebettetes iPXE für jede gängige Architektur mit. Brauchst du Microsoft-signierte Binaries für Secure Boot, ein custom-gebrandetes iPXE, GRUB, syslinux oder deinen eigenen von der Internal-CA signierten Loader? Ordner in data/bootloaders/ ablegen, im UI wählen, fertig. Fehlende Dateien fallen transparent auf das eingebettete Set zurück — nie ein kaputter Boot.
ipxe.efi · der Default. Aus Upstream-Master gebaut, im Binary eingebettet.
eingebettet · fallbackipxe-arm64.efi · für Raspberry Pi 4/5, Apple-Silicon-Hosts, ARM-Server.
eingebettet · fallbackundionly.kpxe · für alte Hardware ohne UEFI. Auch 2026 noch relevant.
eingebettet · fallbackSignierte shimx64.efi + grubx64.efi reinwerfen — für Flotten mit erzwungenem Secure Boot. Kein Firmware-MOK-Enrolment nötig.
custom · BYOBau dein eigenes iPXE mit Branding, individuellen Menüfarben, eingebetteten Skripten. Die .efi reinlegen.
custom · BYONicht iPXE? Kein Problem. Alles, was TFTP und HTTP spricht, funktioniert. Bootimus liefert einfach Bytes aus.
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 oder flashbarer USB-Stick. Such dir aus, was dir taugt.