-
released this
2026-05-26 00:02:25 -04:00 | 41 commits to main since this releaseOpenPXE v0.4.6
UI polish + iVentoy-inspired PXE-menu chrome. No backend behaviour
changes other than the newidp_logo_urlSSO field; existing
deployments upgrade in place.PXE boot menu (iVentoy-style)
The top-level iPXE menu now opens with a polished centered "OpenPXE"
wordmark and closes with a single-line footer carrying the version +
the booting client's arch. Concretely:------------------------- Default ------------------------- Boot from Local HDD ----------------------- Installers ----------------------- Linux Installers > Windows Installers > -------------------------- Tools -------------------------- Tools > --------------------- Queued Deployment --------------------- Queued Deployment (join queue) OpenPXE v0.4.6 - x86_64 UEFI- ASCII wordmark lives in
item --gaplines so every iPXE build
paints it, even the minimalsnponly/undionlyvariants without
a graphics console. Always visible regardless of firmware capability. - Best-effort PNG overlay. A
console --picture <base>/branding/pxe-logo || consoleline at the top of the script lets iPXE builds with
PNG support paint the operator's uploaded raster logo as the
background. The|| consoleresets to plain text on any iPXE that
doesn't speak PNGs, so the menu always renders cleanly. - New endpoint:
GET /branding/pxe-logoserves the operator's
raster logo (PNG / JPEG / WebP / GIF) as-is. SVG uploads return 404
— iPXE can't rasterize SVG. Endpoint stays public after admin setup
because iPXE clients have no way to send a session cookie. - Footer line
OpenPXE v0.4.6 - <arch>mapped from iPXE's
${buildarch}×${platform}to a friendly form:
x86 BIOS(i386 + pcbios),x86_64 UEFI(x86_64 + efi),arm64 UEFI(arm64 + efi). No website URL per the design brief.
To get your custom logo painted in the PXE environment: upload a PNG
(or JPEG / WebP / GIF) on Settings → Branding. SVG continues to drive
the WebUI's top-left logo as before; the ASCII wordmark stands in on
the PXE side.Top-right user menu
The "signed in as X / Sign out" row moved out of the sidebar footer
and into a small person-icon button next to the theme toggle.
Click opens a popover with three rows:- Name — the operator's display username (read-only).
- Edit account — jumps to Settings, which has the Account card at
the top. - Sign out — revokes the session and bounces to the login screen.
Esc + click-outside close it. The sidebar footer is back to the clean
"Service status / Advertised PXE URL / OpenPXE v0.4.6" trio.Settings touchups
- Account card form chrome is now consistent across all four
inputs (Current password / New username / New password / Confirm).
The previous CSS selector only styledtype=textandtype=number
inputs, leaving password fields with default browser chrome —
visually misaligned next to the styled username input. The new
rule covers every input type we use, normalizes Safari's password-
field metrics, and adds a 1-pixel teal focus ring that works in
both light and dark mode. - SSO card header is now a single 3-column row: IdP display
name, IdP logo URL (new field, FleetDM-style), Metadata
source. All three controls baseline-align because the select
inherits the same chrome as the text inputs. Below the row, the
active source field (Metadata URL or pasted XML) spans full width. SsoConfig.idp_logo_urlpersisted tosso.jsonalongside the
existing fields. Length-capped at 2048 chars, must behttp://or
https://. Used by the future SAML sign-in flow to brand the
"Sign in with X" button. Empty/missing falls back to a generic
badge.
Container image
gitea.milesward.dev/mward4/openpxe:0.4.6gitea.milesward.dev/mward4/openpxe:latest
linux/amd64; static-musl binary; Debian 12-slim runtime (unchanged
from v0.4.5). Non-root UID 10001 withsetcap NET_BIND_SERVICE.Quality
- 138 tests passing (was 132 in v0.4.5). Net +6: +1 IdP-logo-URL
validation in the SSO config unit tests, +1 regression guard for the
PXE-menu polish (assertsconsole --picture, the ASCII banner, the
footer interpolation, and the three arch labels), +4 integration
tests for/branding/pxe-logocovering the missing-config / SVG-
fallback / raster-serve / post-auth-public-allowlist cases. cargo clippy --workspace --all-targetsclean.
Compatibility
- Existing
sso.jsonfiles keep working — the newidp_logo_url
field defaults to the empty string when missing. - Existing deployments upgrade in place; the WebUI bumps from v0.4.5
to v0.4.6 on next launch, picks up the new menu chrome, and the
user menu's reposition is purely cosmetic.
Downloads
- ASCII wordmark lives in