--- title: "Migrazione da Wordpress a Hugo" date: 2024-09-08T10:50:41+02:00 #expiryDate: # impostare se il post deve essere rimosso automaticamente nel futuro #publishDate: # impostare se il post deve essere pubblicato automaticamente nel futuro draft: false slug: "2024-09-09-migrazione-wordpress-hugo" type: post image: wordpress-to-hugo.png # se non metti un'immagine, viene presa la prima immagine del post image_alt: "Descrizione dell'immagine. Il ratio dell'immagine deve essere 360x250." summary: Se non presente, usa il testo dell'articolo tags: - news categories: - News --- Siamo lieti di annunciare che la migrazione da **Wordpress** a **Hugo** è giunta a termine, sia per questo sito web che per quello di libreschool.org, con la pubblicazione di questo sito. Questo progetto è il risultato di un lungo percorso iniziato a novembre dell'anno scorso, con il primo commit effettuato da Paolo Asperti il 26 novembre 2023 per il sito web [LibreSchool.org](https://libreschool.org), e concluso con la pubblicazione del nuovo sito web del bglug.it, avvenuta il 3 settembre 2024, durante la prima riunione serale del BGLUG dopo la pausa estiva. Questo risultato è stato reso possibile grazie all'impegno di diverse persone, ma il contributo principale è stato senza dubbio di **Paolo Asperti**, che si è occupato della parte tecnica. È importante anche menzionare **Omar Lazzari**, che ha dato un contributo rilevante nella gestione dei contenuti. ![Contributi al sito libreschool.org secondo gitea](contributi-libreschool.org.png) ![Contributi al sito bglug.it secondo gitea](contributi-bglug.it.png) Durante la migrazione non sì è perso nulla. È stato utilizzato uno strumento per esportare gli articoli da WordPress e convertirli in "formato Hugo", con successivi aggiustamenti manuali. Il codice sorgente di entrambi i siti web è pubblico e disponibile [qui](https://git.libreschool.org/BgLUG/bglug.it) per BGLUG.it e [qui](https://git.libreschool.org/LibreSchool/libreschool.org) per LibreSchool.org. ## Cos'è un generatore di siti web statici? Prima di parlare di Hugo, è importante capire cosa sia un generatore di siti web statici. Un [generatore di siti web statici](https://en.wikipedia.org/wiki/Static_site_generator), o Static Site Generator (SSG), è un software che prende in input file testuali (ad esempio in formato markdown o rst) e genera un sito web composto da file HTML, CSS, JS, immagini e altri elementi, ma senza logica eseguibile lato server (come PHP o server REST). ![Schema che mostra il funzionamento di un generico SSG. Viene mostrato come il generatore prende in input dei file template come head.html, footer.html e sidebar.html, dei file contenuti come contacts.md, home.md e product.md e produce in output un albero di file con dentro un file index.html e due directory contenenti rispettivamente ciascuno un file index.html](static-site-generator.png) ## Cos'è Hugo? ![Logo di hugo](hugo-logo-wide.png) [Hugo](https://gohugo.io/) è uno dei tanti SSG liberi presenti sul mercato, ed è probabilmente il più popolare. È stato scelto per entrambi i nostri siti web web per la sua velocità, flessibilità e l'ampia disponibilità di temi. In particolare, abbiamo deciso di adottare il tema [hugo-arcana](https://themes.gohugo.io/themes/hugo-arcana/). Per noi, questo significa che ogni volta che dobbiamo modificare il sito web, come per creare un nuovo articolo, è sufficiente aggiornare i file dei contenuti seguendo le istruzioni della nostra [wiki](https://git.libreschool.org/BgLUG/bglug.it/wiki) e pubblicare le modifiche sul repository ufficiale del sito. Da lì, una serie di automazioni gestite da CI/CD di Gitea eseguono Hugo e caricano i file generati sul server web. Queste automazioni controllano anche che i contenuti siano fatti come sì deve e che non spacchino qualcosa. Uno dei vantaggi degli SSG è che permettono a terzi di proporre modifiche al sito web, purché queste vengano accettate da noi. ## Perché abbiamo migrato da Wordpress a Hugo? [Wordpress](https://wordpress.com/it/) è il [sistema di gestione contenuti](https://it.wikipedia.org/wiki/Content_management_system) più popolare nonché il sistema che utilizzavamo prima della migrazione. Uno dei vantaggi di un CMS è la gestione dinamica dei contenuti, che possono cambiare durante la giornata o in base alle interazioni degli utenti. Permettono anche di gestire pagamenti, commenti e logiche avanzate per gli utenti. Tuttavia, questi vantaggi non erano rilevanti per noi. Invece, gli svantaggi di WordPress, come la necessità di aggiornamenti frequenti e maggiore manutenzione, tempi di caricamento più lenti e una maggiore superficie di attacco (PHP + WordPress), erano problematici. Avevamo riscontrato anche episodi di comparsi articoli non voluti. Queste sono state le principali ragioni per cui abbiamo scelto di migrare da WordPress a Hugo. ## Vantaggi della migrazione a Hugo per il BGLUG La migrazione a Hugo ha portato numerosi vantaggi per il nostro team e la comunità del BGLUG, tra cui: - **Maggiore velocità**: Il nuovo sito è notevolmente più veloce rispetto alla versione basata su wordpress, con tempi di caricamento molto ridotti. - **Sicurezza migliorata**: Senza la necessità di gestire un backend complesso come PHP o database MySQL, la superficie d'attacco del sito è stata drasticamente ridotta. - **Manutenzione semplificata**: Hugo richiede meno manutenzione, eliminando la necessità di continui aggiornamenti di plugin e temi. Possiamo essere relativamente sicuri che il sito web funzionerà perfettamente anche tra vent'anni - **Archiviazione semplificata**: l'archiviazione è molto più semplice perché viene gratis con git. Tra dieci anni se vorremmo rivedere il vecchio sito basta andare indietro con `git checkout` e lanciare `hugo server`. Ci sarebbe anche il vantaggio dei costi minori in quanto l'hosting di un sito web statico costa notevolmente meno in quanto occupa relativamente poco spazio e può essere messo letteralmente ovunque, come su una CDN. Tuttavia a noi non è cambiato nulla perché continua a girare sullo stesso web server, ove sono presenti altri servizi.