Mise à jour :
25/11/2024 : maj tag image jeedom
26/06/2024 : mise à jour avant suppression du tuto
14/01/2024 : refonte de la partie Création du réseau macvlan
13/03/2023 : nouveau lien pour drivers USB
08/03/2023 : nouvelle image
06/03/2023 : avertissement concernant Debian Bullseye
20/02/2023 : mise à jour suite à la nouvelle image jeedom/jeedom:V4-stable
18/06/2020 : mise à jour suite à la nouvelle image jeedom/jeedom:latest
sur le docker-Hub
05/05/2020 : Tuto obsolète suite à la suppression de l’image latest sur le Docker Hub
21/04/2020 : Maj partie Routage de l’adresse IP
18/04/2020 : création du tuto
Bonjour
Voici un tutoriel pour installer Jeedom sur un NAS Synology à partir des images officielles disponibles sur de docker-Hub. https://hub.docker.com/r/jeedom/jeedom/tags
Le tutoriel explique également la création d’un réseau macvlan
Docker.
Si vous ne souhaitez pas de réseau macvlan docker, veuillez suivre la documentation d’installation de Jeedom
Debian Bullseye n’est pas compatible avec les anciennes versions du noyau utilisée par Synology.
------------------------------------------------------------------------------------
Introduction
------------------------------------------------------------------------------------
Pourquoi 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
------------------------------------------------------------------------------------
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
Obsolète ! Drivers USB jadahl.
Drivers USB Installation manuelle depuis le Centre de paquet. SynoCommunity
Suivant l’architecture du NAS https://kb.synology.com/fr-fr/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have
Installation des drivers pour DSM 7 : voir ici Jeedom sur Synology sous Docker et mise à jour DSM7? - #24 par Didier3L
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-macvlan4\db
Logiciel PuTTY
Logiciel notepad++
et un peu de patience …
------------------------------------------------------------------------------------
Création du réseau macvlan
------------------------------------------------------------------------------------
Création du réseau macvlan
En préambule, je remercie infiniment @shad et @bruno78 du forum NAS-Forum - Communauté Francophone des serveurs NAS Synology
Car ce sont eux qui m’ont donnés les éléments de ce qui suit
La création du réseau macvlan ne peut pas se faire avec l’interface graphique de Synology !
Nous allons utiliser le mode SSH et un logiciel comme PuTTY pour le créer.
Avant cela nous avons besoin de quelques données :
Connaitre l’IP de sa box / routeur :
Regarder dans votre box. En général c’est du genre 192.168.1.254
Connaitre le nom du réseau de notre NAS :
Lancer PuTTY
Connecter vous à votre NAS Synology avec votre nom utilisateur administrateur et saisissez votre mot de passe.
Lancer la commande sudo -i
pour passer en mode root
Ressaisissez votre mot de passe
Lancer la commande ifconfig
Le nom du réseau est eth0
. Il est attaché à l’adresse IP de notre NAS
Voici les lignes de code pour créer notre nouveau réseau macvlan
docker network create \
-d macvlan \
--subnet=192.168.1.0/24 \
--ip-range=192.168.1.240/29 \
--gateway=192.168.1.254 \
--aux-address="host_bridge=192.168.1.241" \
-o parent=eth0 \
mymacvlan
Explication :
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 \
On utilise notre réseau existant
--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.254 \
On utilise le réseau de notre box (certaine box utilise l’IP 192.168.1.1)
--aux-address="host_bridge=192.168.1.241" \
On réserve une adresse spécifique pour un evenuel Routage de l’adresse IP.
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.
[Tuto] ⏩ Installation d'une antenne BLEA sur Synology avec Docker
-o parent=eth0 \
On le jointe au nom du réseau du NAS
mymacvlan
On donne un nom à notre réseau mymacvlan
Dans PuTTY, faite un copier-coller du code et taper sur Entrer
Si tout va bien vous verrez une ligne avec pleins de caractères …
Vérifions avec la commande docker network ls
Notre réseau est créé !
Les adresses suivantes ne devront pas être utilisées
192.168.1.240 Réservé pour le NAS
192.168.1.241 Réservé pour le NAS
------------------------------------------------------------------------------------
Création du fichier "docker-compose.yaml"
------------------------------------------------------------------------------------
[details=« 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 du fichier docker-compose.yaml
version: '3'
networks:
default:
external: true
name: mymacvlan
services:
jeedom:
container_name: jeedom-bullseye
# build : ./
image: jeedom/jeedom:4.4-bullseye
privileged: false
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.242
tmpfs:
- /tmp/jeedom
healthcheck:
test: ["CMD", "curl", "-fs", "-S", "--max-time", "2", "http://localhost:80"]
interval: 30s
timeout: 10s
retries: 5
volumes:
- "/volume1/docker/jeedom-macvlan/html:/var/www/html"
- "/volume1/docker/jeedom-macvlan/db:/var/lib/mysql"
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0" # MyHome / cp210x
- "/dev/ttyUSB1:/dev/ttyUSB1" # RFLink / ch341-uart
- "/dev/ttyACM0:/dev/ttyACM0" # Zwave / ACM0
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
Explication :
networks:
notre conteneur sera attaché à notre réseau mymacvlan
image:
Image utilisée pour construire notre conteneur
Dans cette exemple on utilise Debian Bullseye
https://hub.docker.com/r/jeedom/jeedom/tags
ipv4_address: 192.168.1.242
Adresse IP pour joindre Jeedom
volumes:
Répertoire « miroir » où sera installé Jeedom
devices:
Ce sont les ports USB utilisés pour vos clés Zwave, CP210X, etc …
Lancer la commande dmesg |grep tty
pour voir vos ports USB utilisés.
Ne pas laisser les chemins vers les ports USB non utilisés car l’installation ne fonctionnera pas !
PUID
et PGID
ID de l’utilisateur propriétaire.
Lancer la commande id <votre nom utilisateur administrateur>
Lancer notepad++, faite un copier-coller du code et sauvegarder le fichier docker\jeedom-macvlan\docker-compose.yaml
[/details]
------------------------------------------------------------------------------------
Création du conteneur Jeedom
------------------------------------------------------------------------------------
Création du conteneur 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 contener
Pour vérifier, allez dans le paquet Docker de Synology
------------------------------------------------------------------------------------
Lancement de Jeedom
------------------------------------------------------------------------------------