I used to think every server needed a public IP. It's just... how servers work, right?

Then I moved my side project , a small Node.js API with a Postgres database , to Krova Cloud. Cubes don't get public IPs by default. Within a day, I realized I'd been accepting a bunch of nonsense I didn't have to.

No more SSH brute-forces. No open ports accidentally exposed. No anxiety about whether my firewall rules were perfect.

Here's what happened.

The problem with public IPs