For ~9 years I've been comboing Ansible, Docker Compose and git to deploy web apps to a VPS or more generally any Debian based host. Roughly 10-15 lines of YAML and 1 command to get everything up and running in a production ready way. It really does work, I've deployed about 60 or 70 different apps this way for clients over the years.