Vai al contenuto

Setup iniziale

Questa sezione descrive la configurazione una tantum dell'infrastruttura. Una volta completata, il sistema funziona in autonomia e il lavoro quotidiano si riduce alla scrittura e modifica dei contenuti.

Prerequisiti

Account GitHub: gratuito per repository pubblici. GitHub Pro (4$/mese) per repository privati con GitHub Pages pubbliche, utile se vuoi sviluppare in privato prima di pubblicare.

Un dominio o sottodominio: può essere un dominio dedicato (docs.esempio.it) o un sottodominio di un sito esistente. Serve accesso al pannello DNS per la configurazione.

MkDocs e Material (opzionale per sviluppo locale):

pip install mkdocs-material

Creare il repository

Su GitHub, crea un nuovo repository:

  • Nome: scegli un nome descrittivo (es. docs-miosito)
  • Visibilità: Private se hai GitHub Pro e vuoi sviluppare in privato, altrimenti Public
  • Inizializzazione: non selezionare nulla (né README, né .gitignore)

Struttura dei file

Il repository deve contenere questa struttura minima:

repository/
├── .github/
│   └── workflows/
│       └── deploy.yml      # Workflow di build e deploy
├── docs/
│   ├── index.md            # Home page
│   └── CNAME               # Dominio custom (una riga col dominio)
└── mkdocs.yml              # Configurazione MkDocs

Il file mkdocs.yml

Configurazione base:

site_name: Nome del tuo sito
site_url: https://tuodominio.it/
site_author: Tuo Nome

theme:
  name: material
  language: it
  palette:
    - scheme: default
      primary: indigo
      accent: indigo
      toggle:
        icon: material/brightness-7
        name: Passa alla modalità scura
    - scheme: slate
      primary: indigo
      accent: indigo
      toggle:
        icon: material/brightness-4
        name: Passa alla modalità chiara
  features:
    - navigation.tabs
    - navigation.sections
    - navigation.top
    - search.suggest
    - search.highlight

nav:
  - Home: index.md

plugins:
  - search:
      lang: it

markdown_extensions:
  - admonition
  - pymdownx.details
  - pymdownx.superfences
  - toc:
      permalink: true

Il file deploy.yml

Questo file in .github/workflows/ automatizza build e pubblicazione:

name: Deploy MkDocs to GitHub Pages

on:
  push:
    branches:
      - main

permissions:
  contents: read
  pages: write
  id-token: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.x'
      - run: pip install mkdocs-material
      - run: mkdocs build
      - uses: actions/configure-pages@v4
      - uses: actions/upload-pages-artifact@v3
        with:
          path: site/

  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/deploy-pages@v4

Il file CNAME

Un file di testo con una sola riga: il tuo dominio.

docs.tuodominio.it

La home page

Il file docs/index.md sarà la prima pagina del sito. Può essere minimale inizialmente e arricchito in seguito.

Caricare i file su GitHub

Se usi l'interfaccia web:

  1. Nel repository, clicca "Add file" → "Create new file"
  2. Per creare cartelle, scrivi il percorso completo (es. .github/workflows/deploy.yml)
  3. Incolla il contenuto e salva con "Commit changes"

File nascosti

I file che iniziano con . (come .github) sono nascosti nei sistemi operativi. Il drag-and-drop dal file manager potrebbe non caricarli. Usa "Create new file" per crearli direttamente su GitHub.

Configurare GitHub Pages

  1. Vai in Settings del repository
  2. Sezione Pages nel menu laterale
  3. Source: seleziona "GitHub Actions"
  4. Custom domain: inserisci il tuo dominio (es. docs.tuodominio.it)

Configurare i permessi del workflow

Se il primo deploy fallisce con errore sui permessi:

  1. SettingsActionsGeneral
  2. Sezione Workflow permissions
  3. Seleziona Read and write permissions
  4. Salva

Configurare il DNS

Nel pannello di gestione del tuo dominio, aggiungi un record DNS:

Tipo Nome Valore
CNAME docs (o @ per dominio principale) tuousername.github.io

Sostituisci tuousername con il tuo username GitHub e docs con il sottodominio scelto.

La propagazione DNS può richiedere da pochi minuti a 24 ore. GitHub Pages verificherà automaticamente la configurazione.

Verifica

Dopo la propagazione DNS e il completamento del workflow:

  1. Vai nella tab Actions del repository
  2. Verifica che il workflow sia completato (spunta verde)
  3. Visita il tuo dominio nel browser

Se vedi la home page, il setup è completato. Ogni push sul branch main aggiornerà automaticamente il sito.