Releases: garybowers/bootimus
Releases · garybowers/bootimus
v0.1.70
v0.1.70
Added
- Windows binaries:
bootimus-windows-amd64.exeandbootimus-windows-arm64.exepublished alongside the Linux builds. - Simplified Chinese (zh-CN) localisation: Full translation across the admin UI, marketing site, and documentation. The language picker auto-selects zh-CN for Chinese browsers.
- Documentation translations: Complete docs (
admin,appliance,authentication,auto-install,clients,deployment,dhcp,distro-profiles,images) now in German, Spanish, French, Russian, and Simplified Chinese. - CLI
bootimus bootloaders:list,use <set>, andactivesubcommands for managing iPXE bootloader sets from the shell. - CLI
bootimus version: Prints the version;--verboseadds commit, build state, build tags, Go version, and iPXE version. - New distro profiles: AlmaLinux, Rocky Linux, and Raspberry Pi OS.
- New distro logos: AlmaLinux, Rocky Linux, Raspberry Pi OS, DragonFlyBSD, NetBSD, OpenBSD, and Slackware.
Fixed
- Docker ISO extraction: Replaced the no-op
bsdtarpackage withlibarchive-tools, restoring extraction on the official image. Thanks to @JakeStanger for the patch. - Linux Mint profile: Refreshed to 22.3 (Cinnamon / MATE / XFCE) and switched to the University of Kent mirror.
Changed
- Static builds: Server now ships as a fully static binary, enabling clean Windows cross-compilation and removing the glibc dependency.
Upgrade notes
- Windows users: grab
bootimus-windows-amd64.exefrom the release page. Proxy DHCP, TFTP, and HTTP boot work on Windows; admin UI is unchanged. - No DB migration required.
Docker
docker pull garybowers/bootimus:0.1.70
v0.1.67
v0.1.67
Added
- Experimental Secure Boot: Support for Secure Boot via a signed shim that chainloads iPXE, allowing PXE booting on restricted hardware.
- Windows SMB Re-patching: The UI now detects outdated SMB patches via fingerprinting. Added a Save & Re-patch shortcut in Image Properties.
- Streaming ISO Uploads: Implemented streaming uploads to fix 502 errors on large ISO files.
- netboot.xyz BIOS/UEFI Support: Automatically serves the BIOS variant (
.kpxe) or UEFI variant (.efi) based on the client architecture. - Amber Row Tinting: Visual indicators and reason text in the image list for images that won't boot with current settings.
- CLI User Management: New
bootimus-userutility forlist,enable,disable, and admin status toggling. - Localisation: Added German, French, and Russian support with a language picker on the login screen and header.
- Files Tab Refresh: Added a refresh button to Image Properties → Files to update the file list manually.
- **Experimental support to 'get images' directly from the source - similar to netboot.xyz but you don't need to download and reupload to bootimus.
Fixed
- Ubuntu "Triple Download": Fixed a bug where
live-server(subiquity/cloud-init) would fetch the ISO three times during boot. - VMware UEFI Boot: Fixed Casper-family ISOs (Ubuntu, Pop!_OS, Mint, etc.) failing to boot via PXE in VMware UEFI environments.
- Modal Persistence: Image Properties modal now stays open after actions like "Re-Extract" or "Patch SMB".
- User Management 400: Fixed "Username required" error; frontend now correctly passes the username via query string.
- USB Image Downloads: Fixed 401 unauthorised errors by switching to authenticated fetch and blob downloading.
- UI Interaction: Backdrop clicks now correctly close any active modal.
Changed
- Theming Foundation: Extracted CSS from
index.htmltoweb/static/styles.cssfor better customisation. Changed logos and favicon. - Active-Admin Lock-out Guard: API and CLI now prevent the last active administrator from being demoted or disabled.
- Distro Manifests: Updated to 0.1.61; Linux profiles now explicitly declare
boot_method: "kernel".
Upgrade notes
- Secure Boot: To test experimental support, ensure your DHCP/TFTP configuration points to the new signed shim binary.
- Existing Images: Existing extracted images keep saved
BootParams. Click Re-detect or re-extract to pick up new boot parameters. - netboot.xyz: Requires re-downloading to pull the new BIOS/UEFI switching variants.
- No DB migration required.
Docker
docker pull garybowers/bootimus:0.1.67v0.1.62
Added
Start of multiple languages support for the admin ui - llm generated translations for German, French and Russian.
- Streaming ISO uploads — fixes 502s on large uploads
- Inline guidance warnings on the Image Properties modal (extract / netboot / SMB / wimlib / re-patch) with the action button next to each.
- Amber row tint + reason text on images that won't boot with current settings.
- SMB re-patch detection (fingerprint of patched inputs) with a Save & Re-patch shortcut.
- netboot.xyz BIOS variant — legacy clients now boot the
.kpxe, UEFI clients boot the.efi. bootimus userCLI:list / enable / disable / set-admin / unset-admin.- Admin UI translations: English (UK), Deutsch, Français, Русский. Picker on login + header.
- Refresh button on the Image Properties → Files tab.
Fixed
- Triple ISO download on Ubuntu live-server netboot (cloud-init / subiquity also fetching).
- Casper-family ISOs (Ubuntu / Pop!_OS / Mint / Elementary / Zorin) failing to boot via PXE in VMware UEFI.
- Image Properties modal closing on every action — now stays open on Re-Extract / Patch SMB / Save.
- Edit User returned
400 Username required— frontend now sends username via query string. - USB image download 401 — switched to authenticated fetch + blob download.
- Backdrop click now closes any modal.
Changed
- CSS extracted from
index.htmltoweb/static/styles.css(theming foundation). - Distro profile manifest 0.1.61 — Linux profiles declare
boot_method: "kernel". - Active-admin lock-out guard on API and CLI — can't demote/disable the only active admin.
Upgrade notes
- Existing extracted images keep their saved
BootParamsfrom the old profile — click Re-detect or re-extract to pick up the new boot params. - netboot.xyz needs re-downloading to pull the BIOS variant.
- No DB migration required.
Docker
docker pull garybowers/bootimus:0.1.62v0.1.58
Added
- Windows unattended installs. New
Auto-Installtab manages a file library underdata/autoinstall/<distro>/for autounattend.xml, kickstart, preseed, and cloud-init configs. Attach a file to an image as the default, or override per client (or per client group) for machine-specific setups. Placeholders like{{MAC}},{{HOSTNAME}},{{IP}},{{SERVER_ADDR}}, and{{IMAGE_FILENAME}}are substituted at serve time. - Windows boot integration. WinPE's patched
startnet.cmdnow copiesAutoUnattend.xmlfrom the SMB share toX:\and launchessetup.exe /unattend:X:\AutoUnattend.xmlautomatically when an autounattend file is configured for the image. - Per-client / per-group autoinstall override.
ClientandClientGroupgained anauto_install_filefield — leave blank to inherit from the group, then from the booted image's default. - REST endpoints under
/api/autoinstall-filesfor list / get / save / upload / download / delete. - Bootimus logo added to the README, courtesy of @popy2k14 (#54).
Fixed
- Windows SMB "net use fails after VM reboot." The Samba config now sets
reset on zero vc = yesplusoplocks = no,kernel oplocks = no,level2 oplocks = no,strict locking = no, anddeadtime = 1. WinPE reboots mid-install and reconnects from the same IP; without these,smbdheld the prior session/oplocks and the secondnet usewas rejected. - WinPE startup race.
startnet.cmdnow explicitly runsnet start Workstationbefore mapping the share —net usewas otherwise triggering lazy SMB-client init and racingwpeinit.
Changed
- Distro profile updates.
startnet.cmdno longer swallowsnet useerrors, so failures surface in the WinPE console instead of dropping you into a blind retry loop.
Upgrade notes
- The
data/autoinstall/directory is created automatically on first start of v0.1.58. Existing inline autoinstall scripts on images continue to work; the file-library entry takes precedence when both are set. - No DB migration required — the new
auto_install_filecolumns onclients,client_groups, andimagesare added by GORM auto-migrate on first start. - If you previously worked around the Windows SMB reconnect bug with a custom
smb.confor by restarting Bootimus between PXE attempts, you can drop those workarounds.
Docker
docker pull garybowers/bootimus:0.1.58
v0.1.55
Fixed
- ISO extraction for subfolders under
data/isos/. Placing an ISO in a subfolder (e.g.data/isos/debian/debian-13.4.0-amd64-DVD-1.iso) now extracts kernel, initrd, and full ISO contents to the correct matching directory. Two bugs were contributing:- The bsdtar fallback prepended an extra
isos/segment, producingdata/isos/isos/<subfolder>/<name>/. - The ISO9660/UDF path stripped the subfolder entirely, writing to
data/isos/<name>/whileSaveMetadatalooked fordata/isos/<subfolder>/<name>/metadata.txt, causing a "no such file or directory" error and stale paths in the image record.
- The bsdtar fallback prepended an extra
Added
- Tools manifest (
tools-profiles.json) at the repo root, mirroringdistro-profiles.json. Built-in tool definitions (download URLs, versions, kernel paths, boot params) are now data, not code. - Check for Updates button on the Tools tab. Fetches the latest manifest from
mainand refreshes built-in tool records in the database. Custom tools, per-toolEnabledstate, and download state are preserved. make releasenow invokessync-profilesbefore building, guaranteeing that release binaries embed manifests matching the root files.
Changed
- Distro profile updates.
Upgrade notes
- Re-extract any ISOs that were placed in subfolders under
data/isos/before upgrading — prior extractions wrote kernel/initrd to the wrong location and the paths in the database point there. Stray directories from the broken runs (e.g.data/isos/isos/,data/isos/<name-without-subfolder>/) can be safely removed. - Built-in boot tool records (URL, version, boot params, etc.) are refreshed from the manifest on startup. If you previously overrode a tool's download URL via the UI, you'll need to re-apply it after this update.
Docker
docker pull garybowers/bootimus:0.1.55
v0.1.53
Bootimus v0.1.53
Highlights
- Windows 7 added to distro profiles
- Tools submenu moved to the top of the PXE boot menu
- Issue #32 (extraction) fixed
- Distro profile catalogue refreshed
Changes
PXE boot
- Windows 7 profile added - bootable via the existing wimboot path
- Tools menu now appears at the top of the main boot menu instead of the bottom
Distro profiles
- Catalogue bumped to latest
- Windows 7 profile added
Bug fixes
- Issue #32 - extraction fix in
internal/extractor/extractor.go
Repo / build
README.mdupdated (logo, links, polish)- New repo-level
.dockerignorekeepsnode_modules,dist,data/, and build artefacts out of image builds
v0.1.51
v0.1.51
New Features
- Windows unattended PXE install (opt-in via
--windows-smb) — zero-touch PXE boot to a running Windows 10/11 install. Isolatedsmbdexposes each extracted Windows ISO as an SMB share;boot.wimis patched so WinPE auto-mounts it and launchessetup.exe. Docker image now ships with samba. - Database snapshot/backup — new
Snapshotterinterface with SQLite (VACUUM INTO) and PostgreSQL (pg_dump) implementations, so backups are portable and restore-ready. - Extraction progress reporting — admin UI surfaces live stage + percent for ISO extractions.
- Bootimus website under
website/— landing page, downloads, localised docs scaffolding (en/de/es/fr/ru), Astro-based. - Bootimus logo — thanks @popy2k14 (#52).
UI
- New SMB chip on patched Windows images and Patch SMB / Re-patch SMB button on the image properties panel.
- Settings tab now surfaces Windows SMB status:
Enabled (N shares, port 445),Disabled, orRequested but unavailable. - Extraction progress bars show live stage + percent.
- Boot Parameters field greyed out for Windows images (ignored by wimboot).
Bug Fixes
- Windows installations — boot.wim patching, SMB share registration, DHCP network-readiness race.
Requirements (only if enabling --windows-smb)
smbdin PATH (bundled in Docker image;apt install samba/pacman -S sambafor standalone).- Port 445 reachable from clients.
setcapusers also need:sudo setcap 'cap_net_bind_service=+eip' /usr/sbin/smbd.
Upgrade Notes
- No-op unless you enable
--windows-smb. - If enabling: click Patch SMB on existing Windows ISOs (or re-extract).
Full Changelog: popy2k14/bootimus@v0.1.38...v0.1.51
Docker
docker pull garybowers/bootimus:0.1.51
v0.1.38
v0.1.38
Bug Fixes
- proxyDHCP on Supermicro boards — resolved conflicting DHCP options that broke PXE on some Supermicro BMC/onboard NICs. iPXE bootloaders rebuilt with updated embedded script.
- Settings tab — fixed a UI regression on the settings page.
Full Changelog: popy2k14/bootimus@v0.1.36...v0.1.38
Docker
v0.1.36
What's Changed
Bug Fixes
- Extraction now preserves group subdirectories — extracting an ISO stored under a group folder (e.g.
isos/Backup/clonezilla.iso) now writes boot files alongside the ISO instead of the root of the data dir, so the iPXE menu loader can find them. Fixes #32. - SystemRescue 13.0 network boot — switched to
ip=dhcpand corrected the initrd path. Thanks to @popy2k14 (#49). - Supermicro boot compatibility — addressed boot failures reported on Supermicro hardware.
New Features
- Client groups — clients can now be organised into groups with shared settings (allowed images, bootloader set, credentials).
- Scheduled tasks — cron-driven actions (e.g. WOL a client group on a schedule).
- Webhooks — outbound notifications for boot events.
- Redfish / IPMI BMC integration — power control and status via standard BMC interfaces.
- Prometheus metrics endpoint — observability for boot activity and server state.
- proxyDHCP mode — run alongside an existing DHCP server without replacing it.
Improvements
- Significant admin UI rework and polish across client, image, and group management.
- Appliance build refinements (Samba config, network defaults, build script).
- Bootloader binaries rebuilt against current iPXE.
- Expanded documentation (
docs/appliance.md,docs/dhcp.md).
Upgrade Notes
- If you previously extracted ISOs that live inside group subdirectories, re-run Extract on those images after upgrading so the boot files land in the correct location.
Full changelog: v0.1.34...v0.1.36
Docker
docker pull garybowers/bootimus:0.1.34
v0.1.34
v0.1.34
Standalone Mode (proxyDHCP)
- Built-in proxyDHCP responder — Bootimus now includes an RFC 4578 proxyDHCP server. Your existing DHCP server keeps handing out IPs as normal; Bootimus answers only the PXE-specific bits on the same broadcast domain. Zero PXE configuration needed on your router, Pi-hole, MikroTik, or Windows DHCP.
- Off by default — Existing installs running dnsmasq or ISC-DHCP are unaffected. Enable with
--proxy-dhcpflag orBOOTIMUS_PROXY_DHCP_ENABLED=true. - Architecture-aware — Serves
undionly.kpxeto BIOS (arch 0),bootimus.efito UEFI x64 (arch 7/9),bootimus-arm64.efito UEFI ARM64 (arch 11). Filenames configurable via--proxy-dhcp-bootfile-{bios,uefi,arm64}. - Never offers an IP —
yiaddralways0.0.0.0, so it coexists safely with any existing DHCP server. Two proxyDHCP servers on the same network is legal but not recommended. - Binds UDP/67 — Requires
CAP_NET_BIND_SERVICEor root. Already satisfied in the default Docker image.
Admin UI
- proxyDHCP status indicator — Server Information panel now shows whether proxyDHCP is running in standalone mode or relying on an external DHCP server.
Breaking Changes
- Removed thinos boot method — The Alpine-based trampoline experiment has been dropped. It caused kernel panics, duplicated per-distro knowledge already handled by distro profiles, and didn't actually solve the ISO-visibility problem it was designed for. If you had images set to
boot_method: thinos, change them tokernelorsanboot. The/thinos/*HTTP routes,thinos-kernelandthinos-initrdembedded artifacts, and thethinos/build directory are all removed.
Docker
- docker-compose example — Add
67:67/udpto ports, setBOOTIMUS_PROXY_DHCP_ENABLED=true, and use amacvlanoripvlannetwork (ornetwork_mode: host). proxyDHCP broadcasts do not cross the default bridge network.
Documentation
- New proxyDHCP section in
docs/dhcp.md— Covers how it works, enable instructions, broadcast-domain and Docker networking caveats, a macvlan compose example, and log-line verification steps. - Updated README — DHCP section now leads with built-in proxyDHCP as the recommended option; manual DHCP-server configuration kept as the alternative.
Docker
!!SORRY I FORGOT TO PUSH THIS VERSION!!
docker pull garybowers/bootimus:0.1.34