Aggiornare Write Freely

Da qualche mese sto testando l’applicazione WriteFreely, installata su un VPS e dedicata ad un progetto che ormai porto avanti da un bel po’ di tempo. La versione di WriteFreely in esecuzione è la 0.10.0, ma di recente sono stati rilasciati degli aggiornamenti importanti. Al momento in cui scrivo, l’ultima release è la 0.11.2, pertanto ho deciso di aggiornare l’applicazione anche sul mio VPS.

Backup di file e database

Prima di procedere all’aggiornamento, però, è buona norma eseguire un backup dell’installazione attuale. Trattandosi di una applicazione che fa uso di un database come backend per i dati ed alcune impostazioni, il backup riguarda sia i file su disco (vale a dire la directory in cui è installata l’applicazione), sia l’istanza di database corrispondente.

Prima di procedere al backup, però, è preferibile arrestare temporaneamente il servizio writefreely per evitare che si verifichino modifiche proprio durante l’operazione, anche se nel mio caso è superfluo in quanto al momento sono l’unico utente del servizio:

systemctl status writefreely.service 
 ● writefreely.service - WriteFreely Instance
    Loaded: loaded (/etc/systemd/system/writefreely.service; enabled; vendor preset: enabled)
    Active: active (running) since Sat 2019-12-21 20:03:01 CET; 1 weeks 2 days ago
  Main PID: 28112 (writefreely)
     Tasks: 7 (limit: 2303)
systemctl stop writefreely.service

Backup dei file

Per il backup dei file, ci avvaliamo del caro vecchio comando tar:

tar -pcvf /root/writefreely-backup-$(date +%Y%m%d).tar writefreely

Con il precedente comando viene creato un archivio nella directory /root contenente un backup della directory writefreely. Siccome il file .tar è piuttosto ingombrante (quasi 150MB), provvediamo a comprimerlo con il comando bzip2:

cd /root
bzip2 writefreely-backup-20191231.tar

Ovviamente l’operazione di compressione dell’archivio può essere eseguita contestualmente alla sua creazione, passando l’opzione -z (per comprimere con gzip) o -j (per comprimere con bzip2).

Backup del database

Anche per il backup del database ci affidiamo ad un tool assolutamente collaudato, vale a dire mysqldump:

mysqldump -u root -p writefreely > /root/writefreely-db-backup$(date +%Y%m%d).sql

Anche in questo caso, il file di backup viene archiviato nella directory /root, marcato con la data corrente.

Aggiornamento dell’applicazione

Passiamo ora all’aggiornamento dell’applicazione vera e propria, che consiste semplicemente nel replacement dei file vecchi con quelli della nuova versione, e nell’invocazione di uno script per la migrazione del database.

Scarichiamo l’archivio della nuova release nella directory in cui è presente già la vecchia installazione, rinominiamo la vecchia installazione e poi scompattiamo l’archivio, creando la nuova directory writefreely:

wget https://github.com/writeas/writefreely/releases/download/v0.11.2/writefreely_0.11.2_linux_amd64.tar.gz
mv writefreely writefreely_old
tar xzvf writefreely_0.11.2_linux_amd64.tar.gz

Dopo esserci assicurati che la nuova directory (e tutto ciò che contiene) sia di proprietà dell’utente corretto (ad esempio root, oppure più correttamente un utente non privilegiato con permessi sufficienti), copiamo il file di configurazione dalla vecchia installazione alla nuova, nonché il contenuto della directory keys:

cp writefreely_old/config.ini writefreely/
cp -R writefreely_old/keys/* writefreely/keys/

Dopo aver verificato il proprietario di questi file appena copiati, facciamo ripartire il servizio con:

systemctl start writefreely.service

osservando eventuali errori o warning. Se tutto fila liscio, possiamo eseguire lo script di migrazione del database:

cd writefreely
./writefreely --migrate


 2019/12/31 17:36:18 Loading config.ini configuration…
 2019/12/31 17:36:18 Connecting to mysql database…
 2019/12/31 17:36:18 Migrating to V3: support users suspension
 2019/12/31 17:36:20 Closing database connection…

Fatto. L’applicazione è ora aggiornata ed in esecuzione.

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi