There is, however, one big disadvantage one should be aware of, and that is downtime. There will be downtime when you
* push a new version of your project
* install package updates for docker, postgres, ...
* install a new kernel and need to reboot
* need to upgrade the base OS because you can't stay on Ubuntu 16.04 for the next 10 years (this one can take hours)
Of course there are projects which can live with that. If your target audience is 9-5 office workers, some downtime at night might be acceptable. At least if you don't have customers in other timezones.
IMHO, the sweet spot would be to have two identical servers with automatic failover, but I did not find a good solution for that yet. Would be very interested if someone here has a solution for that and is willing to share.