Every time I picked up a new smart device, I lost an afternoon to the same setup. hostapd will not start because wpa_supplicant is holding the radio. NetworkManager brings it back the moment you stop it. Port 53 is taken. The FORWARD chain looks right but devices sit there with no internet.
So I packaged it. Mezz: a docker compose stack, two curl commands, edit .env, bring it up.

