Iscriviti alla newsletter per rimanere aggiornato

inserisci il tuo indirizzo Email

    Subscribe to newsletter - tutte le categorie feed

    Iscriviti alla newsletter per rimanere aggiornato
    inserisci il tuo indirizzo Email »»»

  • Publii: ecco perché ho abbandonato Wordpress e Drupal per un generatore di siti statici

    III➤ Il perfetto CMS che sostituisce Drupal e Wordpress, parliamo di Publii, generatore di siti statici facile, veloce e adatto ai principianti

    Una volta si acquistavano appezzamenti di terreni come forme di investimento per il futuro. Anche io con il tempo ho acquistato alcuni terreni ma... "virtuali"!

    Infatti, ogni volta che mi veniva in mente una probabile idea imprenditoriale valida, ho acquistato quello che poteva essere il nome di dominio più indicato, per evitare che qualcun altro potesse sfruttarlo al mio posto, e garantendomi così la possibilità di sviluppare il mio progetto nel migliore dei modi.

    Ma ogni dominio si sa, necessita di un sito web, ed ogni sito web necessita di uno spazio su un server collegato ad Internet, su cui inserire i file per renderli fruibili ai naviganti.

    Considerando che non si tratta solo di uno o due siti, ma molti di più, alla lunga, per mantenere il possesso dei nomi e per assicurarmi lo spazio digitale necessario per ciascun sito, l'investimento economico necessario è salito in modo esponenziale diventando di fatto insostenibile, visto che per lo più si tratta solo di idee e progetti che devono ancora nascere e di cui quindi non ho ritorni finanziari.

    Mi sono quindi ritrovato nella necessità di cercare un sistema integrato di creazione, gestione e archivio dei miei siti, che fosse il più economico possibile, meglio ancora se totalmente gratuito.

    Ma non è solo una questione di risparmio: il motivo che mi ha spinto definitivamente ad attivarmi, è stato il fatto che a causa dei bug presenti all'interno dei vari CMS (Content Manager System), anche quelli più rinomati e diffusi (come Wordpress, Drupal, Joomla) o dei plugin relativi, ogni tanto capitava di dovermi difendere da attacchi di hacker senza scrupoli, pronti a sfruttare i "buchi" presenti per inoculare codice malevolo o per utilizzare lo spazio del mio hosting a loro vantaggio.

    Chi gestisce dei siti con Wordpress, Drupal o Joomla, sa bene quanto ogni giorno emergano nuovi exploit, ed essendone anche io un utilizzatore seriale, mi sono trovato più volte costretto ad agire per limitare i danni.

    Così, oltre al denaro, anche il tempo impiegato per queste attività di difesa ed aggiornamento è diventato davvero troppo oneroso, e faticoso, visto che ogni volta mi tocca agire con attenzione per verificare se i vari plugin o i temi presenti, non vengano disabilitati / corrotti dalla nuova versione appena installata.

    Ma c'è di più: abbandonare un CMS tradizionale per uno alternativo porta ad ottenere dei vantaggi enormi che non sono subito evidenti... ma di questo ne parlerò più avanti, se avrai la pazienza di seguirmi.

    Mi sono messo quindi a cercare fra le tante soluzioni disponibili per raggiungere il mio obiettivo, ottenere un sistema di generazione dei siti che:

    1. fosse gratuito ed espandibile a piacimento;
    2. mi permettesse di utilizzare spazi di hosting economici se non addirittura gratuiti (per lo meno per quei siti che uso solo come vetrina).

    Ovviamente il primo pensiero è andato ad un prodotto che fosse open source, per il semplice fatto che oltre a donarmi la gratuità e l'espandibilità, essendo "aperto", mi garantisce anche la possibilità di rivolgermi ad una community di persone già operative e dedicate alla risoluzione di eventuali problemi: vista l'offerta disponibile, oggi è davvero inutile, se non in alcuni rarissimi casi, sbattersi per reinventare la ruota da capo!

    Cercando quindi fra le soluzioni disponibili in rete, mi sono subito imbattuto nelle tre tipologie di sistemi alternativi esistenti per generare, gestire e mantenere siti Internet in alternativa ai sistemi tradizionali (Wordpress & Co. + db + hosting):

    1. CMS plugin
    2. Flat File CMS
    3. Static Site Generators

    Prima di scoprire nel dettaglio le caratteristiche delle soluzioni proposte, è bene sapere che un CMS tradizionale permette di memorizzare il contenuto delle pagine in un database e fornisce gli strumenti idonei alla loro modifica ed al loro aggiornamento dinamico, di solito tramite un pannello di controllo apposito, quello dell'amministratore.

    La gestione del sito in questo modo diventa più semplice, ma ci si deve avvalere di un pacchetto di tecnologie lato server e questo può aprire la porta a diversi problemi:

    • L'accesso al servizio di gestione e mantenimento del sito si trova online, quindi è esposto ad eventuali attacchi di hacker o malfattori che potrebbero prendere possesso della piattaforma, con tutti i rischi del caso. Purtroppo il problema è serio visto che, quando capita, stiamo parlando di milioni di siti web infettati;
    • I file che costituiscono il sito sono scritti in PHP, un formato che permette l'avvio di comandi lato server e, proprio per questo, potrebbero essere oggetto di attacchi da parte di estranei che volessero utilizzarli per inoculare codice malevolo da eseguire quando qualcuno carica la pagina visitando il sito;
    • Facendo uso di un Database (il più delle volte MySQL), i tempi di caricamento delle pagine sono strettamente legati al tempo che passa tra la richiesta dei dati al DB fino alla visualizzazione finale, tempi che si aggiungono a quelli comunque necessari per caricare tutti i file utili alla creazione della pagina completa (immagini, testi, banner, script, ecc.). Come si sa, a maggiori tempi di caricamento di un sito, corrispondono peggiori posizionamenti sui motori di ricerca;

    Ma per quale motivo un CMS alternativo dovrebbe essere migliore? Le differenze sostanziali insite nelle soluzioni che ho trovato sono principalmente queste:

    • In alcuni casi la sezione amministrativa di gestione del sito è assente o si trova offline, con la conseguenza che è molto più difficile riuscire ad accedere e fare danni. Aumenta quindi, e di molto, la sicurezza;
    • La tipologia dei file usati per la creazione del sito è di tipo testo: questo significa che non c'è modo di eseguire comandi lato server, e la sicurezza, ancora una volta, ringrazia!
    • Non viene utilizzato alcun Database, azzerando così i "tempi morti" dovuti al collegamento con il server di hosting: la visualizzazione delle pagine diventa quasi immediata, caratteristica molto apprezzata dai motori di ricerca tanto da migliorare considerevolemente l'indicizzazione dell'intero sito;
    • I file di testo che compongono il sito non vengono interpretati ed elaborati al volo, questo implica, ancora una volta, maggiore velocità!
    • Trattandosi di semplici file di testo, senza nessun aggiornamento dinamico, possono essere forniti facilmente attraverso sistemi di CDN (Content Delivery Network) ovvero un network di server dislocato uniformemente nel globo. Una CDN è in grado di garantire tempi di risposta estremamente rapidi e senza disservizi: se uno dei server del network va giù, il traffico viene semplicemente rediretto verso un altro server. Questo semplice principio permette di accelerare e ottimizzare in tutto il mondo i siti internazionali che verranno caricati, anche se l'utente si trova dall'altra parte del mondo, più velocemente!
    • Se si utilizza un sistema di scrittura degli articoli collegato ad un servizio ad hoc come avviene ad esempio su GitHub Pages, è possibile mantenere traccia di tutte le modifiche ottenendo quindi anche una gestione delle versioni!
    • Basta comprimere la cartella con tutti i file, copiarla da qualche parte e il backup è fatto in un lampo!

    Insomma, rispetto al classico sistema dinamico CMS + Database + Hosting, i vantaggi nell'utilizzo di un sistema statico per il proprio sito web, si possono riassumere così: maggiore velocità di caricamento e minori costi, di soldi e di tempo!


    HOSTING

    Per fortuna esistono diversi servizi che ci permettono di pubblicare i nostri siti senza dover spendere cifre ingenti. Ci sono anche soluzioni gratuite tra cui le più rinomate sono:

    Comuqnue cercando in rete, se ne trovano molti altri.

    Scopriamo ora quali sono invece i dettagli delle varie soluzioni disponibili per ottenere il nostro sito web statico:


    CMS PLUGIN

    Utilizzando principalmente Drupal e Wordpress, una delle prime idee che mi sono venute è stata quella di cercare un eventuale plugin che convertisse il sito in automatico da dinamico a statico con un click... e l'ho trovato!

    WORDPRESS

    DRUPAL

    Il problema di questa soluzione è che resta comunque la necessità di dover mantenere un CMS online, e come abbiamo visto, essendo esposto a chiunque, potrebbe essere facilmente attaccato.

    Se ci pensi, in fondo, per i piccoli siti e blog, sono solo l'amministratore e pochi altri a dover accedere per aggiungere gli articoli, quindi i rischi di avere una pagina di login online, sono troppo alti rispetto ai vantaggi.

    Soluzione scartata!


    FLAT FILE CMS

    Questo tipo di CMS differisce da quello tradizionale perché per gestire il sito, usa la stessa organizzazione, ma non utilizza nessun tipo di database. Quindi è presente un pannello di amministrazione da cui settare tutte le opzioni e caricare le pagine... resta quindi il problema della possibilità di accesso da parte di sconosciuti!

    Inoltre, in alcuni casi, la pagina caricata deve comunque essere un minimo elaborata per ricompattare tutti i componenti da visualizzare: poco efficiente!

    Tra i prodotti più conosciuti fra i CMS statici ci sono:

    Anche in questo caso... soluzione scartata!


    STATIC SITE GENERATORS

    A differenza dei CMS, che di solito salvano i contenuti nei database ed elaborano il codice HTML lato server utilizzando linguaggi di scripting come PHP, i generatori di siti statici generano il codice HTML a livello locale, in offline, sul computer dello sviluppatore (o alternativamente nel cloud).

    Tutte le componenti essenziali a questo scopo vengono salvate in una directory ben strutturata, caratterizzata da una separazione rigorosa tra layout e contenuto. Ciò permette all’utente di apportare modifiche al design del progetto web, senza intaccare il contenuto pubblicato. A questo scopo la maggior parte dei generatori contiene un Template Engine che aiuta a creare i modelli di layout.

    Dalla riga di comando poi, si possono gestire l’installazione e il funzionamento. Il contenuto effettivo del sito è scritto in linguaggi di markup come Markdown e gli editor corrispondenti sono integrati nel software o se necessario vengono scaricati manualmente. Per pubblicare il sito web è necessario soltanto trasferire il codice web generato automaticamente nello spazio web desiderato. Usando i metadati all’inizio dei file, il generatore si assicura quindi che il sito web venga visualizzato nel browser del visitatore.

    Tutto molto bello peccato però che per far funzionare questo tipo di generatori spesso è necessario dover installare risorse aggiuntive, quali NPM, NodeJS, Python, ecc.

    E come se non bastasse, per poter effettuare delle modifiche al "motore" di sviluppo, è necessario conoscere diversi linguaggi di programmazione che spaziano da React a GO, oppure saper mettere le mani in framework come Ruby On Rails per applicazioni web scritto in Ruby.

    I prodotti più conosciuti fra i CMS statici sono:

    Puoi trovarne molti altri a questo link: https://www.staticgen.com/.

    Soluzione scartata!


    SOLUZIONE DEFINITIVA: PUBLII + GITHUB PAGES

    Alla fine ho optato per una soluzione diversa da quelle viste fino ad ora:

    PUBLII - https://getpublii.com/

    "Un nuovo CMS statico con interfaccia grafica, per creare siti Web HTML sicuri, veloci ed eleganti"

    Si tratta di un software Open Source scaricabile e compatibile con Windows, Mac e Linux:

    "For Windows, a 64-bit version of Windows 7, 8, 8.1 or 10 is required for installation. On Mac, a minimum of MacOS 10.9 or higher is required for installation. For Linux, the number of available builds means it's not possible to specify exact requirements, however Publii should work with all mainstream distributions."

    Permette anche di importare in maniera semplice, interi siti creati con Wordpress per poi convertirli in statici.

    Ovviamente consente una estesa personalizzazione: si possono creare temi propri e aggiungere nuove opzioni, oppure è possibile scaricare ed installare temi già pronti dalla pagina marketplace - https://marketplace.getpublii.com/.

    Utile anche il fatto di poter organizzare e gestire multisiti con un click: siti di cui è possibile effettuare il backup in un attimo! Basta infatti archiviare la cartella che li contiene.

    E' presente anche una buona documentazione - https://getpublii.com/docs/ - e sono già numerosi gli articoli che ne parlano positivamente.

    Per renderlo ancora più utile alle mie esigenze, grazie al programmino open source Universal Extractor 2, l'ho scompattato e trasformato Publii in una versione Portable: ora nella chiavetta USB ho tutto ciò che mi serve, sia l'editor che i siti su cui posso lavorare stando ovunque!

    Inoltre, da non sottovalutare che utilizzando Publii in locale, posso stare tranquillo, perché so che nessuno può accedere ai miei siti online, e, anche se qualcuno riuscisse ad accedere, non potrebbe fare molto, visto che si tratta di file statici!

    Insomma, Publii mi sembra davvero un programma molto valido e utile.

    Come hosting per ospitare i propri file, consiglio GitHub Pages - https://pages.github.com/ - su cui è presente anche un servizio di mantenimento delle versioni dei propri articoli.

    Una volta realizzato l'intero sito e pubblicato, testato con qualsiasi speedtest online è risultato... una bomba di velocità!

    Soluzione accettata!


    Se sei interessato, come prossimo articolo, potrei descrivere passo passo, la procedura per creare e modificare il proprio sito / blog personale... magari convertendolo da Wordpress / Drupal a Statico.


    TRUCCHETTO FINALE

    Prima della ricerca per la soluzione ottimale, visto che avevo fretta di convertire alcuni siti già esistenti in siti statici, ho trovato uno stratagemma: utilizzando il programmino gratuito httrack mi sono scaricato due siti sul PC in locale, uno creato con DRUPAL e l'altro con WORDPRESS, ed il programma me li ha trasformati benissimo in SITI STATICI senza nessun problema (ovviamente ho dovuto ritoccare la parte CONTATTI, ecc. scritti in PHP). Se ti serve, questo utile applicativo, per altro molto facile da usare, lo trovi qui: https://www.httrack.com/page/2/

    Andrea Millozzi's picture
    About the Author

    Appassionato di informatica fin da giovanissimo ho iniziato a programmare da autodidatta. Da allora il mio entusiasmo e la mia curiosità non hanno fatto che aumentare... Oggi mi diletto a realizzare siti internet, App e progetti hardware con Arduino, Raspberry Pi & Co.