Aller au contenu

Einsteinium

Membres
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Einsteinium

  1. Préambule Nous allons voir comment faire un docker avec Plex en version "express", entre guillemets car cette version plus rapide à mettre en place utilisera un script pour maintenir le docker à jour et relancera plex chaque nuit par la même, la coupure dure le temps du relancement du docker et au final inutile de surveiller github ou d'utiliser de docker aux supers droits pour maintenir à jour l'image. Si vous préférez une version plus classique vous avez mon autre tutoriel : I - Préparation de l'installation A ) On commence par la création d'un dossier "Plex" dans le dossier "docker" B ) Création de 2 sous dossiers que vous créez dans le dossier "Plex" : "config" et "transcode" C ) La création d'un utilisateur "Plex", pour lequel on ne définira aucun accès dans les applications et un droit de lecture seule sur les dossiers vidéos. D ) Récupération du PUID/PGID pour le docker : Connectez vous en ssh et tapez dans la console "id Plex", on prendra alors note du uid/gid retourné. E ) Transcodage matériel Si votre nas est bien compatible : Voir la liste Alors vous créez un fichier "plexhw.sh" à la racine de notre dossier "Plex" contenant : #!/bin/sh if [ -d /dev/dri ]; then chmod 660 /dev/dri/renderD128 chmod 660 /dev/dri/card0 fi exit 0 Puis faire une tâche qui s'exécutera au démarrage : Panneau de configuration / Planificateurs de tâches / Créer / Tâche déclenchée / Script défini par l'utilisateur Avec pour utilisateur "root", en évènement "Démarrage" et dans le script le chemin de notre fichier "/volume1/docker/Plex/plexhw.sh" Exécutez manuellement la tâche pour appliquer la modification. II - Création du docker A ) Le script du docker La création d'un fichier "dockerplex.sh" dans le dossier "Plex" contenant les lignes suivantes : #!/bin/sh docker pull lscr.io/linuxserver/plex:latest docker stop Plex docker rm Plex docker image prune -f docker volume ls -qf dangling=true | xargs -r docker volume rm docker run -d \ --cpu-shares=50 \ --memory=4G \ --memory-swap=4G \ --name=Plex \ --net=host \ --device=/dev/dri:/dev/dri \ -e PUID=0000 \ -e PGID=000 \ -e VERSION=latest \ -e TZ=Europe/Paris \ -v /volume1/multimedia:/data:ro \ -v /volume1/docker/Plex/transcode:/transcode:rw \ -v /volume1/docker/Plex/config:/config:rw \ lscr.io/linuxserver/plex:latest exit 0 B ) Les variables à personnaliser : 1 ) La mémoire --memory=4G \ --memory-swap=4G \ Ici le réglage est pour 4Go, valeur idéale surtout lors des parses, néanmoins vous pouvez réduire ces valeurs, il faudra mettre alors pour : 2Go : 2G 1Go : 1G La variable memory-swap = memory, empêche le docker de déborder dans le swap une fois la limite de mémoire max atteinte. 2 ) Transcodage matériel Si votre nas n'est pas compatible alors vous supprimez la ligne : --device=/dev/dri:/dev/dri \ 3 ) PUID/PGID -e PUID=0000 \ -e PGID=000 \ Par les valeurs récupérées au point "I -> D" 4 ) Les dossiers multimédias -v /volume1/multimedia:/data:ro \ A personnaliser et multiplier en fonction de vos dossiers, par exemple : -v /volume1/Vidéo:/data/movies:ro \ -v /volume1/Séries:/data/tvshows:ro \ C ) Création et update journalier Nous créons une tâche qui exécutera notre fichier tous les jours à 5h30 : Panneau de configuration / Planificateurs de tâches / Créer / Tâche planifiée / Script défini par l'utilisateur Avec pour utilisateur "root" et dans le script le chemin de notre fichier "/volume1/docker/Plex/dockerplex.sh" Exécutez manuellement la tâche pour la création initiale. D ) Réclamer le serveur plex Pour cette étape, il faudra être rapide, après obtention du token, vous aurez 4 minutes. 1 ) Visitez cette page Plex Token et copiez le token obtenu 2 ) Modifiez notre fichier "dockerplex.sh" puis rajoutez la variable : -e PLEX_CLAIM=tokenobtenu \ 3 ) Exécutez manuellement de nouveau la tâche du point "II -> C" 4 ) Votre serveur est maintenant réclamé, supprimez la variable rajoutée au point "II -> D -> 2" Voilà c'est terminé, Inutile de relancer la tâche à nouveau, la modification temporaire pour le token sautera à la prochaine exécution du script, en seconde partie je donnerai les configurations que j'utilise actuellement pour vous faire gagner du temps. Adresse du serveur : https://ipdunas:32400 (en cas d’erreur, rajoutez /web à la fin) NB : Dockerfile avec le label watchtower : version: "2.1" services: plex: cpu_shares: 50 mem_limit: 4G container_name: Plex network_mode: host devices: - /dev/dri:/dev/dri labels: - com.centurylinklabs.watchtower.enable=true environment: - PUID=0000 - PGID=000 - TZ=Europe/Paris - VERSION=latest volumes: - /volume1/multimedia:/data:ro - /volume1/docker/Plex/transcode:/transcode:rw - /volume1/docker/Plex/config:/config:rw restart: unless-stopped image: lscr.io/linuxserver/plex:latest
  2. Bonjour à tous, Nous allons voir dans ce tutoriel comment mettre en place rapidement un certificat Let's Encrypt avec la méthode acme.sh en utilisant l'api Ovh en Docker, si vous êtes rapide, en 10 minutes c'est en place. Pourquoi en docker ? Car je suis contre la pollution du DSM, des corruptions par update, mais aussi par simplicité et rapidité. 1) On commence par la création de clé d'api chez ovh : https://api.ovh.com/createToken/?GET=/domain/zone/mydomain.com/*&POST=/domain/zone/mydomain.com/*&PUT=/domain/zone/mydomain.com/*&GET=/domain/zone/mydomain.com&DELETE=/domain/zone/mydomain.com/record/* On remplit donc le formulaire, pour "Validity" (1) on choisit "Unlimited", pour "Rights" (2) on remplace dans les champs "mydomain.com" par le vôtre et dans "Restricted IPs" (3), on rajoute son IP afin qu'en cas de vol des clés, elles ne puissent être exploitées et votre domaine détourné. (NB : Si vous n'avez pas une IP fixe, on passe ce dernier point) On garde les clés retournées en résultat sous la main pour la suite. 2) Passons maintenant au docker : A) On commence par la création d'un dossier "Acme" dans le dossier docker. B) La création du fichier de config : On crée avec l'éditeur de texte du DSM (Codage UTF-8) le fichier "account.conf" à la racine de notre dossier "Acme" contenant : LOG_FILE="/acme.sh/acme.sh.log" LOG_LEVEL=1 AUTO_UPGRADE='1' #NO_TIMESTAMP=1 USER_PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' SAVED_OVH_AK='XXXXXXX' SAVED_OVH_AS='XXXXXXX' SAVED_OVH_CK='XXXXXXX' DEFAULT_ACME_SERVER='https://acme-v02.api.letsencrypt.org/directory' On remplace dedans le contenu des 3 variables "SAVED_OVH_**" par nos clés obtenues précédemment par OVH. C) La création du docker : On va mettre un petit peu de code pour la création du docker et son actualisation journalière via le gestionnaire de tâche... Panneau de configuration / Planificateur de tâches / Créer / Tâche planifiée / Script défini par l'utilisateur Utilisateur : Root On programme pour une exécution par jour la nuit (5h c'est bien) Exécuter la commande : docker pull neilpang/acme.sh:latest docker stop Acme docker rm Acme docker image prune -f docker volume ls -qf dangling=true | xargs -r docker volume rm docker run -d --cpu-shares=10 --memory=134217728 --name=Acme -v /volume1/docker/Acme:/acme.sh:rw --restart unless-stopped neilpang/acme.sh:latest daemon On exécute manuellement la tâche une première fois pour la création du docker. C Bis) Le docker-compose.yml : version: "2.1" services: acme: cpu_shares: 10 mem_limit: 128M container_name: Acme network_mode: bridge labels: - com.centurylinklabs.watchtower.enable=true volumes: - /volume1/docker/Acme:/acme.sh:rw restart: unless-stopped image: neilpang/acme.sh:latest command: daemon D) Création du certificat : Avec le planificateur de tâche en exécution unique (cf point 2C) ou en ssh (root) en remplaçant "mydomain.com" : docker exec Acme sh -c "acme.sh --issue --keylength 4096 -d 'mydomain.com' -d '*.mydomain.com' --dns dns_ovh" Il n'y a rien à détailler pour expliquer cette commande, le keylenght peut être, on double la valeur par défaut qui est aujourd'hui considérée comme faible à 2048. /!\ Renouvellement automatique du certificat sans action de votre part 3) Installation des certificats : A) Importation manuel : Vos certificats seront disponibles directement dans filestation "docker/Acme/votredomaine" et ce qui nous intéresse dedans : Certificat : mydomain.com.cer Clé privée : mydomain.com.key Certificat intermédiaire : ca.cer On va maintenant faire leur import manuellement, dans "Panneau de configuration/Sécurité/Certificat". En cas d'import manuel, vous pouvez activer la notification mail, mais cette action se réalise toujours 1 mois avant expiration : https://github.com/acmesh-official/acme.sh/wiki/notify B) Déploiement automatique : NB : Faire un premier déploiement manuel avant le déploiement automatique, afin de bien le mettre par défaut et supprimer celui de synology par défaut. 1) Création d'un compte que l'on rajoutera dans le groupe admin, on lui mettra aucun acces à tous les dossiers et refuser à toutes les applications, on active pas la double authentification qui sera inutile. 2) On ré édite notre fichier "account.conf" créé au point 2B, on y rajoute : SAVED_SYNO_Scheme='http' SAVED_SYNO_Hostname='172.17.0.1' SAVED_SYNO_Port='5000' SAVED_SYNO_Username='nom utilisateur' SAVED_SYNO_Password='le password' SAVED_SYNO_DID='' SAVED_SYNO_Certificate='description du certificat mise dans le DSM' 3) Ensuite une fois les modifications faites, avec le planificateur de tâche en exécution unique (Cf point 2C) ou en ssh (root) : docker exec Acme sh -c "acme.sh --deploy -d 'mydomain.com' --deploy-hook synology_dsm" Guide officiel : https://github.com/acmesh-official/acme.sh/wiki/Synology-NAS-Guide Pour d'autres API que ovh : https://github.com/acmesh-official/acme.sh/wiki/dnsapi 😉

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.