Riuso

Porta il cruscotto nel tuo comune

Non serve essere programmatori. Con un account GitHub, uno su Vercel e circa un’ora puoi avere un sito con i dati aperti del tuo comune.

Ogni comune ha il suo sito: non c’è un selettore con tutti i comuni d’Italia. I numeri arrivano da Cruscotto Italia (AgID), che è pubblico: non paghi e non chiedi un permesso. Il codice da copiare è il template su GitHub, non questo sito e non i cruscotti già online. San Vincenzo si consulta come esempio.

Preferisci una versione più corta? C’è la guida in sei passi. Esempi già online: Comuni.

Cosa ti serve

  • Un computer e una connessione internet.
  • Un indirizzo e-mail (quello che usi già va bene).
  • Il nome del comune e, se lo hai, il codice ISTAT a 6 cifre.
  • Circa un’ora, senza fretta. Il piano gratuito basta.

Non ti servono carta di credito, server propri né un ufficio informatico. Se a un certo punto ti blocchi, scrivi a cipriani.alessandro@gmail.com.

Account da aprire (tutti gratis)

Per andare online ne bastano due. Gli altri arrivano dopo, se ti servono meteo extra, un bot o l’assistente.

Nel browser

Se non programmi, fai tutto da GitHub e Vercel, senza installare nulla sul computer.

  1. Apri un account GitHub

    Vai su github.com/signup, scegli un nome utente e conferma l’e-mail. In Impostazioni attiva la verifica in due passaggi: è una spunta, non un esame.

  2. Duplica il progetto (il pulsante Fork)

    Apri github.com/magiaslab/cruscotto-comune e premi Fork, in alto a destra. Lascia i valori proposti e conferma. Adesso hai una copia tua, nel tuo account.

  3. Collega Vercel e pubblica

    Entra su vercel.com con GitHub. Poi Add New → Project, scegli la copia che hai appena creato e premi Deploy. Non compilare variabili d’ambiente: per partire non servono. Dopo qualche minuto hai un indirizzo del tipo qualcosa.vercel.app.

  4. Scrivi il nome del tuo comune

    Sempre su GitHub, nella tua copia, apri il file config/comune.json (se non c’è, copia config/comune.example.json). Premi la matita in alto a destra. Cambia almeno:

    • nome — il comune, es. «Campiglia Marittima»
    • istat_code — 6 cifre (lo trovi su Wikipedia o su Cruscotto Italia)
    • provincia e regione
    • geo.map_center — latitudine e longitudine del centro abitato (OpenStreetMap: tasto destro → «Mostra indirizzo»)
    • fork.is_template → false, site.mode → dashboard, e i tuoi nome e e-mail in fork.maintainer_*

    Scorri fino a features e spegni ciò che non c’è da te (un comune di montagna mette porto e balneazione a false). Poi Commit changes. Vercel rifà il sito da solo.

  5. Controlla che i numeri siano i tuoi

    Apri https://TUO-SITO.vercel.app/api/kpi. Deve comparire il nome del tuo comune, non «San Vincenzo». Se vedi ancora un altro ente, il codice ISTAT non è partito: aspetta che Vercel rifaccia il sito, oppure ricontrolla il file.

  6. (Facoltativo) Il tuo dominio

    Su Vercel: Project → Settings → Domains. Aggiungi www.tuodominio.it e segui le istruzioni DNS. Poi imposta NEXT_PUBLIC_SITE_URL e, nel JSON, brand.site_url. Senza dominio resta l’indirizzo Vercel, ed è già un sito vero.

Cosa compilare, in italiano

Il file config/comune.example.json è il modello. Non serve capire React: è un elenco di nomi e valori.

Campi del file comunale da compilare
CampoA che serve
istat_codeChiave dei dati AgID. Senza questo, i numeri restano di un altro comune.
nome, provincia, regioneTesti in testata, piè di pagina e motori di ricerca.
geo.map_center e geo.meteoPunto da cui partono mappa e previsioni.
geo.terrain_sea_sideLato mare del rilievo 3D. Se non hai il mare, scrivi none.
miur_codice_catastaleScuole. Quattro caratteri, es. I390.
farmacie_di_turno_codISTAT senza lo zero iniziale.
features.*Interruttori: false nasconde porto, spiagge, treni, bot…
fork.*Chi mantiene QUESTO sito. is_template: false nei fork.
sostieni.buymeacoffee_slugPagina Supporto. Vuoto = la pagina sparisce. Non copiare lo slug dell’autore.

Se vuoi di più, dopo

  • Meteo OpenWeather

    Registrati, copia la chiave API e incollala su Vercel. Senza chiave restano comunque le previsioni Open-Meteo.

  • Bot Telegram per i defibrillatori

    Si crea con BotFather. Serve solo se vuoi che i cittadini segnalino nuovi DAE. Dettagli in docs/dae-telegram-bot.md nel template.

  • Assistente in chat

    Richiede un account Modal. Non copiare l’indirizzo di San Vincenzo: va un assistente addestrato sul tuo comune.

  • Moduli da spegnere

    Nel file del comune, metti a false ciò che non hai: porto, balneazione, treni, bot Telegram. Un comune interno non deve mostrare il porto.

Elenco delle chiavi facoltative: .env.example. Non incollare mai password o token nei file che finiscono su GitHub.

Se programmi, o hai Cursor

In locale: Node 20+, npm install && npm run dev, poi apri localhost:3000. Dopo aver cambiato ISTAT e coordinate:

npm run dae:sync
npm run omi:update
npm run trasporti:gtfs

A Cursor o Claude puoi chiedere, in italiano: «Adatta config/comune.json al Comune di …, ISTAT …, coordinate …». Tieni aperto AGENTS.md. Non serve costruire un server dati: i KPI arrivano già da AgID. Guida nel template: docs/riuso-fork.md.

Prima di dire che è pronto

  • /api/kpi mostra il tuo comune.
  • Lo stemma e il nome in testata sono i tuoi.
  • Porto, spiagge e bot sono spenti se non ti servono.
  • La frase «progetto non ufficiale» è ancora lì. Va tenuta.
  • Nessuna chiave segreta è finita nel codice.

Per l’amministrazione: testi pronti nel kit ente · Comuni già nati · Suggerisci · Supporto · cipriani.alessandro@gmail.com.