I used Zola [0] + Caddy [1] with the http.git plugin [2] and docker. I generate the assets with Zola, then rsync them to a separate repository and Caddy automatically pulls in the changes whenever I git push.
Source here: https://git.sr.ht/~andrewzah/personal-site/tree
[0]: https://github.com/getzola/zola [1]: https://github.com/caddyserver/caddy [2]: https://caddyserver.com/docs/http.git