Hosting gratis
con GitHub Pages
GitHub Pages è un servizio di hosting gratuito incluso in ogni account GitHub — pubblica qualsiasi file HTML, CSS e JavaScript direttamente da un repository, su una rete CDN globale con HTTPS automatico. Nessun server, nessun costo, nessuna configurazione complessa.
Siti di portfolio, landing page, documentazione di progetti, presentazioni, curriculum online, pagine di corso, dispense HTML — qualsiasi file statico (HTML, CSS, JS, immagini, PDF) funziona perfettamente. Non supporta codice lato server (PHP, Python, database) — per quello usa Cloud Run o Netlify Functions.
I due tipi di sito GitHub Pages
| Tipo | Nome repository | URL risultante |
|---|---|---|
| Sito personale/organizzazione | username.github.io | https://username.github.io |
| Sito di progetto | qualsiasi nome | https://username.github.io/nome-repo |
Chiunque abbia un file HTML pronto (generato da Claude, scritto a mano, o esportato da un tool) e voglia metterlo online gratuitamente senza toccare il terminale. Tutta la procedura avviene dall'interfaccia web di GitHub.
Il repository:
la cartella online
Un repository GitHub è come una cartella online con cronologia completa di tutte le modifiche. Il tuo sito statico vivrà qui — ogni file che carichi diventa parte del sito.
tuousername.github.io.tuousername.github.io. Per un sito di progetto: usa qualsiasi nome (es. mio-portfolio).Per il sito personale il nome deve essere esattamente tuousername.github.io — con il tuo username GitHub reale, tutto minuscolo, senza spazi. Un errore nel nome significa che Pages non si attiva automaticamente.
Carica i tuoi file
senza terminale
GitHub permette di caricare file direttamente dal browser — nessun Git da installare, nessun terminale. Trascina i file nella finestra del repository e GitHub li aggiunge automaticamente.
index.html nella cartella principale del repository — questo è il punto d'ingresso del sito. Senza di esso, mostra una pagina di errore 404.Per un sito semplice basta un solo index.html nella root. Per siti più articolati: index.html nella root, poi cartelle /css/, /js/, /img/ per gli altri asset. I percorsi relativi funzionano normalmente — href="css/stile.css" funzionerà senza modifiche.
Se stai caricando un file HTML prodotto da Claude (come le guide di questa collezione), assicurati di rinominarlo index.html prima di caricarlo, oppure che esista già un index.html che lo collega. Un file con nome diverso (es. guida-claude.html) sarà accessibile ma non come pagina principale del sito.
Attivare GitHub Pages
nelle impostazioni
Caricare i file non basta — bisogna dire a GitHub di pubblicarli come sito web. Questo si fa nelle impostazioni del repository, sezione Pages.
Dopo aver salvato, torna nella pagina Settings → Pages. Vedrai un banner con lo stato del deploy: "Your site is ready to be published at..." diventa "Your site is live at..." quando il deploy è completato. Puoi anche monitorare il progresso nel tab "Actions" del repository.
Il tuo sito
è online
Pochi minuti dopo aver salvato le impostazioni Pages, il tuo sito è accessibile pubblicamente. L'URL segue un formato prevedibile basato sul tuo username e nome del repository.
| Tipo sito | URL automatico | Esempio |
|---|---|---|
| Sito personale | username.github.io | marco.github.io |
| Sito di progetto | username.github.io/nome-repo | marco.github.io/portfolio |
Come aggiornare il sito
Ogni volta che carichi nuovi file o modifichi file esistenti nel repository (tramite upload dal browser o commit Git), GitHub Pages aggiorna automaticamente il sito entro 1-3 minuti. Non serve fare nessuna altra azione — il deploy è continuo e automatico.
Se vedi ancora la vecchia versione dopo un aggiornamento, prova a fare un hard refresh nel browser (Ctrl+Shift+R su Windows/Linux, Cmd+Shift+R su Mac). GitHub Pages usa una CDN globale — la cache può impiegare qualche minuto a invalidarsi.
Usare il tuo
dominio
L'URL username.github.io funziona subito, ma puoi usare un dominio personalizzato (es. miosito.it) senza costi aggiuntivi da parte di GitHub — paghi solo la registrazione del dominio.
www.miosito.it) e clicca Save.CNAME nella root del repo con il tuo dominio — non eliminarlo.miosito.it): 4 record A puntanti agli IP di GitHub Pages. Per www: un record CNAME che punta a username.github.io.Tipo A — host: @ — valore: 185.199.108.153 Tipo A — host: @ — valore: 185.199.109.153 Tipo A — host: @ — valore: 185.199.110.153 Tipo A — host: @ — valore: 185.199.111.153 Tipo CNAME — host: www — valore: tuousername.github.io.
Certificato SSL
gratuito e automatico
GitHub Pages emette automaticamente un certificato HTTPS per tutti i siti — sia per gli URL github.io sia per i domini personalizzati. Non devi fare nulla di manuale.
- 🔒SSL automatico per github.ioAttivo immediatamente — non richiede configurazione.
- ⏱️SSL per dominio personalizzatoEmesso entro 24 ore dalla verifica DNS. Puoi forzarlo in Settings → Pages → "Enforce HTTPS" dopo che il certificato è stato emesso.
- 🔄Rinnovo automaticoGitHub gestisce il rinnovo — non scade mai senza preavviso.
Il checkbox "Enforce HTTPS" in Settings → Pages rimane grigio finché il certificato non è stato emesso. Se il checkbox è grigio dopo 24 ore dalla configurazione DNS, verifica che i record DNS siano corretti usando whatsmydns.net.
Problemi comuni
e come risolverli
| Problema | Causa più comune | Soluzione |
|---|---|---|
| Pagina 404 dopo il deploy | Manca il file index.html nella root | Carica o rinomina il file principale in index.html |
| Sito non aggiornato | Cache browser o CDN | Hard refresh (Ctrl+Shift+R) · attendi 5 min |
| Pages non si attiva | Repository privato con account Free | Rendi il repository Public in Settings → General |
| CSS/JS non caricati | Percorsi assoluti invece di relativi | Usa percorsi relativi: ./css/stile.css non /css/stile.css |
| Dominio custom non funziona | Record DNS errati o file CNAME mancante | Verifica record su whatsmydns.net · controlla file CNAME nel repo |
| Build fallita (Actions) | Conflitto con Jekyll | Aggiungi file vuoto .nojekyll nella root del repository |
GitHub Pages usa Jekyll per processare i file di default. Se il tuo sito usa cartelle che iniziano con underscore (_assets, _includes) o ha conflitti con Jekyll, crea un file vuoto chiamato .nojekyll nella root del repository — questo disabilita Jekyll e GitHub serve i file così come sono.
Metti online
il tuo primo sito
- Crea un account su github.com se non ce l'hai. Nota il tuo username (es.
marcoconsiglio). - Crea un nuovo repository pubblico chiamato esattamente
tuousername.github.io. - Clicca "Add file" → "Create new file". Chiama il file
index.htmle incolla questo contenuto:<h1>Ciao, sono [Il tuo nome]</h1><p>Il mio primo sito su GitHub Pages.</p> - Clicca "Commit changes". Vai in Settings → Pages → seleziona branch main, root → Save.
- Aspetta 2-3 minuti, poi apri
https://tuousername.github.io— il sito è live.
- Crea un nuovo repository pubblico con un nome descrittivo (es.
guida-claude-ai). - Prendi il file HTML della guida e rinominalo
index.html. - Nel repository, clicca "Add file" → "Upload files" → trascina il file
index.html. - Scrivi un messaggio di commit e clicca "Commit changes".
- Vai in Settings → Pages → Deploy from a branch → main → / (root) → Save.
- Aspetta il deploy e visita
https://tuousername.github.io/guida-claude-ai.