v0.1.27
Distro Profiles
- Data-driven distro detection — Distro support is now defined by profiles stored in the database instead of hardcoded logic. 25 built-in profiles ship with the binary.
- Custom profiles — Add support for new distributions from the admin UI without a code change. Custom profiles take priority over built-in ones.
- Remote profile updates — "Check for Updates" fetches the latest profiles from the central GitHub repository. No rebuild needed to support new distros.
- New admin tab — Boot > Distro Profiles shows all profiles with filename patterns, boot params, type, and version.
- Disable remote checks —
--disable-remote-profiles flag / BOOTIMUS_DISABLE_REMOTE_PROFILES=true for air-gapped environments.
- SystemRescue support — Added dedicated distro profile and extraction support.
Boot Parameters
- Fully user-editable — Boot parameters are completely editable per image from the Properties panel.
- Placeholder support —
{{BASE_URL}}, {{CACHE_DIR}}, {{FILENAME}}, {{SQUASHFS}} resolved at boot time.
- Profile-driven defaults — Empty boot params fall back to the matching distro profile.
- Re-detect button — Re-scan distro, squashfs, and boot params from the Properties modal using profiles. No re-extraction needed.
- Re-extract support — Already-extracted images now show a "Re-Extract" button.
- Distro selector — Manually set the distro profile on any image from the Properties modal.
- Removed hardcoded boot params — All distro-specific boot params removed from the extractor. Profiles are the single source of truth.
Extraction Fixes
- bsdtar fallback — When the Go ISO9660 library can't read an ISO (e.g. Ubuntu Server 24.04.3), extraction falls back to
bsdtar if available.
- Improved ISO9660 path matching — Handles version suffixes (
;1), truncated 8.3 names, and case mismatches.
- Fixed squashfs detection — Directory scan now completes before returning, so squashfs files are always found.
- Reduced extraction log noise — Removed per-file directory traversal logging that spammed thousands of lines.
Arch Linux Boot Fix
- Fixed
SIOCGIFFLAGS: No such device — Changed Arch profile to use ip=:::::eth0:dhcp per Arch Wiki recommendation for USB NICs and slow link negotiation. (Arch Wiki reference)
TFTP Autoexec Fix
- Fixed BIOS PXE boot with custom ports — TFTP autoexec script now respects
BOOTIMUS_SERVER_ADDR and BOOTIMUS_HTTP_PORT. Previously it was hardcoded to use iPXE's ${next-server} variable and port 8080, breaking proxy DHCP setups and non-default ports. (#48)
- Fixed HTTP autoexec — Replaced unsupported
params/param iPXE commands with query string parameters.
Active Sessions
- Stale session cleanup — Sessions older than 30 minutes are automatically cleaned up. Previously, disconnected clients left permanent ghost sessions.
- Session cleanup on handler exit — Sessions are now removed when the HTTP handler returns, not just when all bytes are transferred.
Other Fixes
- Fixed image deletion foreign key error —
client_images join table cleaned up before deletion.
- Fixed ISO upload 401 — XHR upload now includes JWT Bearer token.
- Fixed trailing space in boot params — Extraction now trims whitespace.
- Alphabetical boot menu — Images sorted alphabetically (case-insensitive) in the PXE boot menu.
Documentation
Docker
docker pull garybowers/bootimus:0.1.27