Sauvegarder avec rclone

rclone est l'outil de référence pour sauvegarder, synchroniser et copier des fichiers vers un stockage en ligne. Avec 014drive-rclone, il fonctionne avec 014-Drive en gardant le chiffrement de bout en bout : vos fichiers sont chiffrés sur votre ordinateur avant de partir, comme avec l'application web.

Fonctionne sous Windows, Linux et avec Docker.

Comment ça marche

rclone ne sait pas chiffrer à la manière de 014-Drive. 014drive-rclone est une petite passerelle qui tourne sur votre ordinateur : rclone lui envoie et lui demande des fichiers comme à un serveur WebDAV, et c'est elle qui chiffre, déchiffre et dialogue avec 014-Drive.

rclone  ⇄  014drive-rclone (sur votre ordinateur, chiffrement)  ⇄  014-Drive

Conséquence importante : la passerelle doit tourner pendant que rclone travaille. Deux façons de faire :

014drive-rclone run -- <commande rclone> 014drive-rclone serve
Principe démarre la passerelle le temps de la commande, puis l'arrête passerelle permanente
Utilisation de rclone via run uniquement rclone directement, comme d'habitude
Idéal pour sauvegardes, tâches planifiées usage interactif, montage, Docker

Dans le doute, utilisez run : il n'y a rien d'autre à lancer.

Un accès limité à un dossier

Lors de la configuration, vous choisissez un dossier de votre espace (par exemple Sauvegardes/PC-bureau). L'accès créé ne permet rien d'autre :

L'accès apparaît dans Mes partages sur le site, sous le nom « Accès rclone ». Le révoquer coupe rclone immédiatement. Pour sauvegarder plusieurs dossiers séparément, créez un accès par dossier (voir plus bas).

Indiquer / comme dossier donne accès à tout l'espace : à réserver aux cas où c'est vraiment nécessaire.

Installation

Windows

Dans PowerShell :

irm https://update-014drive.pages.dev/rclone/install.ps1 | iex

Le programme est installé dans %LOCALAPPDATA%\014drive-rclone et ajouté à votre PATH : ouvrez un nouveau terminal pour l'utiliser. Installez aussi rclone :

winget install Rclone.Rclone

Linux

curl -fsSL https://update-014drive.pages.dev/rclone/install.sh | sh

Installé dans /usr/local/bin (en root) ou ~/.local/bin. Les processeurs x86_64 et ARM64 (Raspberry Pi 4/5, NAS, serveurs ARM) sont pris en charge. rclone : curl https://rclone.org/install.sh | sudo bash, ou le paquet de votre distribution.

Installation manuelle (si le script échoue)
ARCH=x86_64   # ou aarch64
curl -fsSL https://update-014drive.pages.dev/rclone/014drive-rclone-linux-$ARCH -o /usr/local/bin/014drive-rclone
chmod 755 /usr/local/bin/014drive-rclone
014drive-rclone --version

L'empreinte SHA-256 de chaque binaire figure dans https://update-014drive.pages.dev/rclone/latest.json.

Image Docker

Image ghcr.io/antoinerz1/014-drive-rclone (amd64 et arm64) : rclone officiel et la passerelle, déjà réunis. Voir Docker plus bas.

Configuration

014drive-rclone setup
  1. Saisissez votre nom d'utilisateur et votre mot de passe 014-Drive (le mot de passe reste sur votre ordinateur et n'est pas conservé).
  2. Choisissez le dossier auquel rclone aura accès. Il est créé s'il n'existe pas. Par défaut : Sauvegardes/<nom de l'ordinateur>.
  3. L'accès est enregistré sous le nom 014drive, et si rclone est installé, un remote rclone du même nom est créé.

Dans les commandes rclone, 014drive: désigne alors le dossier choisi (pas la racine de votre espace) : 014drive:Photos est le sous-dossier Photos de ce dossier.

Options utiles :

Option Effet
--folder "Sauvegardes/PC" dossier, sans le demander
--name photos nom de l'accès et du remote (lettres, chiffres et _)
--read-only accès en lecture seule (restauration uniquement)
--username moi nom d'utilisateur, sans le demander

Sauvegarder

Toutes les commandes rclone s'utilisent après 014drive-rclone run -- :

# Copier (n'efface jamais rien dans 014-Drive)
014drive-rclone run -- copy "D:\Documents" 014drive:Documents --progress

# Synchroniser : 014-Drive devient identique au dossier local (les fichiers supprimés localement le sont aussi)
014drive-rclone run -- sync "D:\Documents" 014drive:Documents --progress

# Lister, vérifier, restaurer
014drive-rclone run -- lsl 014drive:
014drive-rclone run -- check "D:\Documents" 014drive:Documents
014drive-rclone run -- copy 014drive:Documents "D:\Restauration"

Sous Linux, mêmes commandes avec des chemins comme /home/moi/Documents.

sync supprime dans la destination ce qui n'existe plus à la source. Pour une sauvegarde qui conserve tout, préférez copy, ou sync avec --backup-dir 014drive:Anciennes-versions. Essayez d'abord avec --dry-run.

Ce que rclone voit de 014-Drive :

Un fichier ajouté par une autre application (site web, téléphone) n'a pas d'empreinte et prend sa date d'envoi.

Utiliser rclone directement (passerelle permanente)

Lancez la passerelle et laissez-la tourner :

014drive-rclone serve

Tant qu'elle tourne, rclone s'utilise normalement, avec le remote créé par setup :

rclone ls 014drive:
rclone sync ~/Documents 014drive:Documents

Si rclone répond « connection refused » (ou « La connexion a été refusée ») sur 127.0.0.1:8014, c'est que la passerelle ne tourne pas : lancez 014drive-rclone serve, ou passez par 014drive-rclone run -- ….

Démarrage automatique sous Linux (systemd)

# ~/.config/systemd/user/014drive-rclone.service
[Unit]
Description=Passerelle 014-Drive pour rclone
After=network-online.target

[Service]
ExecStart=%h/.local/bin/014drive-rclone serve
Restart=on-failure

[Install]
WantedBy=default.target
systemctl --user daemon-reload
systemctl --user enable --now 014drive-rclone
loginctl enable-linger "$USER"     # pour qu'elle tourne même sans session ouverte

Monter 014-Drive comme un disque

# Windows (nécessite WinFsp : winget install WinFsp.WinFsp) : lecteur Z:
014drive-rclone run -- mount 014drive: Z: --vfs-cache-mode writes

# Linux (nécessite fuse3)
mkdir -p ~/014drive
014drive-rclone run -- mount 014drive: ~/014drive --vfs-cache-mode writes

Le disque reste disponible tant que la commande tourne (Ctrl+C pour démonter). Les fichiers sont lus à la demande, morceau par morceau ; une écriture est chiffrée et envoyée à la fermeture du fichier. Adapté aux documents, photos, vidéos et archives, pas aux bases de données ni aux fichiers modifiés en continu.

Sauvegardes automatiques

Windows : Planificateur de tâches

Tous les jours à 2 h, en tant que vous-même (l'accès est enregistré dans votre profil) :

$exe = "$env:LOCALAPPDATA\014drive-rclone\014drive-rclone.exe"
$log = "$env:LOCALAPPDATA\014drive-rclone\sauvegarde.log"
schtasks /Create /SC DAILY /ST 02:00 /TN "Sauvegarde 014-Drive" `
  /TR "`"$exe`" run -- sync `"D:\Documents`" 014drive:Documents --log-file `"$log`""

L'ordinateur doit être allumé et votre session ouverte à cette heure (sinon, cochez « Exécuter même si l'utilisateur n'est pas connecté » dans les propriétés de la tâche).

Linux : cron

crontab -e
# Tous les jours à 2 h :
0 2 * * * $HOME/.local/bin/014drive-rclone run -- sync $HOME/Documents 014drive:Documents --log-file $HOME/014drive-sauvegarde.log

L'accès est enregistré pour l'utilisateur qui a lancé setup : lancez setup avec le même utilisateur que la tâche (root compris).

Plusieurs dossiers

Chaque accès a son nom et son dossier :

014drive-rclone setup --name photos --folder "Photos/Sauvegarde"
014drive-rclone setup --name travail --folder "Travail"
014drive-rclone list

run les rend tous disponibles (photos:, travail:, …) ; --remote photos n'en garde qu'un.

Docker

Le jeton d'un accès s'obtient sur un ordinateur où setup a été fait :

014drive-rclone token 014drive

Il commence par 014d1_. Gardez-le secret : il donne accès au dossier de l'accès (révocable dans Mes partages).

Sauvegarde ponctuelle

docker run --rm --pull always \
  -e DRIVE014_TOKEN=014d1_... \
  -v /chemin/a/sauvegarder:/data:ro \
  ghcr.io/antoinerz1/014-drive-rclone sync /data 014drive:Sauvegarde

Tout ce qui suit le nom de l'image est une commande rclone ; le remote 014drive: est prêt. --pull always utilise toujours la dernière version.

Passerelle permanente

Pour un rclone installé sur la machine ou dans un autre conteneur :

# compose.yml — jeton dans un fichier .env : DRIVE014_TOKEN=014d1_...
services:
  gateway:
    image: ghcr.io/antoinerz1/014-drive-rclone:latest
    command: ["serve"]
    environment:
      DRIVE014_TOKEN: ${DRIVE014_TOKEN}
    ports:
      - "127.0.0.1:8014:8014"
    restart: unless-stopped
    labels:
      com.centurylinklabs.watchtower.enable: "true"

  watchtower:
    image: containrrr/watchtower:1.7.1
    command: ["--label-enable", "--cleanup", "--interval", "21600"]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    restart: unless-stopped

Remote rclone correspondant : type WebDAV, URL http://127.0.0.1:8014/ (ou http://gateway:8014/ depuis un conteneur du même fichier), vendor owncloud, utilisateur 014drive, mot de passe = le jeton.

Volume Docker

Avec le plugin de volume de rclone (hôte Linux avec FUSE, pas Docker Desktop), une fois la passerelle permanente lancée :

# Une fois : le plugin
sudo mkdir -p /var/lib/docker-plugins/rclone/config /var/lib/docker-plugins/rclone/cache
docker plugin install rclone/docker-volume-rclone:amd64 args="-v" --alias rclone --grant-all-permissions

# Le jeton au format attendu par rclone (lu sur l'entrée standard, il n'apparaît pas dans l'historique)
printf '%s' "014d1_..." | docker run --rm -i --entrypoint rclone ghcr.io/antoinerz1/014-drive-rclone obscure -

# Le volume
docker volume create -d rclone \
  -o type=webdav -o webdav-url=http://127.0.0.1:8014/ -o webdav-vendor=owncloud \
  -o webdav-user=014drive -o webdav-pass=<résultat précédent> \
  -o vfs-cache-mode=writes \
  sauvegardes014

docker run --rm -v sauvegardes014:/donnees alpine ls /donnees

Sur un hôte ARM, utilisez rclone/docker-volume-rclone:arm64.

Mises à jour

Commandes

Commande Rôle
setup crée un accès (connexion, choix du dossier) et le remote rclone
run -- <commande rclone> lance rclone avec la passerelle pour la durée de la commande
serve passerelle permanente (--addr, par défaut 127.0.0.1:8014)
list accès enregistrés sur cet ordinateur
token <nom> jeton d'un accès (pour Docker)
remove <nom> oublie un accès sur cet ordinateur (il reste valable : révoquez-le dans Mes partages)
update installe la dernière version

Réglages (option ou variable d'environnement) :

Option Variable Défaut Effet
--chunks DRIVE014_CHUNKS 4 morceaux de 19 Mio transférés en parallèle par fichier
--uploads DRIVE014_UPLOADS 2 envois simultanés
--rclone DRIVE014_RCLONE rclone du PATH programme rclone à utiliser

Mémoire utilisée pendant les envois : environ envois × morceaux × 40 Mio (320 Mio par défaut). Sur une petite machine, réduisez --chunks et --uploads.

Dépannage

Problème Solution
connection refused / connexion refusée sur 127.0.0.1:8014 la passerelle ne tourne pas : 014drive-rclone run -- … ou 014drive-rclone serve
014drive-rclone ls : unrecognized subcommand les commandes rclone passent par run : 014drive-rclone run -- ls 014drive:
401 ou « Jeton d'accès refusé » l'accès a été révoqué : refaites 014drive-rclone setup
« rclone est introuvable » installez rclone, ou indiquez son chemin avec --rclone
Commande introuvable après l'installation (Windows) ouvrez un nouveau terminal (PATH mis à jour)
Accès à un autre dossier créez un autre accès : setup --name … --folder …
Journal détaillé DRIVE014_LOG=debug pour la passerelle, -vv pour rclone