====== Monter un serveur Jeedom sur NAS Synology (via Docker et container manager) ====== Installation réalisée grâce au tuto suivant : [[https://community.jeedom.com/t/tuto-installation-de-jeedom-sur-synology-avec-docker-et-reseau-macvlan/22039|https://community.jeedom.com/t/tuto-installation-de-jeedom-sur-synology-avec-docker-et-reseau-macvlan/22039]]\\ J'en retranscris ici une grande partie. ===== Mise en place d'un réseau macvlan ===== Il existe deux réseaux bien connus avec Docker. Le Bridge et le Host. Le Bridge est un réseau isolé qui empêche des plugins, qui doivent « écouter » en mode broadcast comme BLEA, Homebridge, Xiaomi, etc., de fonctionner Le Host est ouvert au réseau extérieur mais limite son utilisation notamment avec la commande sudo pour des raisons de sécurité.\\ Le réseau macvlan de Docker va régler ces limitations.\\ L’accès à Jeedom se fera avec une adresse IP dédiée sur le réseau local. Mais sa mise en oeuvre ne peut pas se faire avec l’interface graphique du paquet Docker de Synology !\\ Il faudra utiliser les commandes docker en ssh ===== Pré-requis ===== * Avoir un accès en SSH à son NAS. (voir doc Synology) * Connaitre l’IP de sa box / routeur * Connaitre l’IP de son NAS * Paquet Docker installé sur un NAS compatible * Drivers USB Installation manuelle depuis le Centre de paquet. [[https://synocommunity.com/package/synokernel-usbserial|SynoCommunity ]] * Suivant l’architecture du NAS [[https://kb.synology.com/fr-fr/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have|De quel type de CPU mon Synology NAS est-il équipé ? - Synology Centre de connaissances ]] * Installation des drivers pour DSM 7 : voir ici [[https://community.jeedom.com/t/jeedom-sur-synology-sous-docker-et-mise-a-jour-dsm7/65706/24|Jeedom sur Synology sous Docker et mise à jour DSM7? ]] * Créer un dossier ''jeedom-macvlan'' dans le dossier partagé ''docker'' de votre NAS * Créer un sous dossier ''\docker\jeedom-macvlan\html'' * Créer un sous dossier ''\docker\jeedom-macvlan\db'' * Logiciel PuTTY ou autre logiciel qui permet une connexion SSH * Logiciel notepad++ ===== Réseau macvlan ===== La création du réseau macvlan ne peut pas se faire via l’interface graphique de Synology. \\ Il faudra utiliser le service SSH et un logiciel comme PuTTY pour se connecter. \\ Avant de commencer, vous aurez besoin : * Connaitre l’IP de sa box / routeur / passerelle. En fonction des box, cela change. En règle général, c'est 192.168.1.1 ou 192.168.1.254 * Connaitre le nom du réseau du NAS / l'adresse IP Connecter vous à votre NAS Synology via Putty ou autre ; avec votre nom utilisateur (exemple : administrateur) \\ Lancer la commande ''sudo -i ''pour passer en mode root. Ressaisir le mot de passe. La commande ''ifconfig'' permet de vérifier l'interface du réseau, ici c'est eth0 : {{:nas:2024-07-07_16_03_10-192.168.1.55.png?400}} ===== Création du réseau mcvlan ===== Il faudra adapter les commandes selon votre configuration. ''docker network create \'' ⇒ Commande docker pour créer un réseau \\ ''-d macvlan \'' ⇒ Utilisation du driver macvlan de Docker \\ ''–subnet=192.168.1.0/24 \'' ⇒ Désigne le réseau actuel \\ ''–ip-range=192.168.1.240/29 \'' ⇒ On attribue une plage d’adresse IP de 192.168.1.240 à 192.168.1.247 \\ ''–gateway=192.168.1.1 \'' ⇒ Désigne la passerelle : adresse IP de la box ou routeur. Bien souvent : 192.168.1.1 OU 192.168.1.254 \\ ''–aux-address="host_bridge=192.168.1.241" \'' ⇒ On réserve une adresse spécifique pour un éventuel routage de l’adresse IP. \\ ''-o parent=eth0 \'' ⇒ Associer à l'interface \\ ''mymacvlan'' ⇒ On donne un nom à notre réseau mymacvlan \\ L’adresse 192.168.1.241 servira notamment pour ceux qui utilisent le plugin BLEA avec la création d’une antenne déportée ou d’autres containeur Docker qui doivent communiquer avec Jeedom. \\ Exemple : docker network create \ -d macvlan \ --subnet=192.168.1.0/24 \ --ip-range=192.168.1.240/29 \ --gateway=192.168.1.1 \ --aux-address="host_bridge=192.168.1.241" \ -o parent=eth0 \ mymacvlan Je conseille de préparer le code adapté à votre configuration puis copiez collez le sur le NAS via Putty. \\ Si la création du réseau se fait correctement, il y aura une ligne avec plein de caractères. \\ Vérifier que le réseau est créé avec la commande : \\ ''docker network ls'' {{:nas:2024-07-07_16_27_54-192.168.1.55.png?400}} Le réseau macvlan est créé. \\ ATTENTION ! Les adresses suivantes ne devront pas être utilisées (réservées pour le NAS) : \\ 192.168.1.240 \\ 192.168.1.241 \\ Si besoin, vous pouvez supprimer le réseau avec la commande ''docker network rm //[ID]//'' \\ Exemple : docker network rm 864ddd55cac0 ===== Création du fichier docker-compose.yaml ===== Pour créer notre conteneur, nous allons utiliser la commande ''docker-compose'' et un fichier de configuration ''docker-compose.yaml'' \\ Voici le contenu de mon fichier ''docker-compose.yaml'' en version 2 : version: '2' networks: default: name: mymacvlan services: jeedom: container_name: jeedom-v4 # build : ./ image: jeedom/jeedom:4.3-buster privileged: false pid: "host" cap_add: - SYS_PTRACE - SYS_ADMIN tty: true hostname: jeedom mac_address: a0:ca:ab:cd:ef:04 networks: default: ipv4_address: 192.168.1.245 volumes: - "/volume1/docker/jeedom-macvlan/html:/var/www/html" - "/volume1/docker/jeedom-macvlan/db:/var/lib/mysql" restart: unless-stopped environment: - TZ=Europe/Paris - PUID=1026 - PGID=101 - SYSTEMD_IGNORE_CHROOT=yes - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Le fichier est à adapter selon la configuration. J'ai choisi cette adresse IP pour mon serveur : 192.168.1.245 mais vous pouvez en choisir une autre (correspondant au range indiqué dans la configuration du réseau macvlan. networks: notre conteneur sera attaché à notre réseau mymacvlan image: Image utilisée pour construire notre conteneur \\ Dans cette exemple on utilise jeedom/jeedom:4.3-buster ipv4_address: 192.168.1.245 ⇒ Adresse IP pour joindre le serveur Jeedom volumes: Répertoire « miroir » où sera installé Jeedom Il y a également une subtilité si vous utilisez une / des clés USB pour joindre vos équipements. Voir le tuto original indiqué au début de l'article. PUID et PGID ⇒ ID de l’utilisateur propriétaire. \\ Lancer la commande id \\ exemple : id administrateur Lancer notepad++, faire un copier-coller du code et sauvegarder le fichier dans ''docker\jeedom-macvlan\docker-compose.yaml'' ===== Création du container JEEDOM ===== Lancer la commande ''docker pull jeedom/jeedom:4.3-buster'' pour télécharger l’image de Jeedom Lancer la commande ''cd /volume1/docker/jeedom-macvlan'' pour changer de répertoire Lancer la commande ''ls'' pour visualiser le contenu du répertoire Lancer la commande'' docker-compose up -d'' pour créer le conteneur. ===== Container manager sur Synology ===== Vérifier dans l'application CONTAINER MANAGER que le conteneur est monté et UP : {{:nas:2024-07-07_17_29_52-_-_synology_diskstation.png?400}} Vérifier que la configuration du portail Web est correcte : {{:nas:2024-07-07_17_32_13-portail-web.png?600}} Côté webstation : {{:nas:2024-07-07_17_33_35-webstation.png?400}} ===== Interface Web ===== Vous pouvez maintenant joindre votre serveur Jeedom (via interface web) à l'adresse IP que vous lui avez attribué. Pour ma part le 192.168.1.245 : {{:nas:2024-07-07_17_36_37--_jeedom_mozilla_firefox.png?200}}