Automated deployments to a VPS with GitHub Actions and Docker Compose

How I set up automated deployments to a VPS without a public IP address, using a self-hosted GitHub Actions runner.