Plex Gdrive Plexdrive rclone gdrive fuse

De wiki mdd
Aller à la navigation Aller à la recherche

Prérequis

- rclone installé

curl https://rclone.org/install.sh | sudo bash

- 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
- plexdrive installé
Allez sur https://github.com/dweidenfeld/plexdrive/releases et choisissez la release qui correspond à votre environnement, par exemple amd64. Copiez l'adresse de la release. Puis sur le serveur :

sudo wget https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-amd64 -O /usr/bin/plexdrive
sudo chmod 755 /usr/bin/plexdrive

- Il faut des clés API google drive. Contrairement à rclone cache qui peut fonctionner sans, plexdrive en a besoin.

Configuration rclone

Pour fonctionner, nous allons devoir créer 3 configurations différentes de rclone, et une configuration de plexdrive.

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 de plexdrive

Il faut tout d'abord lancer plexdrive une première fois à la main pour terminer la configuration. Tout d'abord, créez le répertoire dans lequel monter le cache

sudo mkdir -p /mnt/plexdrive
sudo chown ${USER}: /mnt/plexdrive

Puis lancez plexdrive, et laissez vous guider :

plexdrive mount -o allow_other /mnt/plexdrive
1. Please go to https://console.developers.google.com/
2. Create a new project
3. Go to library and activate the Google Drive API
4. Go to credentials and create an OAuth client ID
5. Set the application type to 'other'
6. Specify some name and click create
7. Enter your generated client ID: 

Une fois votre client ID et votre secret rentré, plexdrive va donner un lien sur lequel il faudra se rendre pour terminer la configuration. Une fois terminé, il ne vous rendra pas la main, et il faudra taper ctrl+c.
Le fichier de configuration a été créé dans /home/${USER}/.plexdrive/config.json

Lancement automatique de plexdrive

Créez le fichier /etc/systemd/system/plexdrive.service (pensez à changer les chemin du répertoire à monter, et le chemin de configuration)

[Unit]
Description=Plexdrive
AssertPathIsDirectory=/mnt/plexdrive
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/plexdrive -c /home/steph/.plexdrive mount -v 2 /mnt/plexdrive
ExecStop=/bin/fusermount -u /mnt/plexdrive
Restart=on-abort

[Install]
WantedBy=default.target

puis

systemctl enable plexdrive
systemctl start plexdrive

Au bout de quelques instants, vous devriez voir le contenu de votre drive dans /mnt/plexdrive (avec éventuellement une partie chiffrée)

Déchiffrement du cache de plexdrive

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. Supposons que dans votre drive, seul le répertoire /crypt est chiffré, il faut donc créer une configuration de rclone qui va déchiffrer le répertoire /mnt/plexdrive/crypt
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-plex-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> /mnt/plexdrive/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.

Test de cette configuration

Si vous tapez la commande

rclone ls gdrive-plex-uncrypt:

Vous devriez vous en clair la liste des fichiers que vous avez envoyé sur votre google Drive chiffré :)

Montage du disque pour plex

Il faut tout d'abord créer le répertoire dans lequel vous souhaitez monter votre drive (par exemple /mnt/plexdrive-uncrypt), et ensuite taper la commande

sudo mkdir /mnt/plex-uncrypt
rclone mount gdrive-plex-uncrypt: /mnt/plexdrive-uncrypt

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

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/plexdrive-uncrypt

[Service]
Type=simple
ExecStart=/usr/bin/rclone mount \
        --config=/home/steph/.config/rclone/rclone.conf \
        --allow-other \
        --no-modtime \
        --drive-use-trash \
        --stats=0 \
        --checkers=16 \
        gdrive-plex-uncrypt:/ /mnt/plexdrive-uncrypt
ExecStop=/bin/fusermount -u /mnt/plexdrive-uncrypt
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/plexdrive-uncrypt) et le nom de la config à utiliser.
Une fois que c'est fait :

systemctl enable rclone
systemctl start rclone

Et vous devriez voir vos fichiers dans /mnt/plexdrive-uncrypt. 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...)