Skip to content

Releases: garybowers/bootimus

v0.1.70

22 May 12:02

Choose a tag to compare

v0.1.70

Added

  • Windows binaries: bootimus-windows-amd64.exe and bootimus-windows-arm64.exe published 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>, and active subcommands for managing iPXE bootloader sets from the shell.
  • CLI bootimus version: Prints the version; --verbose adds 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 bsdtar package with libarchive-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.exe from 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

02 May 09:30

Choose a tag to compare

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-user utility for list, 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.html to web/static/styles.css for 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.67

v0.1.62

28 Apr 11:39

Choose a tag to compare

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 user CLI: 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.html to web/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 BootParams from 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.62

v0.1.58

24 Apr 06:56

Choose a tag to compare

Added

  • Windows unattended installs. New Auto-Install tab manages a file library under data/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.cmd now copies AutoUnattend.xml from the SMB share to X:\ and launches setup.exe /unattend:X:\AutoUnattend.xml automatically when an autounattend file is configured for the image.
  • Per-client / per-group autoinstall override. Client and ClientGroup gained an auto_install_file field — leave blank to inherit from the group, then from the booted image's default.
  • REST endpoints under /api/autoinstall-files for 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 = yes plus oplocks = no, kernel oplocks = no, level2 oplocks = no, strict locking = no, and deadtime = 1. WinPE reboots mid-install and reconnects from the same IP; without these, smbd held the prior session/oplocks and the second net use was rejected.
  • WinPE startup race. startnet.cmd now explicitly runs net start Workstation before mapping the share — net use was otherwise triggering lazy SMB-client init and racing wpeinit.

Changed

  • Distro profile updates.
  • startnet.cmd no longer swallows net use errors, 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_file columns on clients, client_groups, and images are added by GORM auto-migrate on first start.
  • If you previously worked around the Windows SMB reconnect bug with a custom smb.conf or by restarting Bootimus between PXE attempts, you can drop those workarounds.

Docker

docker pull garybowers/bootimus:0.1.58

v0.1.55

22 Apr 21:11

Choose a tag to compare

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, producing data/isos/isos/<subfolder>/<name>/.
    • The ISO9660/UDF path stripped the subfolder entirely, writing to data/isos/<name>/ while SaveMetadata looked for data/isos/<subfolder>/<name>/metadata.txt, causing a "no such file or directory" error and stale paths in the image record.

Added

  • Tools manifest (tools-profiles.json) at the repo root, mirroring distro-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 main and refreshes built-in tool records in the database. Custom tools, per-tool Enabled state, and download state are preserved.
  • make release now invokes sync-profiles before 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

22 Apr 18:43

Choose a tag to compare

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.md updated (logo, links, polish)
  • New repo-level .dockerignore keeps node_modules, dist, data/, and build artefacts out of image builds

v0.1.51

22 Apr 15:35
4166ac9

Choose a tag to compare

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. Isolated smbd exposes each extracted Windows ISO as an SMB share; boot.wim is patched so WinPE auto-mounts it and launches setup.exe. Docker image now ships with samba.
  • Database snapshot/backup — new Snapshotter interface 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, or Requested 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)

  • smbd in PATH (bundled in Docker image; apt install samba / pacman -S samba for standalone).
  • Port 445 reachable from clients.
  • setcap users 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

20 Apr 11:42

Choose a tag to compare

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

20 Apr 06:59

Choose a tag to compare

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=dhcp and 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

18 Apr 15:51

Choose a tag to compare

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-dhcp flag or BOOTIMUS_PROXY_DHCP_ENABLED=true.
  • Architecture-aware — Serves undionly.kpxe to BIOS (arch 0), bootimus.efi to UEFI x64 (arch 7/9), bootimus-arm64.efi to UEFI ARM64 (arch 11). Filenames configurable via --proxy-dhcp-bootfile-{bios,uefi,arm64}.
  • Never offers an IPyiaddr always 0.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_SERVICE or 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 to kernel or sanboot. The /thinos/* HTTP routes, thinos-kernel and thinos-initrd embedded artifacts, and the thinos/ build directory are all removed.

Docker

  • docker-compose example — Add 67:67/udp to ports, set BOOTIMUS_PROXY_DHCP_ENABLED=true, and use a macvlan or ipvlan network (or network_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