Un solo binario
Binario Go con iPXE embebido, UI web, SQLite y todos los assets. Sin dependencias en runtime. scp y listo.
Servidor de arranque PXE y HTTP autocontenido. Un solo binario. Cero configuración. proxyDHCP integrado: no vuelves a tocar tu router. 50+ distros detectadas automáticamente.
# 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
No es un fork de scripts Perl de hace 15 años. No es un wrapper sobre dnsmasq. Un servidor de verdad, escrito en Go, con todo incluido.
Binario Go con iPXE embebido, UI web, SQLite y todos los assets. Sin dependencias en runtime. scp y listo.
Responde PXE en UDP/67 sin tocar tu DHCP actual. Cero reconfiguración del router. Enchufa y va en cualquier LAN.
Extracción automática de kernel/initrd para Ubuntu, Debian, Arch, Fedora, NixOS, Alpine, FreeBSD, Windows (wimboot) y más.
Asigna imágenes específicas por MAC. Los clientes nuevos se detectan solos en el primer PXE. Asciende leases a estáticos cuando quieras.
GParted, Clonezilla, Memtest86+, SystemRescue, ShredOS, netboot.xyz. Actívalos desde la UI y aparecen en el menú.
Auth por token con bcrypt. Backend LDAP/AD opcional con admin basado en grupos. Las cuentas locales siguen como fallback.
Todo lo que hace la UI es una llamada a la API. Asignaciones de arranque scripteables, scans, triggers WoL. Stream de logs en vivo por SSE.
Docker multi-arch (amd64/arm64), binario estático, o una imagen appliance basada en Alpine de 2 GB para flashear a USB.
Suelta autounattend.xml, kickstart, preseed o cloud-init. Adjúntalo a una imagen por defecto, sobreescríbelo por cliente. Bootimus lo inyecta al arrancar — sin clics, sin asistente.
El cliente manda un DHCPDISCOVER. Bootimus responde los detalles PXE vía proxyDHCP mientras tu DHCP normal sigue repartiendo IPs. iPXE carga por TFTP, encadena a HTTP, trae el menú. El usuario elige una imagen. Kernel e initrd stream desde el servidor. Listo.
# 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
Cero blobs propietarios. Cero telemetría. Cero firmware binario escondido en un vendor. El stack entero está en GitHub bajo Apache 2.0 — clona, audita, forkea, monta el tuyo.
$ 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 trae iPXE embebido para cada arquitectura común. ¿Necesitas binarios firmados por Microsoft para Secure Boot, un iPXE con branding propio, GRUB, syslinux, o tu loader firmado por tu CA interna? Mete una carpeta en data/bootloaders/, selecciónala en la UI, listo. Los archivos que falten vuelven transparente al set embebido — nunca un arranque roto.
ipxe.efi · el default. Compilado desde upstream master, embebido en el binario.
embebido · fallbackipxe-arm64.efi · para Raspberry Pi 4/5, hosts Apple Silicon, servidores ARM.
embebido · fallbackundionly.kpxe · para cacharros viejos que no quieren saber nada de UEFI. En 2026 todavía relevante.
embebido · fallbackMete un shimx64.efi + grubx64.efi firmados para flotas con Secure Boot obligatorio. No hace falta enrolar MOK en el firmware.
custom · BYOCompila tu propio iPXE con branding, colores de menú a medida, scripts embebidos. Suelta el .efi y ya.
custom · BYO¿No quieres iPXE? No problem. Cualquier cosa que hable TFTP y HTTP funciona. Bootimus solo sirve bytes.
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 o USB flasheable. Elige tu veneno.