Caddy "listen tcp :443: bind: permission denied"
Caddy server would not start and displayed this error after upgrading to v0.9.3:
listen tcp :443: bind: permission denied
I was running caddy with systemd as user caddy
. I checked that the binary was, in fact, owned by caddy
.
Solution 1:
If you're running systemd v229 or later, you can do this without giving the binary capabilities intrinsically:
AmbientCapabilities=CAP_NET_BIND_SERVICE
Solution 2:
It's not a caddy issue, nor a user-permissions issue. Linux doesn't allow processes to listen on low-level ports by default.
To grant access:
sudo setcap CAP_NET_BIND_SERVICE=+eip $(which caddy)
source: superuser: Allow non-root process to bind to port 80 and 443?