Partager un compte Google - projetssd/ssdv2 GitHub Wiki

Partager un compte google

Définition : il y a un "propriétaire" et un "locataire" Le propriétaire doit déjà avoir un rclone configuré

Le propriétaire n'aura pas accès aux fichiers du locataire et vice-versa.

Le propriétaire peut supprimer les fichiers du locataire ou fermer son compte

Prérequis

Même si ce n'est pas obligatoire, il est FORTEMENT CONSEILLE d'utiliser les SA (service accounts) et cloudplow. En effet, propriétaire et locataire vont uploader des fichiers depuis le même compte, et on peut vite arriver à la limite des 750Go/jour

Le propriétaire doit configurer les SA via l'application ssd, et transmettre la totalité de son répertoire /opt/sa au locataire. Celui ci doit l'intégrer à son serveur, dans le chemin de son choix (/opt/sa s'il n'utilise pas déjà les sa, ou /opt/sa_proprio pour garde ses sa existants temporairement)

Méthode

Le propriétaire et le locataire doivent se synchroniser !

Le propriétaire doit envoyer une partie de son rclone.conf au locataire. Cette partie correspond à son drive non chiffré.

Par exemple

[seedbox_proprio]
client_id = xxxxxxxxxxxx-xxxxxxxxxxxx.apps.googleusercontent.com
client_secret = xxxxxxxxxxxxxxx
type = drive
scope = drive
token = {"access_token":"xxxx.xxxxxxxxxxxxxxxx","token_type":"Bearer","refresh_token":"1//0en0jLSWNB-xxxxxxxxxxxxxxxxxxxx","expiry":"2022-01-03T12:46:49.895145905+01:00"}
team_drive = xxxxxxxxx_AyyU0RUk9PVA

Le locataire rentre cette partie dans son propre rclone.conf, puis teste les accès, en faisant

rclone lsd seedbox_proprio

Normalement, l'accès doit être refusé. Il faut lancer la commande

rclone config reconnect seedbox_proprio:

Et se laisser guider. Au moment de la question "use autoconfig", répondre "N". Le locataire doit alors donner l'url au propriétaire, qui doit accepter l'autorisation. Le propriétaire doit alors donner le code retour au locataire, qui va le rentrer dans la console.

Une fois fait, la commande

rclone lsd seedbox_proprio

doit marcher.

Création d'un répertoire

Le propriétaire doit créer un répertoire dans son google drive, via l'interface graphique. Supposons que ce répertoire soit appelé "locataire"

Création d'un remote pour le locataire

Le locataire doit créer un nouveau remonte sur son rclone, de type "crypt", et donc la source sera "seedbox_proprio:/locataire" (penser à adapter le nom !) Le locataire choisit ses clés de chiffrement et ne les communique pas au propriétaire !

Dans notre exemple, le remote s'appelera seedbox_locataire_crypt

Prise en compte dans ssd

Sourcer l'environnement

cd /opt/seedbox-compose 
source profile.sh

lancer la commande

manage_account_yml rclone.remote seedbox_crypt

Migration des données

Si le locataire a des données dans son drive actuel, il doit les uploader dans son drive loué. Il faut pour cela utiliser cloudplow

Pour cela, il faut créer un nouveau remote dans le config.json de cloudplow : `

       "seedbox_locataire_crypt": {
            "hidden_remote": "",
            "rclone_excludes": [],
            "rclone_extras": {},
            "rclone_sleeps": {},
            "remove_empty_dir_depth": 2,
            "sync_remote": "seedbox_locataire_crypt:",
            "upload_folder": "",
            "upload_remote": ""
        }

Puis une section syncer

"syncer": {
        "actuel2locataire": {
            "rclone_extras": {
                "--bwlimit": "70M",
                "--checkers": 16,
                "--drive-chunk-size": "64M",
                "--stats": "60s",
                "--transfers": 8,
                "--verbose": 1
            },
            "service": "local",
            "sync_from": "nom_du_remote_actuel",
            "sync_interval": 26,
            "sync_to": "seedbox_locataire_crypt",
            "tool_path": "/usr/bin/rclone",
            "use_copy": true,
            "instance_destroy": false
          }

ATTENTION ! Cette opération ne prend pas à ce jour les SA, donc il y a risque de saturation des 750Go/jour, et il faudra compter plusieurs jours d'upload si il y a des grandes quantités à transférer.

Voir la doc : https://github.com/projetssd/ssdv2/wiki/Cloudplow

Migration des réglages

rclone

Une fois les données transférées, il "suffit" de modifier le fichier /etc/systemd/system/rclone.conf pour mettre le bon nom du remote Une fois que c'est fait

systemctl daemon-reload
systemctl restart rclone

puis

ls /mnt/rclone

pour vérifier que tout est ok.

Une fois que c'est fait :

sudo systemctl restart mergerfs
sudo docker restart plex radarr sonarr autoscan

cloudplow

Supprimer si nécessaire la partie syncer, et le remote qu'on a ajouté pour la partie transfert des données. Dans le remote "de base", changer le nom du remote rclone

sudo systemctl restart cloudplow