Plex Gdrive rclone gdrive fuse

De wiki mdd
Aller à la navigation Aller à la recherche

Prérequis[modifier]

- rclone installé
curl https://rclone.org/install.sh - fuse installé
Pour Debian et cie : sudo apt install fuse Pour RedHat et cie : yum install fuse - il faut modifier le fichier /etc/fuse.conf pour décommenter la ligne user_allow_other

Configuration rclone[modifier]

Pour fonctionner, nous allons devoir créer 4 configurations différentes de rclone

Les deux premières (gdrive: et gdrive-crypt:) sont décrites ici : rclone bases pour linux. Vous devez appliquer cette documentation jusqu'à la partie Test de la configuration chiffrée incluse.


Configuration du cache[modifier]

Cette partie est un peu contre intuitive, mais importante. Nous allons créer un cache des fichiers chiffrés, donc a priori inutilisable directement. L'explication viendra plus tard :)
rclone config

e/n/d/r/c/s/q> n 
name> gdrive-cache-crypt 
Type of storage to configure. 
Enter a string value. Press Enter for the default (""). 
Choose a number from below, or type in your own value 
 
 7 / Cache a remote 
 \ "cache" 
 
Storage> 7 

Dans le "remote to cache", il faut mettre le nom de la configuration non chiffrée (que l'on a appelée gdrive:). N'oubliez pas les deux-points à la fin.

Remote to cache. 
Normally should contain a ':' and a path, eg "myremote:path/to/dir", 
"myremote:bucket" or maybe "myremote:" (not recommended). 
Enter a string value. Press Enter for the default (""). 
remote> gdrive: 

Laissez toutes les valeurs de plex à vide. Les données étant chiffrées, plex ne pourra pas les exploiter directement

The URL of the Plex server 
Enter a string value. Press Enter for the default (""). 
plex_url> 
The username of the Plex user 
Enter a string value. Press Enter for the default (""). 
plex_username> 
The password of the Plex user 
y) Yes type in my own password 
g) Generate random password 
n) No leave this optional password blank 
y/g/n> n 

Pour la suite, prenez les valeurs que j'ai mis ci-dessous (c'est modifiable plus tard)

The size of a chunk (partial file data). 
 
Use lower numbers for slower connections. If the chunk size is 
changed, any downloaded chunks will be invalid and cache-chunk-path 
will need to be cleared or unexpected EOF errors will occur. 
Enter a size with suffix k,M,G,T. Press Enter for the default ("5M"). 
Choose a number from below, or type in your own value 
 1 / 1MB 
 \ "1m" 
 2 / 5 MB 
 \ "5M" 
 3 / 10 MB 
 \ "10M" 
chunk_size> 2 
How long to cache file structure information (directory listings, file size, times etc). 
If all write operations are done through the cache then you can safely make 
this value very large as the cache store will also be updated in real time. 
Enter a duration s,m,h,d,w,M,y. Press Enter for the default ("6h0m0s"). 
Choose a number from below, or type in your own value 
 1 / 1 hour 
 \ "1h" 
 2 / 24 hours 
 \ "24h" 
 3 / 48 hours 
 \ "48h" 
info_age> 1 
The total size that the chunks can take up on the local disk. 
 
If the cache exceeds this value then it will start to delete the 
oldest chunks until it goes under this value. 
Enter a size with suffix k,M,G,T. Press Enter for the default ("10G"). 
Choose a number from below, or type in your own value 
 1 / 500 MB 
 \ "500M" 
 2 / 1 GB 
 \ "1G" 
 3 / 10 GB 
 \ "10G" 
chunk_total_size> 3 
Edit advanced config? (y/n) 
y) Yes 
n) No 
y/n> n 
Remote config 
-------------------- 
[gdrive-cache-crypt] 
type = cache 
remote = gdrive-crypt: 
chunk_size = 5M 
info_age = 1h0m0s 
chunk_total_size = 10G 
-------------------- 
y) Yes this is OK 
e) Edit this remote 
d) Delete this remote 
y/e/d> y 

Déchiffrement du cache[modifier]

Le chiffrement dans rclone est bidirectionnel : un fichier normal passé par le chiffrement va être chiffré, et un fichier chiffré qui passe par le chiffrement (avec les mêmes clés) va redevenir lisible

Maintenant que nous avons un joli cache chiffré, il faut le déchiffrer. Nous allons donc maintenant créer une dernière configuration pour déchiffrer ce cache.
Créer une nouvelle configuration de type crypt :

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n
name> gdrive-cache-uncrypt
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
 ...
 9 / Encrypt/Decrypt a remote
 \ "crypt"
 ...
Storage> 9

Dans le remote, saisissez la configuration du cache

Remote to encrypt/decrypt.
Normally should contain a ':' and a path, eg "myremote:path/to/dir",
"myremote:bucket" or maybe "myremote:" (not recommended).
Enter a string value. Press Enter for the default ("").
remote> gdrive-cache-crypt:/crypt

Dans les options de chiffrement des noms de fichiers et des dossiers, choisissez exactement la même configuration que pour gdrive-crypt (sinon, vous ne pourrez pas déchiffrer les données)

w to encrypt the filenames.
Enter a string value. Press Enter for the default ("standard").
Choose a number from below, or type in your own value
 1 / Don't encrypt the file names. Adds a ".bin" extension only.
 \ "off"
 2 / Encrypt the filenames see the docs for the details.
 \ "standard"
 3 / Very simple filename obfuscation.
 \ "obfuscate"
filename_encryption> 2
Option to either encrypt directory names or leave them intact.
Enter a boolean value (true or false). Press Enter for the default ("true").
Choose a number from below, or type in your own value
 1 / Encrypt directory names.
 \ "true"
 2 / Don't encrypt directory names, leave them intact.
 \ "false"
directory_name_encryption> 1

De même pour les parties saltphrase et password, il faut saisir exactement les mêmes informations que pour gdrive-crypt (sinon, vous ne pourrez pas déchiffrer les données)

Password or pass phrase for encryption.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank
y/g/n> y
Enter the password:
password:
Confirm the password:
password:
Password or pass phrase for salt. Optional but recommended.
Should be different to the previous password.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank
y/g/n> y
Enter the password:
password:
Confirm the password:
password:

Sauvegardez et quittez la configuration.

En source du déchiffrement, j'ai mis gdrive-cache-crypt:/crypt car dans ma conf, la partie chiffrée se trouve dans le répertoire /crypt. Adaptez en fonction de cette configuration !

Test de cette configuration[modifier]

Si vous tapez la commande rclone ls gdrive-cache-uncrypt: Vous devriez vous en clair la liste des fichiers que vous avez envoyé sur votre google Drive chiffré :)

Petit bout d'explication[modifier]

On aurait pu faire l'inverse (une configuration qui déchiffre, puis une configuration qui cache les données déchiffrées). Cette méthode fonctione aussi, mais est déconseillée par rclone, car elle génère plus d'appels API, et peut donc provoquer un ban. Pour ma part, je l'ai testée et je n'ai eu aucun souci.

Montage du disque pour plex[modifier]

Il faut tout d'abord créer le répertoire dans lequel vous souhaitez monter votre drive (par exemple /mnt/plexcache), et ensuite taper la commande rclone mount gdrive-cache-uncrypt: /mnt/plexcache Attention ! Cette commande ne vous rend pas la main. Allez dans un autre terminal, et vérifiez que vous voyez bien vos fichiers dans /mnt/plexcache. Une fois vérifié, fermez le nouveau terminal, revenez dans le premier terminal, et tapez ctrl+C pour reprendre la main et démonter le lecteur.
'SOYEZ PRUDENT !' Si il reste un terminal ouvert dans le répertoire monté au moment où vous démontez le lecteur, vous risquez de mal le démonter, et de ne plus pouvoir utiliser le répertoire de montage avant le prochain reboot !

Montage automatique du disque[modifier]

Une fois que vous avez fait le test à la main, nous allons voir comment monter automatiquement le répertoire.
Pour cela, il faut créer le fichier /etc/systemd/system/rclone.service

[Unit]
Description=Google Drive (rclone)
AssertPathIsDirectory=/mnt/plexcache

[Service]
Type=simple
User=steph
Group=steph
ExecStart=/usr/bin/rclone mount \
        --config=/home/steph/.config/rclone/rclone.conf \
        --allow-other \
        --no-modtime \
        --drive-use-trash \
        --stats=0 \
        --checkers=16 \
        gdrive-cache-uncrypt:/ /mnt/plexcache
ExecStop=/bin/fusermount -u /mnt/plexcache
Restart=always
RestartSec=10

[Install]
WantedBy=default.target

Pensez à changer ligne de config pour correspondre au chemin de l'utilisateur qui a créé les configs, et à adapter les chemins (ici /mnt/plexcache) et le nom de la config à utiliser. Pensez aussi à changer le user et le group pour correspondre à votre utilisateur.
Une fois que c'est fait : systemctl enable rclone systemctl start rclone Et vous devriez voir vos fichiers dans /mnt/plexcache. Vous pouvez maintenant ajouter cette source de données dans plex. Attention, il faut redémarrer plex après avoir ajouté une source de données distante (je ne sais pas pourquoi...)