-
released this
2026-05-25 17:47:01 -04:00 | 43 commits to main since this releaseOpenPXE v0.4.4
Settings tab lands with API reference + custom branding, ISOs get an
operator-controlled menu category, and Storage now shows how much room
is left on the volume.New: Settings tab
A dedicated
Settingsnav item between Terminal and About. Three cards:- Identity & access — read-only placeholder for the LDAP, OIDC, and
user-management work coming in a future release. Today OpenPXE has no
built-in auth on the WebUI; run behind an identity-aware reverse proxy
(Authentik, Authelia, oauth2-proxy) for hardened deployments. - Branding — upload a custom WebUI logo (PNG, SVG, JPEG, WebP, or
GIF; up to 2 MB). Persisted under<work_dir>/branding/and served at
/assets/logo.svgin preference to the bundled mark. "OpenPXE v0.4.4"
pins to the sidebar footer so the backend identity stays visible even
with custom chrome (FleetDM-style). - API reference — a self-rendered, grouped list of every
/api/*
endpoint with method, path, and one-line summary. Sourced from a new
GET /api/docsso operators chasing an integration get it in-product
rather than having to fetch the OpenAPI YAML separately.
Storage
- Type column is now an OS / Tools dropdown. Defaults to
OS— the
ISO is routed by detected family into the Linux or Windows installer
submenus. Flipping it toToolsmoves the entry into the Tools submenu
next to memtest / shell / NIC info. Family detection still drives
BIOS/UEFI / kernel args; only the menu placement changes. New endpoint:
PUT /api/isos/:id/categorybody{"category":"os"|"tools"}. - Disk space card. Free / used / total for the volume hosting the
ISO directory, with an 80% / 95% colour ramp on the bar. Lives at the
top of the Storage tab so a half-full volume is visible before you
start an upload. New endpoint:GET /api/storage/disk. The
statvfscall lives iniso-storeso thehttp-apicrate stays
#![forbid(unsafe_code)].
UI polish
- Aligned brand block. The sidebar header now matches the topbar
height exactly so the dividing line runs straight across the top of
the app — no more "OpenPXE big, Dashboard small, different heights"
step. Brand badge is 26 px icon + 15 px label, matching the topbar's
h1. - Light-mode terminal.
--terminal-bgand the per-level text
colours now track the active theme. Previously the Terminal pane
stayed dark in light mode, looking like a stuck panel. - Sidebar footer version line. "OpenPXE v0.4.4" is pinned below the
advertised PXE URL so backend identity survives any operator-uploaded
logo. - About tab. Lead paragraph now spans the full content width
(previously capped at 60ch leaving the right two-thirds blank), and a
Docs row links to https://openpxe.com/.
Container image
gitea.milesward.dev/mward4/openpxe:0.4.4gitea.milesward.dev/mward4/openpxe:latest
linux/amd64 Debian 12-slim runtime + binary + iPXE binaries + wimboot,
non-root UID 10001 withsetcap NET_BIND_SERVICE.Quality
- 106 tests passing (was 89 in v0.4.1). Net +17 from new branding
unit tests, store/disk plumbing, and integration coverage for the
category / disk / docs / branding endpoints. cargo clippy --workspace --all-targetsclean.
Compatibility
- Old
meta.jsonfiles without acategoryfield deserialize asOs
(matches v0.4.1 behaviour — everything in OS Installers). No migration
needed. /api/settingsis unchanged; existing automations keep working.
Downloads
- Identity & access — read-only placeholder for the LDAP, OIDC, and