v0.5.6: advertise the HTTP port in client-facing boot URLs

The base URL handed to PXE clients was built as `http://{ip}` with no
port, ignoring OPENPXE_HTTP_PORT. Every client-facing URL derives from
it — the DHCP-proxy iPXE filename, UEFI HTTP boot, and the boot menu's
kernel/initrd/ISO links — so any non-80 deployment told clients to fetch
:80 (the wrong service). On Unraid that's the webGUI, which 301s to
https; iPXE (no TLS) then fails the chain with "Operation not supported".
This broke the exact configuration the Unraid template recommends
(HTTP port 4200, to avoid the webGUI on :80).

Fix: build_public_base_url(ip, port) includes the port unless it's 80,
so http://10.0.0.5 stays clean while http://10.0.0.5:4200 is reachable.
One source of truth, so the whole URL surface is corrected at once.
Regression-tested (port included for 4200/8080, omitted for 80).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
Miles Ward
2026-06-03 18:49:50 -04:00
co-authored by Claude Opus 4.8
parent edf3a69daa
commit c0d17fa9ca
3 changed files with 53 additions and 10 deletions
Generated
+8 -8
View File
@@ -2669,7 +2669,7 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
[[package]]
name = "openpxe"
version = "0.5.5"
version = "0.5.6"
dependencies = [
"anyhow",
"axum",
@@ -2691,7 +2691,7 @@ dependencies = [
[[package]]
name = "openpxe-core"
version = "0.5.5"
version = "0.5.6"
dependencies = [
"anyhow",
"base64",
@@ -2718,7 +2718,7 @@ dependencies = [
[[package]]
name = "openpxe-dhcp-proxy"
version = "0.5.5"
version = "0.5.6"
dependencies = [
"anyhow",
"bytes",
@@ -2732,7 +2732,7 @@ dependencies = [
[[package]]
name = "openpxe-http-api"
version = "0.5.5"
version = "0.5.6"
dependencies = [
"anyhow",
"axum",
@@ -2768,7 +2768,7 @@ dependencies = [
[[package]]
name = "openpxe-ipxe-assets"
version = "0.5.5"
version = "0.5.6"
dependencies = [
"openpxe-core",
"rust-embed",
@@ -2778,7 +2778,7 @@ dependencies = [
[[package]]
name = "openpxe-iso-store"
version = "0.5.5"
version = "0.5.6"
dependencies = [
"anyhow",
"bcrypt",
@@ -2807,7 +2807,7 @@ dependencies = [
[[package]]
name = "openpxe-tftp"
version = "0.5.5"
version = "0.5.6"
dependencies = [
"anyhow",
"bytes",
@@ -2821,7 +2821,7 @@ dependencies = [
[[package]]
name = "openpxe-webui"
version = "0.5.5"
version = "0.5.6"
[[package]]
name = "p256"