Salut, voici ma configuration de rClone pour GoogleDrive avec PlexDrive. Y’a plusieurs solutions, y’a sans doute mieux mais c’est 100% fonctionnel. Cet article fait suite à la création de ce sujet sur MDD.
Je ne rentre pas dans les détails, je pars du principe que vous avez les bases Linux, que vous avez lu au sujet de/utilisez rClone/PlexDrive etc. Je me contente de partager mon setup (complet).
- OS : Debian/Ubuntu
- rClone permet d’envoyer/lire des fichiers sur GoogleDrive, tout en chiffrant. Google scanne ses stockages à la recherche de pédopornographie notamment. De mon point de vue « c’est bien » mais Google scanne, c’est ce qu’il faut retenir.
- PlexDrive : permet de générer un cache de son espace de stockage pour ne pas se faire bannir 24 par Google avec trop de requêtes
- Il faut installer rClone & le configurer comme je l’avais fait avec Amazon (là il faut prendre GDrive). Vous pouvez aussi utiliser votre rclone.conf
- Il faut installer PlexDrive et le configurer. Ensuite il va indexer le contenu de votre GDrive (s’il est vide c’est pas grave, vous gagnez du temps)
- Il faut installer fuse (sudo apt install fuse -y) et décommenter « user_allow_other » dans /etc/fuse.conf
Ça fonctionne avec un GDrive déjà rempli mais s’il n’est pas chiffré et que vous voulez le faire il faudra tout télécharger, configurer rClone avec un GDrive chiffré et renvoyer votre contenu.
Arborescence des dossiers (là encore c’est mon setup, vous pouvez faire autrement) :
- Tout se passe dans /home/aerya (par simplicité pour mes sauvegardes)
- Dossier /scripts : les scripts
- Dossier /System : les services, qui sont à mettre dans /etc/systemd/system
- Dossier /mnt : les montages
Dossier /mnt :
- /completed : -accessoire- dossier des fichiers complétés des clients BitTorrent/Usenet
- /encrypt : montage rClone déchiffré de GDrive (oui je sais, le nom veut dire exactement le contraire…)
- /gdrive : montage rClone chiffré de GDrive
- /incoming : -accessoire- dossier de DL en cours des client BT/NG
- /move : dossier monté via fuse dans /unionfs/. rClone aura pour mission d’envoyer tout son contenu du GDrive
- /plexdrive : dossier -cache- de Plexdrive
- /unionfs : dossier des montages via fuse de GDrive/Plexdrive/move. Plex, Radarr, Medusa etc lisent tout là-dedans. Le montage global permet d’avoir accès aux fichiers qu’ils soient stockés localement ou sur GDrive (de manière chiffrée.
- /watched : -accessoire- dossier des .torrent/.nzb qui sont chargés automatiquement dans les clients
rClone.conf
[gdrive] type = drive client_id = client_secret = token = {"access_token":"xxx"} [gcrypt] type = crypt remote = gdrive:/Enc filename_encryption = standard password = aaa password2 = bbb [crypt] type = crypt remote = /home/aerya/mnt/plexdrive/ filename_encryption = standard directory_name_encryption = true password = ccc password2 = ddd
Les scripts. A mettre dans /home/aerya/scripts & chmod a+x
rclone-encrypt.sh
#!/bin/bash rclone --uid=1000 --gid=1000 --allow-non-empty --allow-other mount crypt: /home/aerya/mnt/encrypt --size-only
rclone-en.sh
#!/bin/bash rclone --uid=1000 --gid=1000 --allow-non-empty --allow-other mount gcrypt: /home/aerya/mnt/.gcrypt --size-only
rclone.sh
#!/bin/bash rclone --uid=1000 --gid=1000 --allow-non-empty --allow-other mount gdrive: /home/aerya/mnt/gdrive --size-only
move.sh
#!/bin/bash LOG="/home/aerya/logs/rclone-en.log" #EXC1="/SD/**" EXC2="/Ratio/**" EXC3="/PreSeries/**" EXC4="/PreFilms/**" EXC5="/Repost/**" EXC6="/BACKUP/**" sleep 30 while true do echo "$(date "+%d.%m.%Y %T") RCLONE UPLOAD STARTED" | tee -a "$LOG" rclone move -c -v --copy-links --exclude='**partial~' --exclude="**_HIDDEN~" --exclude=".unionfs/**" --exclude=".unionfs-fuse/**" --exclude="$EXC2" --exclude="$EXC3" --exclude="$EXC4" --exclude="$EXC5" --exclude="$EXC6" --min-age 5m --drive-chunk-size 2G --bwlimit 8M --delete-after --delete-empty-src-dirs --transfers=4 --stats 5s --log-file="$LOG" /home/aerya/mnt/move gcrypt:/ sleep 480 find "/home/aerya/mnt/move/" -mindepth 2 -type d -empty -delete echo "$(date "+%d.%m.%Y %T") RCLONE UPLOAD ENDED" | tee -a "$LOG" done
Les services. A mettre dans /etc/systemd/system. Pour l’activer « sudo systemctl enable xxx » (sans le .service). Pour le lancer « sudo systemctl start xxx » (sans le .service)
move-en.service
[Unit] Description=Move Service Daemon After=multi-user.target [Service] Type=simple User=0 Group=0 ExecStart=/bin/bash /home/aerya/scripts/move-en.sh TimeoutStopSec=20 KillMode=process RemainAfterExit=yes Restart=always [Install] WantedBy=multi-user.target
plexdrive.service
[Unit] Description=PlexDrive5 Service After=network-online.target [Service] Type=simple ExecStart=/usr/local/bin/plexdrive mount --uid=1000 --gid=1000 -v 5 --fuse-options=allow_other,read_only,allow_non_empty_mount --config=/root/.plexdrive --cache-file=/root/.plexdrive/cache.bolt /home/aerya/mnt/plexdrive ExecStop=/bin/fusermount -uz /home/aerya/mnt/plexdrive RemainAfterExit=yes Restart=always RestartSec=5 [Install] WantedBy=default.target
rclone-encrypt.service
[Unit] Description=RClone Daemon After=multi-user.target [Service] Type=simple User=0 Group=0 ExecStart=/bin/bash /home/aerya/scripts/rclone-encrypt.sh ExecStop=/bin/fusermount -uz /home/aerya/mnt/encrypt TimeoutStopSec=20 KillMode=process RemainAfterExit=yes Restart=always [Install] WantedBy=multi-user.target
rclone-en.service
[Unit] Description=RClone Daemon After=multi-user.target [Service] Type=simple User=0 Group=0 ExecStart=/bin/bash /home/aerya/scripts/rclone-en.sh ExecStop=/bin/fusermount -uz /home/aerya/mnt/.gcrypt TimeoutStopSec=20 KillMode=process RemainAfterExit=yes Restart=always [Install] WantedBy=multi-user.target
rclone.service
[Unit] Description=RClone Daemon After=multi-user.target [Service] Type=simple User=0 Group=0 ExecStart=/bin/bash /home/aerya/scripts/rclone.sh ExecStop=/bin/fusermount -uz /home/aerya/mnt/gdrive TimeoutStopSec=20 KillMode=process RemainAfterExit=yes Restart=always [Install] WantedBy=multi-user.target
unionfs-encrypt.service
[Unit] Description=UnionFS Daemon Requires=plexdrive.service After=multi-user.target plexdrive.service [Service] Type=simple User=0 Group=0 ExecStartPre=/bin/sleep 10 ExecStart=/usr/bin/unionfs -o cow,allow_other,nonempty /home/aerya/mnt/move=RW:/home/aerya/mnt/encrypt=RO /home/aerya/mnt/unionfs ExecStop=/bin/fusermount -uz /home/aerya/mnt/unionfs TimeoutStopSec=20 KillMode=process RemainAfterExit=yes Restart=always [Install] WantedBy=multi-user.target
unionfs.service
[Unit] Description=UnionFS Daemon Requires=plexdrive.service After=multi-user.target plexdrive.service RequiresMountsFor=/home/aerya/mnt/plexdrive [Service] Type=simple User=0 Group=0 ExecStartPre=/bin/sleep 10 ExecStart=/usr/bin/unionfs -o cow,allow_other,nonempty /home/aerya/mnt/move=RW:/home/aerya/mnt/plexdrive=RO /home/aerya/mnt/unionfs ExecStop=/bin/fusermount -uz /home/aerya/mnt/unionfs TimeoutStopSec=20 KillMode=process RemainAfterExit=yes Restart=always [Install] WantedBy=multi-user.target
Enjoy :)
Salut!
Merci pour le partage, ça m’a incité à regarder tout ça de plus près.
A ce stade mes recherches m’amènent à tester Rclone Cache
https://bytesized-hosting.com/pages/rclone-gdrive
ça semble prometteur et plus simple à mettre en oeuvre
Salut, j’utilise rClone Cache pour les serveurs de streaming. Je suis resté avec PlexDrive pour le traitement des données.
Il semble manquer le contenu de move-en.sh, serait-il possible de l’ajouter ? Merci
J’ajoute ;)
Alors je suis peut être (certainement) un peu con, mais je ne vois toujours pas le move-en.sh ? J’ai raté un truc ?
Ma faute, je l’ai mal nommé :( C’est le move.sh
Ok merci :)
Bonjour,
ce billet est absolument génial et répond à toutes mes questions ! Sauf une … ;)
Je voulais qu’on puisse accéder au contenu de ma bibliothèque Plex en direct, par exemple directement via l’interface web de Google.
J’aimerais donc ne pas avoir à crypter le contenu de mon GDrive, est-ce possible ?
Merci !
Corentin
Salut et merci :) Tu peux tout à fait sauter l’étape de chiffrement et ne créer que le GDrive « normal ». Cependant il est recommandé de chiffrer pour éviter les risques liés au stockage de contenu piraté. De toute manière tu as besoin d’un serveur pour héberger Plex donc ça restera transparent pour la lecture via un client Web ou dur.… Lire la suite »
Bonjour, merci pour ce tuto même si j’ai galéré à l’installer (il faudrait préciser qu’il faut aussi installer le paquet unionfs). Je ne comprend pas l’intéret des services unionfs-encrypt et unionfs. Les deux services ne peuvent pas être actifs en même temps et si on décide d’activer unionfs-encrypt (qui permet de voir des fichiers décryptés), on ne bénéficie plus de… Lire la suite »
Hello,
Tout fonctionne en parallèle. Plexdrive est un cache (monté) de GDrive non chiffré. Donc unionfs contient à la fois /move (les fichiers que rClone doit envoyer sur le GDrive), et Plexdrive (le GDrive déhiffré). Le tout en lecture seule ce qui permet d’éviter de supprimer des contenu du GDrive par inadvertance.
Merci pour ta réponse. Dernière question, comment gères-tu les suppressions? Avec union-fs cleaner?
Je ne fais rien de spécial et RAS. Pour info j’utilise move et non copy pour rClone.
du -sh .unionfs-fuse/
1.1M .unionfs-fuse/
Bonjour, bien complexe tout ça,
je ne comprends pas quels sont tous ces dossiers exclus de /move lors du rclone : partial / hidden / unionfs / Ratio / PreSerues Prefilms Repost et backup. Je croyais avoir lu sur un autre post que PreFilms et PreSeries étaient dans /home/aerya/mnt
Salut, c’est mon orga en effet : PreFilms/Series : ne pas envoyer sur GDrive vu que les fichiers dedans sont traités par Radarr/Sonarr et envoyés dans /FILMS et /Series qui, eux, sont envoyés sur GDrive partial/hidden, ce sont les fichiers « en cours » de traitement par Rclone et/ou le cache Ratio : chez moi ça contient des fichiers qui ne servant… Lire la suite »
J’essaie de raccorder un peu tout tes systèmes c’est pas évident. J’ai viré mon installation Quickbox sur un « vieux » serveur qui tournait bien mais qui ramait un peu trop, chez Online.net (offre 10€) J’ai repris à zéro et décidé de passer uniquement par docker mais je suis docker-néophyte. Pour l’instant je me suis refait un conteneur ZNC+unrealIRC, un conteneur ruTorrent,… Lire la suite »
Tu vas en effet être limité par le Celeron et la RAM pour tous les logiciels mais aussi rClone, vu le chiffrement/déchiffrement à la volée qui demandent des ressources. En revanche comme machine de test c’est nickel ;) Pour info j’ai un Proxmox qui tourne avec Docker en parallèle et même dans des CT. Tu peux donc tester chez toi… Lire la suite »
Oui, à voir aussi avec une utilisation raisonnée. J’ai déjà une dizaine de To de stockage sur un xpenology sous proxmox. Cela dit pas forcément assez de ressources supplémentaires pour un rClone s’il est aussi gourmand. J’ai déconné, en fait j’ai craqué pour un serveur Ikoula Starter IKL 2.8 GHz, 8 Go DDR4, 2 To le pensant plus performant que… Lire la suite »
Le CPU est léger en effet :( https://www.cpubenchmark.net/cpu.php?cpu=Intel+Celeron+G3900+%40+2.80GHz&id=2706 On considère que pour Plex (1 flux 1080p) il faut un passmark de 2000 points. Là c’est ric-rac rien que pour Plex déjà. Ca va passer avec rClone mais ça va lagger, sans compter les accès disque dur aussi. Le mieux en hosting ces derniers mois est à voir chez HETZNER (mais… Lire la suite »
Mon parcours sur les sites (dont HETZNER), avec les histoires de peering est frustrant. Je vais reprendre fibre avec la fibre, en espérant avoir du 8GB/s et pas < 1 GB/s (ce que j’ai actuellement). J’ai prévu d’acheter du matériel 10GB, j’ai déjà un routeur Unifi Dream Machine. Par contre mon PC.Proxmox date de 2018 avec un Celeron G4560 et… Lire la suite »
C’est pas évident comme choix en effet mais je pense que tu as tout à gagner en faisant évoluer ton homelab.