I think you can do this quite easily.
Use docker compose to start an nginx and maptiler/tileserver-gl. Use an nginx config to send requests upstream to tileserver and cache.
Download a region file from maptiler, or make one.
That's it.
It's about 2h work, using certbot for certificates.
Download a region file from maptiler, or make one.
That's it.
It's about 2h work, using certbot for certificates.
If you want to create your own styles, it's slightly more fiddly, but essentially it's https://maputnik.github.io/editor/#0.41/0/0
Host on hetzner for €3/month.