Один бинарник
Go-бинарник с встроенным iPXE, веб-интерфейсом, SQLite и всеми ассетами. Никаких рантайм-зависимостей. scp и запускай.
Автономный PXE- и HTTP-сервер загрузки. Один бинарник. Ноль настроек. Встроенный proxyDHCP — роутер трогать не придётся. 50+ дистрибутивов распознаются автоматически.
# 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
Не форк Perl-скриптов пятнадцатилетней давности. Не обёртка вокруг dnsmasq. Полноценный сервер на Go, со всем нужным внутри.
Go-бинарник с встроенным iPXE, веб-интерфейсом, SQLite и всеми ассетами. Никаких рантайм-зависимостей. scp и запускай.
Отвечает на PXE через UDP/67, не задевая ваш существующий DHCP. Ноль изменений в роутере. Подключается к любой LAN.
Автоматическое извлечение kernel/initrd для Ubuntu, Debian, Arch, Fedora, NixOS, Alpine, FreeBSD, Windows (wimboot) и других.
Назначайте конкретный образ на конкретный MAC. Новые клиенты автоматически обнаруживаются при первом PXE. Лизы повышаются до статических по готовности.
GParted, Clonezilla, Memtest86+, SystemRescue, ShredOS, netboot.xyz. Включаете в UI — они появляются в меню.
Токен-аутентификация с bcrypt. Опциональный бэкенд LDAP/AD с админ-доступом по группам. Локальные учётки остаются как резерв.
Всё, что делает UI, — это вызовы API. Скриптуйте назначения загрузки, сканирования, WoL. Поток логов в реальном времени через SSE.
Multi-arch Docker (amd64/arm64), статический бинарник или 2-ГБ Alpine-образ, который можно прошить на USB.
Бросьте сюда autounattend.xml, kickstart, preseed или cloud-init. Привязывайте к образу как дефолт, переопределяйте на уровне клиента. Bootimus подсунет файл при загрузке — никаких кликов, никаких мастеров.
Клиент шлёт DHCPDISCOVER. Bootimus отвечает PXE-параметрами через proxyDHCP, пока ваш обычный DHCP продолжает раздавать IP. iPXE грузится по TFTP, переходит на HTTP, тянет меню. Пользователь выбирает образ. Kernel и initrd стримятся с сервера. Готово.
# 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
Никаких проприетарных блобов. Никакой телеметрии. Никакой втихую вшитой бинарной прошивки. Весь стек лежит на GitHub под Apache 2.0 — клонируйте, проверяйте, форкайте, поднимайте у себя.
$ 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 поставляется со встроенным iPXE под все распространённые архитектуры. Нужны Microsoft-подписанные бинарники для Secure Boot, кастомно оформленный iPXE, GRUB, syslinux или собственный загрузчик, подписанный внутренним CA? Положите папку в data/bootloaders/, выберите в UI — и готово. Отсутствующие файлы прозрачно откатываются на встроенный набор — загрузка не сломается никогда.
ipxe.efi · по умолчанию. Собран из upstream master, встроен в бинарник.
встроено · резервipxe-arm64.efi · для Raspberry Pi 4/5, машин на Apple Silicon, ARM-серверов.
встроено · резервundionly.kpxe · для старого железа без UEFI. В 2026-м всё ещё актуально.
встроено · резервПоложите подписанные shimx64.efi + grubx64.efi — для парка с принудительным Secure Boot. Регистрация MOK в прошивке не нужна.
свой · BYOСоберите свой iPXE с брендингом, цветами меню, встроенными скриптами. Положите .efi — и всё.
свой · BYOНе iPXE? Не проблема. Всё, что говорит по TFTP и HTTP, работает. Bootimus просто отдаёт байты.
свой · 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, голое железо или прошиваемая флешка. Выбирайте по вкусу.