Una breve guida su come installare duplicati su un server headless Ubuntu o Debian per effettuare tutti i nostri backup in sicurezza

Prima di tutto partiamo col dire cos’è duplicati (link al sito ufficiale). duplicati è un software opensouce multipiattaforma per effettuare il backup dei nostri dati in un’altra cartella del nostro PC (ad esempio un HD USB esterno) oppure in Cloud. Proprio sul cloud duplicati è molto forte, infatti oltre ai classici protocolli FTP, SFTP, WebDAV, supporta una moltitudine di altri servizi cloud. Giusto per citarne qualcuno Dropbox, Drive, S3 di Amazon AWS, BlackBlaze, box.com, Microsoft OneDrive e tantissimi altri. Il tutto gestito da una semplice interfaccia Web.

Veniamo ora all’installazione di duplicati su un server headless ubuntu (nel mio caso Ubuntu 16.04) per effettuare backup dei siti web e dei database SQL.

Prima di tutto creiamo le directory

mkdir /usr/lib/duplicati
cd /usr/lib/duplicati

Ora dalla pagina ufficiale di github scarichiamo l’ultima versione .zip (non il .deb) della versione che più desideriamo (experimental o canary)
Nel mio caso ho installato l’ultima canary

wget https://github.com/duplicati/duplicati/releases/download/v2.0.2.12-2.0.2.12_canary_2017-10-20/duplicati-2.0.2.12_canary_2017-10-20.zip
unzip duplicati-2.0.2.12_canary_2017-10-20.zip
rm duplicati-2.0.2.12_canary_2017-10-20.zip

Se volete usare LVM, eseguite il seguente comando:

chmod u+x /usr/lib/duplicati/lvm-scripts/*.sh

Creiamo lo script /usr/bin/duplicati-cli ed al suo interno incolliamo

#!/bin/bash
INSTALLDIR=/usr/lib/duplicati
export LD_LIBRARY_PATH="${INSTALLDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export MONO_PATH=$MONO_PATH:${INSTALLDIR}
 
EXE_FILE=${INSTALLDIR}/Duplicati.CommandLine.exe
APP_NAME=Duplicati.CommandLine
 
exec -a "$APP_NAME" mono "$EXE_FILE" "$@"

Ora creiamo /usr/bin/duplicati-server e al suo interno incolliamo

#!/bin/bash
INSTALLDIR=/usr/lib/duplicati
export LD_LIBRARY_PATH="${INSTALLDIR}${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
export MONO_PATH=$MONO_PATH:${INSTALLDIR}
 
EXE_FILE=${INSTALLDIR}/Duplicati.Server.exe
APP_NAME=DuplicatiServer
 
exec -a "$APP_NAME" mono "$EXE_FILE" "$@"

Fatto questo impostiamo i permessi di esecuzione 755

chmod 755 /usr/bin/duplicati-cli
chmod 755 /usr/bin/duplicati-server

Editiamo il file di configurazione (non esiste, dovrà essere creato) /etc/default/duplicati.

Al suo interno inseriamo

# Defaults for duplicati initscript
# sourced by /etc/init.d/duplicati
 
#
# This is a POSIX shell fragment
#
 
# Additional options that are passed to the Daemon.
DAEMON_OPTS="--webservice-port=8200 --webservice-interface=any"

con –webservice-port potremo scegliere la porta d’ascolto della nostra interfaccia web di amministrazione, mentre con –webservice-interface l’interfaccia d’ascolto. Impostando any sarà possibile accedere al pannello anche da remoto (nel mio caso è un server dedicato, quindi è necessario accedere in questo modo se non si vuole creare una VPN e metterlo in ascolto su questa interfaccia)

Ora non ci resta che impostare duplicati per avviarsi al boot

systemd setup for root

Creiamo il file /etc/systemd/system/duplicati.service e inseriamo

[Unit]
Description=Duplicati web-server
After=network.target
 
[Service]
EnvironmentFile=-/etc/default/duplicati
ExecStart=/usr/bin/duplicati-server $DAEMON_OPTS
 
[Install]
WantedBy=multi-user.target

e poi eseguiamo

systemctl enable duplicati

systemd setup for non privileged users

Creiamo il file /etc/systemd/system/duplicati@.service e inseriamo

[Unit]
Description=Duplicati web-server
After=network.target

[Service]
User=%I
EnvironmentFile=-/etc/default/duplicati
ExecStart=/usr/bin/duplicati-server $DAEMON_OPTS

[Install]
WantedBy=multi-user.target

e poi eseguiamo

systemctl enable duplicati@user

ATTENZIONE dovrete sostituire user con l’utenza con il quale volete che duplicati sia eseguito

ora non ci resta che aprire il browser e collegarci a

http://ipdelserver:8200

Buon backup a tutti!

Fonte