The hard part of building a CDN is scaling it. The best approach imo is to use fly.io to host an anycast IP (with horizontal scaling) and store cache files on disk
Fly.io also has a Grafana dashboard built in for your machines
Fly.io also has a Grafana dashboard built in for your machines