Aller au contenu

Backup avec rclone

Dans ma formation actuelle, l'accès numérique aux ressources est devenu obligatoire pour une epreuve.

Il est donc nécessaire de garantir une redondance du site sur lequel ces ressources sont hébergées. J'ai donc entrepris de créer un serveur de sauvegarde distant qui copie tous les dossiers de chaque utilisateur sur une machine hébergée chez moi.

Docker Compose :

version: '3'
services:
  nginx-proxy-manager:
    image: jlesage/nginx-proxy-manager
    ports:
      - "8181:8181"
      - "80:8080"
      - "443:4443"
    volumes:
      - "/docker/nginx:/config:rw"
    links:
      - apache
    restart: unless-stopped

  apache:
    image: httpd:latest
    restart: unless-stopped
    volumes:
    - /docker/www:/usr/local/apache2/htdocs/

Installation de rclone et de wireguard pour avoir un accès au réseau distant :

apt-get update & apt-get upgrade
apt-get install rclone wireguard

Configuration du client VPN Wireguard :

nano /etc/wireguard/wg0.conf

[Interface]
PrivateKey = XXXXXXXXXXXXXX
Address = 0.0.0.0/24
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820

[Peer]
PublicKey = XXXXXXXXXXXXXXX
AllowedIPs = 0.0.0.0
Endpoint = XXXXXXX:3480

Activation du VPN au démarrage :

sudo systemctl enable [email protected]
sudo systemctl daemon-reload

sudo systemctl start wg-quick@wg0
Source : https://www.ivpn.net/knowledgebase/linux/linux-autostart-wireguard-in-systemd/

Ajout des nodes sur Rclone :

rclone config

Script de backup pour la sauvegarde de tout les utilisateurs :

#/bin/bash

www=/docker/www/
default=/var/www/html

users="enzo guillaume matheo valentin bastien ritter thibault sysheberg thomasschmit karen"


for value in $users
do
   echo Save $value
   rclone sync -v $value:/var/www/html/ /docker/www/$value
done