The author seems to think the only real alternatives are docker or whatever.

So here's a way to host your personal blog if you don't want to over engineer it:

1. Have a git repo with your nginx/whatever config files.

2. Have a VPS running debian.

3.

    apt-get install nginx git ...
    git clone ...
    ln ... # create symbolic links to your nginx/whatever config in your git repo
    systemctl restart nginx ...
4. You're done. Create a cron job to automatically pull the latest changes from your git repo if you want.

The above steps should take most people around 10 minutes.

If you need to actually pivot into something that scales easier from there, I recommend following these steps/levels as your scale increases:

1. Create an automatic install script.

2. Use that script to create a .deb package instead of installing directly (optionally create a repository for this).

3. If you want to move to docker or what have you, it's trivial to install a debian package in a container.

But let's be real, you never even will have to do any of the above because it's a personal blog, and it'll probably scale to the world population on a $5 VPS, especially if you slap cloudflare in front.

These days I see no point in installing services on a VPS directly, other than docker + docker-compose. You could do it in one image with the reverse proxy + static files, or break it out into two images (this is helpful if you run more services on the VPS).

As for updates, caddy v1 used to support pulling in from git, but I don't think that got ported to v2. So what I do is build+push a docker image, and have a cron job on my vps to pull+restart my website's container.

My preferences go Traefik > Caddy > Nginx, but traefik definitely has a bit of a learning curve.

https://github.com/andrewzah/andrewzah-com-source/blob/maste...

https://github.com/andrewzah/andrewzah.com-docker/tree/maste...

You might be interested in:

https://github.com/containrrr/watchtower

It would automatically pull the new image and restart your containers.