Synology Docker Media Server avec Traefik, Docker Compose et Cloudflare

Vous avez peut-être lu mon guide du serveur multimédia Docker Traefik. Pouvez-vous construire cela sur un Synology NAS? Absolument. Dans cet article, je vais vous montrer comment créer un Synology Docker Media Server avec Traefik et Docker Compose.

Dans mon guide Docker Traefik, j'ai laissé entendre qu'il était possible d'utiliser les mêmes extraits Docker Compose de mon référentiel GitHub pour créer le serveur multimédia Docker Synology DSM. Depuis lors, j'ai reçu plusieurs demandes de guide sur la façon de procéder.

Cela a pris du temps, mais le voici. Dans cet article, je vais vous montrer comment créer une pile Docker Synology Traefik à l'aide de Docker Compose au lieu de l'application Docker GUI de Synology DSM.

Notez que ce guide doit être suivi conjointement avec mon guide Docker Traefik. Par conséquent, je vais vous renvoyer à l'autre guide au lieu de dupliquer les informations ici.

Essentiellement, ce guide se concentre sur la configuration / préparation de votre NAS pour pouvoir créer une pile Docker Traefik sur Synology DSM en utilisant des exemples Docker Compose de mon GitHub Repo.

Informations d'arrière-plan de Synology Docker

En 2019, je suis passé d'un serveur combiné NAS HTPC à un serveur domestique Intel NUC séparé et à un Synology NAS.[[Lis: Passer d'un serveur domestique à un NAS (Synology) – Le pourquoi, les enseignements et les conseils]

L'une des principales raisons de mon déménagement était que je voulais un ensemble et que j'oublie la boîte pour Plex, le stockage de fichiers et les services de base de données. Avec la prise en charge du transcodage matériel, le Synology DS918 + était l'un des meilleurs serveurs multimédia pour Plex à l'époque.

Un autre facteur attrayant à propos de Synology était son support pour Docker. Dans ce guide Docker Synology DSM, je vais partager comment utiliser Docker Compose pour configurer facilement un serveur multimédia sur Synology DS918 +. Ce guide devrait fonctionner sur tout modèle Synology prenant en charge Docker.

Un Synology est-il assez puissant pour Docker Media Server?

Comme je l'ai dit dans mes autres articles, je gère plus de 60 conteneurs Docker sur mon serveur domestique Intel NUC, qui est au cœur de ma configuration de maison intelligente.

Je suis toujours en train de décider quels conteneurs doivent être sur Synology et lesquels doivent être sur mon serveur domestique NUC. Veuillez suivre mon dépôt GitHub pour voir ma dernière configuration.

Pour les tests, j'ai ajouté quelques-uns de ces conteneurs à mon Synology NAS et l'utilisation des ressources est indiquée ci-dessous.

Utilisation des ressources Docker Traefik Synology DSM

Voici quelques notes:

  • Plex fonctionne dans Docker mais ne jouait rien au moment où cette capture d'écran a été prise.
  • À l'exception du contrôleur Unifi et de Plex, les autres conteneurs ne sont pas gourmands en ressources.
  • L'utilisation du processeur est modeste à 5%, mais la pile utilise 2,53 Go de ma mémoire RAM de 8 Go.

Diffuser quelque chose sur Plex ne devrait augmenter que légèrement le processeur, car le modèle DS918 + prend en charge le transcodage matériel. Dans un guide séparé, je vais vous montrer comment activer la prise en charge du transcodage matériel Plex avec Docker Compose sur Synology NAS. Si vous ne pouvez pas attendre, vous pouvez consulter mon dépôt GitHub.

Une fois que des applications gourmandes en ressources sont ajoutées (par exemple, Radarr, Sonarr, SABnzbd, etc.), la RAM peut se remplir assez facilement. À titre de comparaison, avec 63 conteneurs, j'utilise environ 15 Go de mémoire RAM sur mon serveur domestique Intel NUC.

La RAM sera l'une des plus grandes limitations dans une configuration de serveur Docker Synology.

Mon Synology NAS

Mon modèle DS918 + est livré avec 4 Go. Officiellement, ce modèle prend en charge jusqu'à 8 Go de RAM (2×4 Go). Mais officieusement, vous pouvez passer à 16 Go de RAM. C'est le cas pour plusieurs des modèles Synology plus récents et de niveau intermédiaire à élevé. Assurez-vous donc de rechercher votre modèle.

Voici les mises à niveau que j'ai faites pour mon Synology NAS:

Je recommande d'ajouter le cache M2, ce qui prolongera la durée de vie de vos disques NAS. Cela améliorera également les performances de votre interface utilisateur Plex (chargement des miniatures, etc.).

Mon Synology NAS est sauvegardé sur Google Drive (le compte professionnel offre un stockage illimité même s'il indique 1 To / utilisateur) à l'aide de l'application Cloud Sync intégrée.[[Lis: Correctif pour Synology Cloud Sync arrête la synchronisation avec un message «à jour»]

Mise à niveau de la RAM sur Synology NAS

La mise à niveau de la RAM sur Synology est assez facile. Cependant, tous les modèles / marques de RAM ne sont pas compatibles. Voici un résumé des mises à niveau de RAM compatibles pour les modèles Synology courants / récents.

Si vous prévoyez de configurer un serveur multimédia Docker bien équilibré sur le Synology NAS, je vous recommande fortement de mettre à niveau la RAM.

Pourquoi utiliser Docker Compose sur Synology au lieu de Synology DSM Docker GUI?

Synology DSM dispose d'une excellente interface graphique pour docker. Il vous permet de parcourir des images, de configurer des conteneurs et de les gérer à partir de l'interface Web. Alors pourquoi utiliser Docker Compose à la place?

Eh bien, si Docker facilite l'installation des applications, Docker Compose le porte à un autre niveau.

Il rend votre pile portable et passe d'une machine à l'autre en un clin d'œil. Par exemple, lorsque j'ai récemment mis à niveau mon Intel NUC de Linux Mint 19 vers POP OS 20.04, tout ce que j'avais à faire était de configurer le système d'exploitation, d'installer docker et docker-compose et de démarrer la pile. J'étais de retour dans les affaires en 30 minutes.

De même, lorsque j'ai déplacé certaines de mes applications d'Intel NUC vers Synology Docker, tout ce que j'avais à faire était de copier sur le docker-compose vers Synology et de le démarrer.

En gros, Docker Compose a éliminé les centaines de clics et les étapes qui auraient été nécessaires pour configurer la même pile à l'aide de l'interface graphique Synology DSM Docker.

SmartHomeBeginner propose des didacticiels détaillés assez faciles à comprendre même pour les débutants. Cela demande beaucoup de travail. Si ce message vous aide, veuillez nous soutenir en signe d'appréciation:

  • Vous vous sentez généreux? Achetez-moi un café (ou deux).
  • Peut-être un autre jour? Achetez sur Amazon en utilisant nos liens. Vos prix ne changeront pas mais nous recevons une petite commission.
  • Vous n'avez pas envie de dépenser? Vous pouvez toujours montrer votre soutien en partageant ce message, en y associant des forums ou même en commentant ci-dessous.

Docker et Docker-Compose sur Synology NAS

Avec toutes les informations de base prises en charge. Passons maintenant à la configuration d'un serveur multimédia Docker sur Synology à l'aide de Docker-Compose. Encore une fois, je vous rappelle que ce didacticiel Synology Docker Compose consiste davantage à préparer votre Synology afin que vous puissiez suivre le didacticiel Docker Traefik que d'entrer dans les moindres détails de l'ensemble du processus de configuration.

Je tiens à vous avertir que si vous préférez ne pas vous salir les mains avec la ligne de commande, ce didacticiel Docker Compose Synology n'est pas pour vous. Cela dit, si vous passez par le processus d'apprentissage, vous serez si heureux que vous l'avez fait.

1. Installez Docker sur Synology

Tout d'abord, l'étape facile. Installez Docker sur Synology Disk Station Manager. Ouvrez le centre de paquets Synology DSM, recherchez Docker et installez-le comme indiqué dans la capture d'écran ci-dessous.

Installer Docker sur Synology

Installer Docker sur Synology

Contrairement à Linux, l'installation de Synology Docker installe à la fois Docker Engine et Docker Compose.

2. SSH dans Synology DSM

Synology ne fournit pas d'interface de terminal via l'interface Web. Vous devrez donc SSH dans Synology à partir d'une autre machine.

Pour activer SSH sur Synology, ouvrez le panneau de configuration et accédez à Terminal et SNMP comme indiqué ci-dessous. Vérifier Activer le service SSH. Le port par défaut est 22. Vous pouvez changer le port pour autre chose pour plus de sécurité.

Synology DSM Activer SSH

Activer SSH sur Synology DSM

Voici un autre avantage de Docker Compose sur Synology, vous pouvez suivre mon guide Guacamole Docker et configurer un client de bureau à distance basé sur un navigateur sur Synology. Une fois cela fait, votre terminal Synology est disponible de n'importe où. Tout ce dont vous avez besoin est un navigateur.

Après avoir activé SSH, connectez-vous au terminal SSH de votre Synology DSM à partir d'une machine distante. Sous Windows, vous pouvez utiliser l'un des clients SSH recommandés ou même Windows PowerShell.

3. Installez Docker Compose sur Synology

Attendez, je pensais que vous avez dit que le package Docker de Synology installe à la fois Docker et Docker Compose.

Oui, je l'ai dit. Mais les packages de docker de Synology ont généralement tendance à être assez anciens.

Au moment de la rédaction de ce document, les versions actuellement disponibles de Docker et Docker Compose sont respectivement 19.03.12 et 1.26.2. Mais voici ce que Synology Package Center installe:

Docker et Docker composent des versions sur Synology DSM

Docker et Docker composent des versions sur Synology DSM

Bien que vous puissiez mettre à niveau Docker, c'est assez délicat et peut être problématique. Je ne vais donc pas en parler ici. Installons donc le dernier Docker Compose sur Synology DSM.

Pour installer Docker Compose sur Synology NAS, SSH dans le NAS et émettez les commandes suivantes dans l'ordre:

sudo su
cd / var / packages / Docker / target / usr / bin /
mv docker-compose docker-compose_bak

La dernière commande sauvegarde le docker-compose actuel. Ensuite, téléchargeons le dernier fichier Docker Compsose:

curl -L https://github.com/docker/compose/releases/download/X.XX.X/docker-compose-`uname -s`-`uname -m` -o docker-compose

Notez que la commande ci-dessus utilise des astuces et non des guillemets simples.

Assurez-vous de remplacer le X.XX.X avec le dernier numéro de version de docker compose d'ici (1.26.2 pour le moment).

Ensuite, donnez des privilèges d'exécution à docker-compose:

chmod + x docker-compose

Maintenant, si vous vérifiez la version de Synology Docker-compose, vous devriez voir la dernière version active.

Mettre à niveau Docker Compose sur Synology NAS

Mettre à niveau Docker Compose sur Synology NAS

Ok, nous nous rapprochons de la configuration d'une pile Synology Traefik Docker à l'aide de Docker Compose.

4. Activer le dossier d'accueil pour l'utilisateur

Il s'agit d'une étape de commodité facultative et non nécessaire. J'aime utiliser bash_aliases pour simplifier les commandes docker-compose.

Pour cela, vous devrez activer le dossier d'accueil pour l'utilisateur sur le Synology NAS.

Pour activer le dossier de départ de l'utilisateur sur Synology DSM, ouvrez le panneau de configuration et accédez à Utilisateur->Avancée. Faites défiler vers le bas et activez le service à domicile de l'utilisateur comme indiqué ci-dessous.

Activer les dossiers personnels des utilisateurs sur Synology

Activer les dossiers personnels des utilisateurs sur Synology

Notez que l'emplacement du dossier de départ peut être différent en fonction de la configuration de vos volumes Synology. Je n'ai qu'un seul volume.

5. Ajouter un accès en lecture-écriture pour l'utilisateur au dossier partagé Docker

Lorsque le package Docker est installé sur Synology DSM, un nouveau dossier partagé pour docker est créé: / volume1 / Docker (le numéro de volume peut être différent dans votre cas). Appelons cela le dossier "Docker Root".

Donnons à l'utilisateur Synology un accès en lecture-écriture au dossier partagé Docker. Ouvrez le panneau de configuration, accédez à Utilisateur, mettez en surbrillance l'utilisateur principal et cliquez sur le bouton Éditer bouton.

Ensuite, accédez à l'onglet autorisations et activez la lecture / écriture pour l'utilisateur sur le dossier partagé Docker, comme indiqué ci-dessous.

Activer les autorisations R / W pour l'utilisateur sur le dossier Docker Synology

Activer les autorisations R / W pour l'utilisateur sur le dossier Docker Synology

6. Modifier les autorisations des utilisateurs et des sockets Docker

Notez qu'il s'agit d'un risque de sécurité mineur. Pour atténuer le risque, utilisez uniquement des images de conteneur réputées. Je ne recommanderais pas cela dans des environnements à haute sécurité (par exemple, les entreprises).

L'exécution et la gestion des conteneurs Docker nécessitent des privilèges sudo. Cela signifie donc que vous devrez taper sudo pour chaque commande docker ou basculer vers le compte utilisateur root. Sinon, vous verrez l'erreur suivante:

L'exécution de commandes Docker en tant que non root provoque des erreurs

L'exécution de commandes Docker en tant que non root provoque des erreurs

Vous pouvez contourner ce problème en ajoutant l'utilisateur actuel au groupe de dockers à l'aide de la commande suivante:

sudo synogroup --add docker nom d'utilisateur

Remplacer Nom d'utilisateur avec votre nom d'utilisateur.

Ensuite, changez la propriété du socket Docker en groupe Docker à l'aide de la commande suivante:

racine chown sudo: docker /var/run/docker.sock

7. Configurer les alias Bash sur Synology

Comme je l'ai mentionné précédemment, il s'agit d'une étape de commodité. Cela facilite le démarrage et l'arrêt de la pile Synology Docker Compose (par exemple, dcup2 pour démarrer la pile docker traefik 2). Vous pouvez en savoir plus sur mon guide docker traefik.

Pour une liste complète des alias de raccourcis bash, consultez mon dépôt GitHub. Toutes ces commandes devraient également fonctionner sur Synology DSM.

Pour configurer des alias bash sur Synology, créez un bash_aliases fichier texte dans un emplacement connu. Pour simplifier, créons un fichier appelé bash_aliases.txt dans le dossier racine du docker (/ volume1 / Docker).

Ensuite, ajoutez le contenu du fichier d'exemple d'alias bash de mon référentiel. Personnalisez-le à votre guise mais assurez-vous que le chemin d'accès aux fichiers de composition de docker est correct.

Ensuite, exécutez les deux commandes suivantes dans l'ordre (non pas en tant que root mais en tant qu'utilisateur). La deuxième commande créera un lien symbolique vers le fichier texte des alias bash et la dernière commande mettra à jour la session shell avec les alias bash mis à jour.

cd / var / services / homes / nom d'utilisateur
ln -s /volume1/docker/bash_aliases.txt .bashrc
. ~ / .bashrc

Encore, Nom d'utilisateur devrait être votre nom d'utilisateur. Une fois terminé, vous devriez voir .bashrc lien symbolique vers le bash_aliases.txt fichier, comme indiqué ci-dessous (à l'aide de la commande ls -al.

Activer les alias Bash sur la ligne de commande Synology

Activer les alias Bash sur la ligne de commande Synology

C'est tout pour le travail de préparation. Passons à la configuration de Traefik sur Synology à l'aide de Docker Compose.

Configuration de Synology Traefik Docker Stack

Dans ce didacticiel Synology Traefik, je vais vous guider à travers la configuration de Traefik v2 en utilisant Docker-compose. Tous les fichiers de composition Docker de mon référentiel Docker Traefik peuvent être utilisés sur Synology avec peu ou pas de modifications. Je n'entrerai donc pas dans les détails.

Au lieu de cela, je vais montrer deux exemples: 1) comment obtenir Traefik v2 opérationnel avec le certificat LetsEncrypt et 2) configurer le portainer pour gérer les conteneurs.

Avant de continuer, passez en revue et suivez les sections suivantes de mon guide précédent:

  • Bases de la configuration du proxy inverse Traefik (connaissances)
  • Configuration de Traefik (connaissances)
  • Travaux de préparation pour Traefik 2 (requis)
    1. Configurer les informations d'authentification HTTP – Suivez le guide Traefik 2 et créez .htpasswd fichier dans un dossier appelé partagé dans le dossier racine du docker.
    2. Créer .env fichier avec les variables d'environnement requises: DOCKERDIR (dossier racine docker / volume1 / Docker), PUID, PGID, TZ, SERVER_IP, DOMAINNAME, CLOUDFLARE_EMAIL et CLOUDFLARE_API_KEY.
    3. Créez des dossiers et des fichiers Traefik 2 dans la racine du docker: traefik2 / traefik.log, traefik2 / règles /, et traefik2 / acme / acme.json. Veiller à ce que acme.json les autorisations de fichier sont définies sur 600.
    4. Créer un réseau Traefik 2: t2_proxy

Commençons maintenant à créer le fichier Synology docker-compose dans le dossier racine du docker (/ volume1 / Docker).

Pour plus de simplicité et de compatibilité avec les fichiers existants dans mon référentiel GitHub, j'appelle mon fichier Synology Docker-Compose docker-compose-synology-t2.yml. Vous pouvez l'appeler docker-compose.yml si tu préfères. Assurez-vous simplement que vos alias bash sont modifiés en conséquence.

1. Docker Compose Network Block

Tout d'abord, ajoutons le bloc réseau comme expliqué précédemment.

version: "3.7"

########################### RÉSEAUX
réseaux:
  t2_proxy:
    externe:
      nom: t2_proxy
  défaut:
    pilote: pont

########################### PRESTATIONS DE SERVICE
prestations de service:
# Tous les services / applications vont en dessous de cette ligne

2. Traefik Docker Composer sur Synology

Toutes les pièces qui se trouvent dans le docker-composer Synology Traefik ont ​​déjà été expliquées dans mon guide précédent. Je n'aborderai que quelques points clés selon les besoins.

Voici la composition complète du docker Traefik v2 pour Synology:

    # Traefik 2 - Proxy inverse
  traefik:
    nom_conteneur: traefik
    image: traefik: chevrotin # la balise chevrotin fait référence à v2.2.x
    redémarrage: à moins qu'il ne soit arrêté
    commande: # arguments CLI
      - --global.checkNewVersion = true
      - --global.sendAnonymousUsage = true
      - --entryPoints.http.address =: 80
      - --entryPoints.https.address =: 443
      # Autorisez ces IP à définir les en-têtes X-Forwarded- * - IP Cloudflare: https://www.cloudflare.com/ips/
      - --entrypoints.https. /17.162.158.0.0/15.104.16.0.0/12,172.64.0.0/13.131.0.72.0/22
      - --entryPoints.traefik.address =: 8080
      - --api = true
      # - --api.insecure = true
      # - --serversTransport.insecureSkipVerify = true
      - --log = true
      - --log.level = DEBUG # (Par défaut: erreur) DEBUG, INFO, WARN, ERROR, FATAL, PANIC
      - --accessLog = true
      - --accessLog.filePath = / traefik.log
      - --accessLog.bufferingSize = 100 # Configuration d'un tampon de 100 lignes
      - --accessLog.filters.statusCodes = 400-499
      - --providers.docker = true
      - --providers.docker.endpoint = unix: ///var/run/docker.sock
      # - --providers.docker.defaultrule = HostHeader (`{{index .Labels" com.docker.compose.service "}}. $ DOMAINNAME`)
      - --providers.docker.exposedByDefault = false
      # Ajoutez dns-cloudflare comme résolveur de certificats par défaut pour tous les services. Permet également TLS et pas besoin de spécifier sur les services individuels.
      - --entrypoints.https.http.tls.certresolver = dns-cloudflare
      - --entrypoints.https.http.tls.domains[0].main = $ DOMAINNAME
      - --entrypoints.https.http.tls.domains[0].sans = *. $ DOMAINNAME
      # - --entrypoints.https.http.tls.domains[1].main = $ DOMAIN # Extrait le certificat principal pour le deuxième domaine
      # - --entrypoints.https.http.tls.domains[1].sans = *. $ DOMAIN # Extrait le certificat générique pour le deuxième domaine
      - --providers.docker.network = t2_proxy
      - --providers.docker.swarmMode = false
      - --providers.file.directory = / rules # Charge la configuration dynamique à partir d'un ou plusieurs fichiers .toml ou .yml dans un répertoire.
      # - --providers.file.filename = / chemin / vers / fichier # Charger la configuration dynamique à partir d'un fichier.
      - --providers.file.watch = true # Fonctionne uniquement sur les fichiers de niveau supérieur dans le dossier des règles
      # - --certificatesResolvers.dns-cloudflare.acme.caServer = https: //acme-staging-v02.api.letsencrypt.org/directory # LetsEncrypt Staging Server - décommenter lors des tests
      - --certificatesResolvers.dns-cloudflare.acme.email = $ CLOUDFLARE_EMAIL
      - --certificatesResolvers.dns-cloudflare.acme.storage = / acme.json
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.provider = cloudflare
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.resolvers = 1.1.1.1: 53,1.0.0.1: 53
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.delayBeforeCheck = 90 # Pour retarder la vérification DNS et réduire le taux d'accès au LE
    réseaux:
      t2_proxy:
        ipv4_address: 192.168.254.254 # Vous pouvez spécifier une adresse IP statique
    # réseaux:
    # - t2_proxy
    security_opt:
      - pas de nouveaux privilèges: vrai
    ports:
      - objectif: 80
        publié: 80
        protocole: tcp
        mode: hôte
      - cible: 443
        publié: 443
        protocole: tcp
        mode: hôte
      - cible: 8080
        publié: 8080
        protocole: tcp
        mode: hôte
    volumes:
      - $ DOCKERDIR / traefik2 / rules: / rules # répertoire du fournisseur de fichiers
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - $ DOCKERDIR / traefik2 / acme / acme.json: /acme.json # cert emplacement - vous devez toucher ce fichier et modifier les autorisations à 600
      - $ DOCKERDIR / traefik2 / traefik.log: /traefik.log # pour fail2ban - assurez-vous de toucher le fichier avant de démarrer le conteneur
      - $ DOCKERDIR / partagé: / partagé
    environnement:
      - CF_API_EMAIL = $ CLOUDFLARE_EMAIL
      - CF_API_KEY = $ CLOUDFLARE_API_KEY
    Étiquettes:
      - "traefik.enable = true"
      ## Redirection HTTP vers HTTPS
      - "traefik.http.routers.http-catchall.entrypoints = http"
      - "traefik.http.routers.http-catchall.rule = HostRegexp (` {host:. +} `)"
      - "traefik.http.routers.http-catchall.middlewares = rediriger vers https"
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme = https"
      ## Routeurs HTTP
      - "traefik.http.routers.traefik-rtr.entrypoints = https"
      - "traefik.http.routers.traefik-rtr.rule = HostHeader (` traefik. $ DOMAINNAME`) ""
      ## Services - API
      - "[email protected]"
      ## Middlewares
      - "[email protected]le "

Pour une explication des sections, consultez mon guide Traefik 2.

Assurez-vous d'avoir chaîne-basique-auth fichier middleware dans le règles dossier pour l'authentification de base. Sans le fichier middleware, Traefik ne démarre pas.

Enregistrez le fichier docker-compose.

3. Test du tableau de bord Synology Traefik

Pour démarrer la pile docker-compose, utilisez la commande suivante:

docker-compose -f /volume1/Docker/docker-compose-synology-t2.yml up -d

Vous pouvez également utiliser soit dcup2 ou dcrec2 traefik, si vous avez la bonne configuration bash_aliases.

Ensuite, suivez les journaux pour rechercher d'éventuelles erreurs. La commande docker pour rechercher des journaux sur Synology est différente de la commande sur une installation Linux générique. J'ai eu des problèmes avec journaux de composition de docker en raison de la façon dont le pilote de journal est implémenté dans le package Docker Synology.

Pour consulter les journaux en temps réel sur la ligne de commande Synology, utilisez la commande suivante (ou dclogs traefik si les alias bash sont configurés):

docker logs -tf --tail = "50" traefik

Consultez les journaux et recherchez les validations DNS réussies et la génération de certificats LetsEncrypt, comme expliqué dans mon guide Docker Traefik 2.

La capture d'écran ci-dessous montre la génération réussie de certificats LetsEncrypt à l'aide de Traefik sur Synology NAS.

Traefik se connecte à Synology

Traefik se connecte à Synology

Maintenant, si vous ouvrez le tableau de bord Traefik et regardez les certificats, vous devriez voir les bonnes certifications comme indiqué ci-dessous.

Certificat Synology Traefik LetsEncrypt - Tableau de bord Traefik

Certificat Synology Traefik LetsEncrypt – Tableau de bord Traefik

Si votre certificat est bon, alors félicitations! Vous êtes prêt à rouler.

SmartHomeBeginner propose des didacticiels détaillés assez faciles à comprendre même pour les débutants. Cela demande beaucoup de travail. Si ce message vous aide, veuillez nous soutenir en signe d'appréciation:

  • Vous vous sentez généreux? Achetez-moi un café (ou deux).
  • Peut-être un autre jour? Achetez sur Amazon en utilisant nos liens. Vos prix ne changeront pas mais nous recevons une petite commission.
  • Vous n'avez pas envie de dépenser? Vous pouvez toujours montrer votre soutien en partageant ce message, en y associant des forums ou même en commentant ci-dessous.

4. Ajout de Portainer au serveur multimédia Synology Docker

Ajoutons portainer comme exemple. Voici l'extrait de docker-compose à utiliser:

    # Portainer - WebUI pour conteneurs
  porteur:
    nom_conteneur: portainer
    image: portainer / portainer: dernier
    redémarrage: à moins qu'il ne soit arrêté
    commande: -H unix: ///var/run/docker.sock
    réseaux:
      - t2_proxy
    ports:
      - "$ PORTAINER_PORT: 9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - $ DOCKERDIR / portainer / data: / data # Passez au répertoire local si vous souhaitez enregistrer / transférer la configuration localement
    environnement:
      - TZ = $ TZ
    Étiquettes:
      - "traefik.enable = true"
      ## Routeurs HTTP
      - "traefik.http.routers.portainer-rtr.entrypoints = https"
      - "traefik.http.routers.portainer-rtr.rule = HostHeader (` portainer. $ DOMAINNAME`) ""
      ## Middlewares
      # - "[email protected]e "# Aucune authentification
      - "[email protected]fichier "# Authentification de base
      # - "[email protected]"# Google OAuth 2.0
      # - "[email protected]le "# Authelia
      ## Services HTTP
      - "traefik.http.routers.portainer-rtr.service = portainer-svc"
      - "traefik.http.services.portainer-svc.loadbalancer.server.port = 9000"

Voici quelques notes pour la personnalisation:

  1. Assurez-vous que les variables d'environnement sont définies dans le .env fichier: $ TZ, $ PORTAINER_PORT et $ DOCKERDIR
  2. L'exemple ci-dessus montre l'authentification de base. Vous pouvez également configurer Google OAuth ou Authelia. Si vous le faites, assurez-vous que vous disposez des fichiers middleware nécessaires et décommentez les étiquettes appropriées. Consultez la section Sécuriser Traefik de mon guide précédent pour plus de détails.

Maintenant, commençons la pile (dcup2) pour tester si Protainer se déclenche.

Bummer! nous avons une erreur:

Dossiers manquants sur Docker Host Stop Container from Starting

Dossiers manquants sur Docker Host Stop Container from Starting

Peut-être que quelqu'un a une réponse à cela. Contrairement à la pile Docker Traefik 2 sur mon serveur domestique Linux, je n'ai pas pu obtenir l'implémentation Synology Docker pour créer automatiquement les dossiers nécessaires sur la machine hôte.

$ DOCKERDIR / portainer / data dossier n'existe pas dans le dossier racine du docker et donc les erreurs de Portainer disparaissent. La solution de contournement consiste à créer manuellement le dossier manquant et le portainer doit démarrer immédiatement.

Je n'ai pas pu comprendre pourquoi cela se produit. Si vous avez une réponse, veuillez commenter ci-dessous pour m'aider et aider les autres.

Je ne l'ai pas testé mais une autre solution peut être de créer des volumes nommés dans docker-compose.

5. Ajout d'autres applications à Synology Traefik Docker Stack

Ma pile Docker Synology est en constante évolution et évolution. J'ai partagé toute ma pile entre Synology et Intel NUC. Reportez-vous à mon référentiel GitHub pour savoir quelle application s'exécute où.

Cela dit, vous pouvez copier-coller les extraits de n'importe quel fichier de composition de docker dans mon référentiel vers votre fichier de composition de docker sur Synology et vous devriez pouvoir ajouter l'application à votre pile.

6. Lecture supplémentaire

Comme je l'ai déjà dit, ce guide doit être suivi conjointement avec mon précédent guide Traefik 2. Je n'entre pas dans les détails de ce guide. Si vous avez pris des raccourcis jusqu'à présent (sans lire mon guide précédent), voici quelques sections clés qui pourraient vous être utiles:

Problèmes connus

Ce guide Synology Docker Compose fonctionne. Mais il y a quelques problèmes connus. L'un est déjà mentionné ci-dessus: l'implémentation de Docker de Synology ne crée pas automatiquement les dossiers manquants sur la machine hôte.

L'autre est: si vous utilisez docker-compose pour définir votre pile docker-traefik sur Synology, la fonctionnalité de l'application GUI Docker de votre DSM sera réduite. Vous aurez moins de contrôle sur les conteneurs et les journaux de docker n'apparaîtront pas dans l'interface graphique. Vous pouvez toujours démarrer et arrêter vos conteneurs à partir de l'interface graphique.

Ma recommandation est que si vous utilisez docker-compose sur Synology, passez à 100%. Cela évite tout comportement inattendu.

Synology DSM Docker Traefik Stack – Réflexions finales

Lorsque j'ai commencé mes recherches sur la configuration d'un serveur multimédia docker sur Synology, il n'y avait pas suffisamment d'informations cohérentes. J'ai passé plusieurs heures à assembler des morceaux et à comprendre les choses par essais et erreurs.

À ce stade, cette configuration de docker traefik Synology est presque 100% compatible avec les fichiers de composition sur mon dépôt GitHub. Le seul problème semble être d'avoir à créer manuellement les dossiers qui sont mappés en tant que volumes persistants dans les fichiers de composition de docker. Il s'agit d'un inconvénient ponctuel mineur.

J'espère que ce guide Traefik Synology vous aidera à démarrer votre voyage de docker sur Synology NAS.

Est-ce que ce post vous a aidé?

SmartHomeBeginner propose des didacticiels détaillés assez faciles à comprendre même pour les débutants. Si vous lisez ceci, pensez à nous acheter un café (ou deux) en signe d'appréciation.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.