Configurations

De wiki mdd
Aller à la navigation Aller à la recherche

Pour la partie suivante, nous allons nous baser sur cette configuration :

  • rutorrent : télécharge dans /home/seed/torrents. Une fois terminé, déplace avec les autotools dans /home/seed/complete/<label> (par exemple, films ou series)
  • plexdrive : Le répertoire plexdrive est monté dans /home/seed/mnt/plexdrive. Il comprend un répertoire "crypt" qui est chiffré, qui comprend lui même deux sous répertoires : films et series
  • rclone : le répertoire /home/seed/mnt/plexdrive/crypt est déchiffré par rclone, et monté dans /home/seed/mnt/uncrypt
  • unionfs : le répertoire /home/seed/mnt/unionfs est une fusion de /home/seed/mnt/plexdrive/crypt (répertoire de déchiffrement de rclone) en lecture seule, et de /home/seed/data (lecture écriture)

Tous ces répertoires appartiennent à l'utilisateur seed.

PLEXDRIVE[modifier]

Fichier de service pour monter automatiquement plexdrive : /etc/systemd/system/plexdrive.service

[Unit]
Description=Plexdrive
AssertPathIsDirectory=/home/seed/mnt/plexdrive
After=network-online.target
[Service]
Type=simple
User=seed
Group=seed
ExecStart=/usr/bin/plexdrive -c /home/seed/.plexdrive mount -v 2 /home/seed/mnt/plexdrive
ExecStop=/bin/fusermount -uz /home/seed/mnt/plexdrive
Restart=on-abort
[Install]
WantedBy=default.target

RCLONE[modifier]

Fichier de service pour déchiffrer automatiquement les données qui sont dans /home/seed/mnt/plexdrive/crypt Il faut avoir créé la conf plexdrive-uncrypt dans rclone

/etc/systemd/system/plexdrive-uncrypt.service

[Unit]
Description=Google Drive (rclone)
AssertPathIsDirectory=/home/seed/mnt/uncrypt
After=multi-user.target plexdrive.service

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

[Install]
WantedBy=default.target

UNIONFS[modifier]

/etc/systemd/system/unionfs.service

[Unit]
Description=UnionFS Daemon
Requires=plexdrive.service
After=multi-user.target plexdrive-uncrypt.service

[Service]
Type=simple
User=seed
Group=seed
ExecStartPre=/bin/sleep 10
ExecStart=/usr/bin/unionfs -o cow,allow_other,nonempty /home/seed/data=RW:/home/seed/mnt/uncrypt=RO /home/seed/mnt/unionfs
ExecStop=/bin/fusermount -uz /home/seed/mnt/unionfs
TimeoutStopSec=20
KillMode=process
RemainAfterExit=yes
Restart=always

[Install]
WantedBy=multi-user.target

CLOUDPLOW[modifier]

On veut copier ce qui se trouve dans /home/seed/data vers le remote "stockage-crypt:" (c'est une conf qui doit être créée dans rclone), entre 4h et 8h du matin Pour cela, on créé dans cloudplow un remote qui s'appelle google, qui utilisera la commande move de rclone. Puis on créé une section "uploader" qui reprend le nom du remote (google), avec un scheduler.

/opt/cloudplow/config.json

{
    "core": {
        "dry_run": false,
        "rclone_binary_path": "/usr/bin/rclone",
        "rclone_config_path": "/home/seed/.config/rclone/rclone.conf"
    },
    "hidden": {
        "/home/seed/mnt/unionfs/.unionfs-fuse": {
            "hidden_remotes": [
                "google"
            ]
        }
    },
    "nzbget": {
        "enabled": false,
        "url": "https://user:[email protected]"
    },
    "plex": {
        "enabled": false,
        "max_streams_before_throttle": 1,
        "notifications": false,
        "poll_interval": 60,
        "rclone": {
            "throttle_speeds": {
                "1": "50M",
                "2": "40M",
                "3": "30M",
                "4": "20M",
                "5": "10M"
            },
            "url": "http://localhost:7949"
        },
        "token": "",
        "url": "https://plex.domain.com"
    },
    "remotes": {
        "google": {
            "hidden_remote": "stockage-crypt:",
            "rclone_command": "move",
            "rclone_excludes": [
                "**partial~",
                "**_HIDDEN~",
                ".unionfs/**",
                ".unionfs-fuse/**"
            ],
            "rclone_extras": {
                "--checkers": 16,
                "--drive-chunk-size": "64M",
                "--skip-links": null,
                "--stats": "60s",
                "--transfers": 8,
                "--user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36",
                "--verbose": 1
            },
            "rclone_sleeps": {
                "Failed to copy: googleapi: Error 403: User rate limit exceeded": {
                    "count": 5,
                    "sleep": 25,
                    "timeout": 3600
                }
            },
            "remove_empty_dir_depth": 2,
            "sync_remote": "stockage-crypt:",
            "upload_folder": "/home/seed/data",
            "upload_remote": "stockage-crypt:"
        }
    },
    "syncer": {},
    "uploader": {
        "google": {
            "check_interval": 30,
            "exclude_open_files": false,
            "max_size_gb": 2,
            "opened_excludes": [
                "/downloads/"
            ],
            "schedule": {
                "allowed_from": "04:00",
                "allowed_until": "08:00",
                "enabled": true

            },
            "size_excludes": [
                "downloads/*"
            ]
        }
    }
}