This repository has been archived by the owner on Jul 20, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
61 additions
and
49 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,47 +1,31 @@ | ||
# Auto-Update your Plex Media Server on your Synology NAS [French Edition] | ||
# Auto-Update your Plex Media Server on your DMS 7 Synology NAS [French Edition] | ||
|
||
## Description | ||
Maintenez automatiquement votre serveur Plex à jour sur votre NAS Synology. | ||
Maintenez automatiquement votre serveur Plex à jour sur votre NAS Synology DSM 7 uniquement. | ||
|
||
## Remerciements | ||
Ce script est basé sur les travaux de [martinorob](https://github.com/martinorob/plexupdate) que j'ai traduit en français et où j'ai ajouté des améliorations mineures pour administrer l'accès au volume d'installation de Plex automatiquement. Merci à lui de partager son travail sur [le forum de Plex](https://forums.plex.tv/t/script-to-auto-update-plex-on-synology-nas-rev6/479748). | ||
Ce script est basé sur les travaux de [mj0nsplex](https://forums.plex.tv/u/j0nsplex), [martinorob](https://github.com/martinorob/plexupdate) et de [michealespinola](https://github.com/michealespinola/syno.plexupdate). J'ai traduit et modifié leurs scripts pour mettre à jour automatiquement Plex sur DSM 7. Dans un futur proche je ferai certainement un fork du script de [michealespinola](https://github.com/michealespinola/syno.plexupdate) pour le rendre multi-version de DSM. | ||
|
||
## Pré-requis | ||
1. Ajouter la clé publique de signature de paquets de Plex au Synology NAS Package Center. Pour cela, je vous invite à suivre [le tutoriel sur le site de Plex.](https://support.plex.tv/articles/205165858-how-to-add-plex-s-package-signing-public-key-to-synology-nas-package-center/) Sans cela, vous obtiendrez une erreur [289] lors de la mise à jour automatique. | ||
|
||
1. Modifier le paramètre de ```Niveau de confiance``` de l'onglet ```Général``` des ```Paramètres``` du ```Centre de paquets``` sur la valeur ```Synology Inc. et les éditeurs de confiance```. | ||
|
||
|
||
![Centre de paquets - Accueil](image/package-center.jpg) | ![Centre de paquets - Niveau de confiance](image/package-center-confidence.jpg) | ||
------------ | ------------- | ||
|
||
3. Prendre note des groupes utilisateurs que vous souhaitez qui accèdent ou non au volume d'installation de Plex (pour ma part, j'autorise seulement les groupes administrators et video à accéder à ce volume). Ce volume est strictement utilisé pour le fonctionnement du serveur Plex et non pour l'accès à vos fichiers via votre client Plex. C'est pourquoi il est strictement recommandé que seul les utilisateurs avertis puissent y accéder. | ||
|
||
3. Préparer un emplacement sur le NAS où stocker le fichier du script. | ||
1. Préparer un emplacement sur le NAS où stocker le fichier du script. | ||
|
||
## Utilisation | ||
1. Télécharger le script sur votre ordinateur. | ||
|
||
1. Ouvir le script avec votre éditeur de fichier préféré puis, modifier ```*YOUR_UNAUTHORIZED_USERS_GROUP*``` par les groupes d'utilisateurs dont **vous ne souhaitez pas autoriser** l'accéder au volume d'installation du NAS. | ||
|
||
1. Modifier ```*YOUR_AUTHORIZED_USERS_GROUP*``` par les groupes d'utilisateurs dont **vous souhaitez autoriser** l'accéder au volume d'installation du NAS. | ||
|
||
*Notez que les groupes commencent par un @, tandis que les utilisateurs non. Chaque groupe et utilisateur doivent être séparés d'une virgule et d'un espace. Ex. : ```@groupe1, @groupe2, utilisateur1, utilisateur2```* | ||
|
||
4. Déposer votre script à l'emplacement que vous aurez précédemment défini sur votre NAS. | ||
1. Déposer votre script à l'emplacement que vous aurez précédemment défini sur votre NAS. | ||
|
||
4. Ouvrir ```Planificateur de tâches``` via le ```Panneau de configuration``` *(uniquement visible en mode avancé)*. | ||
1. Ouvrir ```Planificateur de tâches``` via le ```Panneau de configuration``` *(uniquement visible en mode avancé)*. | ||
|
||
4. Cliquer sur ```Créer``` > ```Tâche planifiée``` > ```Script défini par l'utilisateur``` | ||
1. Cliquer sur ```Créer``` > ```Tâche planifiée``` > ```Script défini par l'utilisateur``` | ||
|
||
4. Dans l'onglet ```Général```, nommer votre tâche et définissez l'utilisateur sur ```root```. | ||
1. Dans l'onglet ```Général```, nommer votre tâche et définissez l'utilisateur sur ```root```. | ||
|
||
4. Dans l'onglet ```Programmer```, choissisez la fréquence d'éxécution de votre tâche. | ||
1. Dans l'onglet ```Programmer```, choissisez la fréquence d'éxécution de votre tâche. | ||
|
||
4. Dans l'onglet ```Paramètres de tâche```, coller le code suivant ```bash /*SCRIPT_EMPLACEMENT*/plex_update.sh```. | ||
1. Dans l'onglet ```Paramètres de tâche```, coller le code suivant ```bash /*SCRIPT_EMPLACEMENT*/plex_update.sh```. | ||
|
||
4. Remplacer ```*SCRIPT_EMPLACEMENT*``` par l'emplacement de votre script sur votre NAS et cliquer sur OK. | ||
1. Remplacer ```*SCRIPT_EMPLACEMENT*``` par l'emplacement de votre script sur votre NAS et cliquer sur OK. | ||
|
||
4. Si vous souhaitez recevoir des courriels à chaque execution du script, cochez la case ```Envoyer les détails d'exécution par e-mail```. | ||
1. Si vous souhaitez recevoir des courriels à chaque execution du script, cochez la case ```Envoyer les détails d'exécution par e-mail```. | ||
|
||
4. Enjoy ! | ||
1. Enjoy ! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,31 +1,59 @@ | ||
#!/bin/bash | ||
|
||
# @source @martinorob https://github.com/martinorob/plexupdate | ||
# @author @loicdugay https://github.com/loicdugay | ||
# Author @loicdugay https://github.com/loicdugay | ||
# Instruction sur https://github.com/loicdugay/synology-plex-auto-update | ||
# | ||
# Merci à | ||
# @mj0nsplex https://forums.plex.tv/u/j0nsplex | ||
# @martinorob https://github.com/martinorob/plexupdate | ||
# @michealespinola https://github.com/michealespinola/syno.plexupdate | ||
|
||
# Vérification ROOT | ||
if [ "$EUID" -ne "0" ]; | ||
then | ||
printf " %s\n" "Ce script DOIT être exécuté avec les persmissions root." | ||
/usr/syno/bin/synonotify PKGHasUpgrade '{"%PKG_HAS_UPDATE%": "Le script de mise à jour automatique de Plex Media Server a échoué.\n\nCe script DOIT être exécuté avec les persmissions root."}' | ||
printf "\n" | ||
exit 1 | ||
fi | ||
|
||
# Vérification de la version de DSM | ||
DSMVersion=$(cat /etc.defaults/VERSION | grep -i 'majorversion=' | cut -d"\"" -f 2) | ||
/usr/bin/dpkg --compare-versions 7 gt "$DSMVersion" | ||
if [ "$?" -eq "0" ]; | ||
then | ||
printf " %s\n" "Ce script nécessite DSM 7 pour être installé." | ||
/usr/syno/bin/synonotify PKGHasUpgrade '{"%PKG_HAS_UPDATE%": "Le script de mise à jour automatique de Plex Media Server a échoué.\n\nCe script nécessite DSM 7 pour être installé."}' | ||
printf "\n" | ||
exit 1 | ||
fi | ||
|
||
# Recherche de la version de Plex Media Server | ||
mkdir -p /tmp/plex/ > /dev/null 2>&1 | ||
token=$(cat /volume1/Plex/Library/Application\ Support/Plex\ Media\ Server/Preferences.xml | grep -oP 'PlexOnlineToken="\K[^"]+') | ||
token=$(cat /volume1/@apphome/PlexMediaServer/Plex\ Media\ Server/Preferences.xml | grep -oP 'PlexOnlineToken="\K[^"]+') | ||
url=$(echo "https://plex.tv/api/downloads/5.json?channel=plexpass&X-Plex-Token=$token") | ||
jq=$(curl -s ${url}) | ||
newversion=$(echo $jq | jq -r .nas.Synology.version) | ||
newversion=$(echo $jq | jq -r '.nas."Synology (DSM 7)".version') | ||
newversion=$(echo $newversion | grep -oP '^.+?(?=\-)') | ||
curversion=$(synopkg version "PlexMediaServer") | ||
curversion=$(echo $curversion | grep -oP '^.+?(?=\-)') | ||
|
||
echo Version disponible : $newversion | ||
curversion=$(synopkg version "Plex Media Server") | ||
echo Version installée : $curversion | ||
echo Version installée : $curversion | ||
|
||
if [ "$newversion" != "$curversion" ] | ||
then | ||
echo Nouvelle version disponible, installation en cours : | ||
/usr/syno/bin/synonotify PKGHasUpgrade '{"[%HOSTNAME%]": $(hostname), "[%OSNAME%]": "Synology", "[%PKG_HAS_UPDATE%]": "Plex", "[%COMPANY_NAME%]": "Synology"}' | ||
CPU=$(uname -m) | ||
url=$(echo "${jq}" | jq -r '.nas.Synology.releases[] | select(.build=="linux-'"${CPU}"'") | .url') | ||
/bin/wget $url -P /tmp/plex/ | ||
/usr/syno/bin/synopkg install /tmp/plex/*.spk | ||
sleep 30 | ||
/usr/syno/bin/synopkg start "Plex Media Server" | ||
rm -rf /tmp/plex/* | ||
synoshare --setuser Plex NA = @*YOUR_UNAUTHORIZED_USERS_GROUP* >/dev/null | ||
synoshare --setuser Plex RW = @*YOUR_AUTHORIZED_USERS_GROUP*,@video >/dev/null | ||
else | ||
echo Pas de nouvelle version à installer. | ||
then | ||
echo Nouvelle version disponible, installation en cours : | ||
CPU=$(uname -m) | ||
url=$(echo "${jq}" | jq -r '.nas."Synology (DSM 7)".releases[] | select(.build=="linux-'"${CPU}"'") | .url') | ||
/bin/wget $url -P /tmp/plex/ | ||
/usr/syno/bin/synopkg install /tmp/plex/*.spk | ||
sleep 30 | ||
/usr/syno/bin/synopkg start "PlexMediaServer" | ||
rm -rf /tmp/plex/* | ||
/usr/syno/bin/synonotify PKGHasUpgrade '{"%PKG_HAS_UPDATE%": "Le script de mise à jour automatique de Plex Media Server a installé la dernière version disponible."}' | ||
else | ||
echo Pas de nouvelle version à installer. | ||
/usr/syno/bin/synonotify PKGHasUpgrade '{"%PKG_HAS_UPDATE%": "Le script de mise à jour automatique de Plex Media Server ne détecte pas de nouvelle version à installer."}' | ||
fi | ||
exit |