Windows Docker Ghost Port Mapping: EMQX 1883 Silently Reserved by WinNAT Postmortem

Docker Desktop on Windows with a full stack (backend + EMQX 5.8.9 + TimescaleDB + Valkey). Backend ping/pong works, but mosquitto_pub keeps returning Connection refused. Other ports in docker ps map fine; only 1883 lacks the 0.0.0.0:1883-> prefix and Docker reports no error. Root cause: Hyper-V/WinNAT dynamic port reservation holds 1883 (in the 1802–1901 range). Four remediation options: swap port, temporary reclaim, admin allowlist, fix the dynamic port range.

2026-08-25 · 4 min · 645 words · Intent

Rootless Container Inbound Source IP Preservation: Hybrid Host-Bridge Topology and Tradeoff Analysis

Architecture analysis and implementation of inbound source IP preservation under Rootless Podman. Uses a Hybrid Host-Bridge topology to retain real client IPs at edge services while preserving network isolation for internal services, with tradeoff analysis, implementation details, and verification methodology.

2026-07-11 · 9 min · 1854 words · Intent

IIoT Ingress Postmortem: Troubleshooting EMQX 5.8 Under Podman Rootless

A postmortem of an IIoT ingress deployment failure: under Podman Rootless, EMQX 5.8 exposed unstable Erlang IPC, HOCON schema validation failures, a blocked security-group port, and M2M requests rejected by CSRF middleware. This post covers the confirmed causes, fixes, and validation path.

2026-05-28 · 9 min · 1806 words · Intent