Hi all,
After my registry app auto-updated this evening, every Cloudron build started failing during the push step with Client. Timeout exceeded while awaiting headers reaching the registry.
After a lot of troubleshooting (restart apps, full host reboot, restore registry from a v2.4.0 backup taken before the update), I ran cloudron-support --troubleshoot and got this:
[OK] node version is correct
[OK] IPv6 is enabled and public IPv6 address is working
[OK] docker is running
[OK] docker version is correct
[OK] MySQL is running
[OK] nginx is running
[OK] dashboard cert is valid
[OK] dashboard is reachable via loopback
[OK] box v8.3.2 is running
[OK] netplan is good
[OK] DNS is resolving via systemd-resolved
[FAIL] Could not load dashboard domain.
Hairpin NAT is not working. Please check if your router supports it
Build error from the build service:
The push refers to repository [registry.servers.franklyorganised.com.au/your-app]
Get "https://registry.servers.franklyorganised.com.au/v2/": net/http: request cancelled while waiting for connection (Client.Timeout exceeded while awaiting headers)
Same exact error if I switch to registry-ci via cloudron build --set-repository.
My questions:
Builds were working all day until the registry auto-updated. Could the v3 registry update have changed something that now requires hairpin NAT to be working when it didn't before?
What's the recommended fix when the host VPS provider doesn't support hairpin NAT? Is there a Cloudron config that routes inter-app traffic via internal Docker IPs instead of public hostnames?
Can the registry package be downgraded to a v2.x binary (not just data restore) as a temporary unblocker?
Setup: Cloudron v8.3.2 on Ubuntu 24.04, hosted on Onidel Cloud. Box version v8.3.2, build service v2.10.2.