Nothing of yours is exposed to the internet
Services run on our own server and none of them opens a port to the outside. That is not extra caution: when a container publishes a port, Docker inserts its firewall rules ahead of the system’s, so the port is reachable from the internet even while the firewall denies it. It is a silent and common failure.
- No service publishes a port. It is checked on every review rather than assumed.
- Traffic arrives through an encrypted Cloudflare tunnel opened from the server outwards: there is no inbound door to force.
- Databases live on a separate internal network. The tunnel cannot see them, not even by name.
- SSH by key only — no passwords, no root, and a cap on attempts.