Pubblicazione sito su Cloudflare Pages
Introduzione
Dopo aver rimandato l’operazione per un po’, mi sono finalmente messo a fare il deploy del mio sito su Cloudflare Pages. Cloudflare Pages è un servizio di hosting per siti statici (o generati con framework come Hugo, Next.js, React, ecc.) che offre:
- Deploy automatico collegato a GitHub
- Certificato SSL gratuito
- CDN globale con caching ottimizzato
- Piano gratuito generoso
Ecco un diario di tutti i passaggi che ho seguito.
1. Creare un Account su Cloudflare
Il primo passo è registrarsi su cloudflare.com. Una volta dentro, dalla dashboard si accede alla sezione Pages nel menu laterale.
2. Installare Wrangler
Wrangler è lo strumento da riga di comando ufficiale di Cloudflare. Permette di gestire progetti, fare deploy manuali e interagire con i vari servizi Cloudflare direttamente dal terminale.
sudo npm install -g wrangler
Dopo l’installazione, autenticarsi con il proprio account:
wrangler login
Si aprirà il browser per completare il login. Una volta autorizzato, il token viene salvato localmente e Wrangler è pronto all’uso.
3. Creare un Nuovo Progetto su Cloudflare Pages
Per creare un nuovo progetto Pages da terminale:
wrangler pages project create nome-del-sito
In alternativa, è possibile creare il progetto direttamente dalla dashboard web di Cloudflare, nella sezione Workers & Pages → Create application → Pages.
4. Configurare il Progetto (wrangler.toml)
Il file wrangler.toml nella root del progetto contiene la configurazione del deploy. Ecco un esempio tipico:
name = "nome-del-sito"
pages_build_output_dir = "public" # cartella generata dal build (es. "dist" per React, "public" per Hugo)
Nota per Hugo: la directory di output di default è
public/. Per altri framework controlla la documentazione: React/Vite usadist/, Next.js usa.next/oout/a seconda della configurazione.
Se si usa un framework supportato (React, Next.js, Astro, Hugo, ecc.), Cloudflare Pages è in grado di rilevare automaticamente il build command e la output directory durante la configurazione via dashboard.
5. Collegare il Repository GitHub per il Deploy Automatico
Questo è il passaggio chiave per avere il deploy automatico: ogni push sul repository GitHub farà scattare automaticamente un nuovo deploy su Cloudflare Pages.
Come collegare GitHub dalla dashboard Cloudflare
- Vai su Workers & Pages → seleziona il tuo progetto Pages
- Clicca su Settings → Builds & Deployments
- Nella sezione Branch deployments, clicca su Connect to Git
- Scegli GitHub come provider
- Autorizza Cloudflare ad accedere al tuo account GitHub (si apre una finestra OAuth)
- Seleziona il repository che vuoi collegare
- Configura le impostazioni di build:
- Production branch:
main(omaster, a seconda del tuo repo) - Build command: es.
hugo --minifyper Hugo,npm run buildper React - Build output directory: es.
publicper Hugo,distper React/Vite
- Production branch:
- Clicca Save and Deploy
Da questo momento, ogni git push sul branch di produzione avvierà automaticamente un nuovo build e deploy. I branch secondari generano invece delle preview URL separate, utili per testare le modifiche prima di metterle in produzione.
Verifica lo stato del deploy
Dalla dashboard di Cloudflare, nella sezione Deployments, è possibile vedere in tempo reale lo stato di ogni deploy (building, success, failed) e consultare i log in caso di errori.
6. Deploy Manuale (opzionale)
Se non si vuole usare GitHub o si vuole fare un deploy una tantum, è possibile farlo da terminale con Wrangler:
# Prima eseguire il build del sito
hugo --minify # oppure: npm run build
# Poi pubblicare la cartella di output
wrangler pages deploy public/ # sostituire "public/" con la propria output directory
Nota: il comando
wrangler publishè deprecato nelle versioni recenti di Wrangler. Usarewrangler pages deployal suo posto.
7. SSL: Certificato Automatico
Cloudflare fornisce un certificato SSL/TLS gratuito e automatico per tutti i siti su Pages. Non è necessaria nessuna configurazione aggiuntiva.
Per i siti con dominio personalizzato, dalla dashboard si può scegliere la modalità SSL:
- Flexible: HTTPS tra utente e Cloudflare, HTTP verso il server di origine
- Full: HTTPS end-to-end (consigliato)
- Full (Strict): come Full, ma verifica anche la validità del certificato sull’origine
8. Caching e Ottimizzazione
Cloudflare applica automaticamente il caching per le risorse statiche tramite la sua CDN globale. Per personalizzare il comportamento:
- Dalla dashboard, vai su Caching → Configuration
- Imposta il Cache Level (Standard è adatto alla maggior parte dei casi)
- Per forzare il refresh della cache dopo un deploy, usa Purge Cache
Per siti statici come quelli generati con Hugo, il caching di default di Cloudflare è già ottimale: le risorse vengono servite dall’edge node più vicino all’utente.
9. Monitoraggio
Cloudflare offre strumenti integrati per il monitoraggio:
- Analytics: traffico, richieste, larghezza di banda, codici di stato HTTP
- Web Analytics: metriche lato client (Core Web Vitals, tempo di caricamento) — si attiva aggiungendo uno script alla pagina
- Security: log di richieste bloccate, attacchi DDoS, rate limiting
Conclusioni
Il deploy su Cloudflare Pages è risultato rapido e senza intoppi. I punti di forza principali sono:
- Integrazione GitHub fluida e affidabile per il deploy automatico
- SSL gratuito senza configurazione manuale
- CDN globale che migliora sensibilmente i tempi di caricamento
- Piano gratuito con limiti molto generosi per siti statici
Per chi usa Hugo o altri generatori di siti statici, Cloudflare Pages è una delle soluzioni più solide e comode disponibili oggi.