Il est maintenant plus facile d’installer Jeedom avec l’image docker proposée par Jeedom et avec plus de simplicité dans sa mise œuvre.
utiliser le Tutoriel ci-après :
Mise à jour :
14/01/2024 : refonte de la partie Création du réseau macvlan
13/03/2023 : nouveau lien pour drivers USB
06/03/2023 : maj Bon à savoir avec script DNS jeedom
20/02/2023 : lien vers tuto jeedom/jeedom:V4-stable
05/02/2023 : mise à jour des liens vers GitHub pour les fichiers d’installation.
04/01/2022 : ajout remarque concernant fichier init.sh pour DSM7. Merci @Babasile. Ajout info Drivers jadahl pour DSM 7.
20/06/2021 : New maj du tuto suite nouveau fichier d’installation sur le github Jeedom
31/12/2020 : ajout remarques Drivers jadahl. Merci @Stef74. Modif du fichier docker-compose.yaml
partie devices
. ajout remarque pour Logiciel notepad++
21/10/2020 : Précision limitation utilisation périphérique Bluetooth
06/09/2020 : ajout remarque pour ports USB non utilisés et réseau gateway. Merci @maxiime
27/06/2020 : modif du fichier docker-compose.yaml
et partie Pré-requis
Répertoire « miroir » où sera installé Jeedom et la base de donnée Mysql
23/05/2020 : modif du fichier docker-compose.yaml
22/05/2020 : Ajout info pour sauvegarder le conteneur
21/05/2020 : Ajout info pour antenne plugin BLEA
17/05/2020 : Création du tuto
***Bonjour
Voici un tutoriel pour installer Jeedom sur un NAS Synology avec docker
Système Debian buster
Jeedom v4 stable officiel
Réseau macvlan
------------------------------------------------------------------------------------
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 votre version de DSM 6 https://kb.synology.com/fr-fr/DSM/tutorial/What_kind_of_CPU_does_my_NAS_have
pour DSM 7 : voir ici Jeedom sur Synology sous Docker et mise à jour DSM7? - #24 par Didier3L
Créer un dossier jeedom-v4
dans le dossier partagé docker
de votre NAS
Créer un sous dossier \docker\jeedom-v4\html
Créer un sous dossier \docker\jeedom-v4\db
Créer un sous dossier \docker\jeedom-v4\install\OS_specific\Docker
Logiciel PuTTY
Logiciel notepad++ configuré en format « UNIX (LF) »
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 https://www.nas-forum.com/forum Car ce sont eux qui m’ont donnés les éléments pour la création d’un réseau macvlan
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 connaitre 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
ou ovs_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 "Dockerfile"
------------------------------------------------------------------------------------
[details=« Création du fichier « Dockerfile » »]
Avant de créer notre conteneur, nous allons au préalable créer une image à l’aide d’un fichier de configuration Dockerfile
Le fichier Dockerfile
ne possède pas d’extension
Voici le contenu du fichier Dockerfile
New Dockerfile
FROM debian:10
LABEL version="1.0"
# Installation des paquets
# ccze : couleur pour les logs
# nano : editeur de fichier
RUN apt-get update && apt-get install -y \
locales \
ccze \
nano
# Copie du fichier d'installation
ADD install/install-alpha.sh /tmp/install.sh
RUN chmod +x /tmp/install.sh
RUN sh /tmp/install.sh
# Initialisation
ADD install/OS_specific/Docker/init.sh /root/init.sh
RUN chmod +x /root/init.sh
CMD ["sh", "/root/init.sh"]
Explication :
Notre image sera créée avec un système Debian 10 (Buster)
Les paquets minimum sont installés
L’étape de l’installation de Jeedom est créé avec le fichier init.sh
Lancer notepad++, faite un copier-coller du code et sauvegarder le fichier docker\jeedom-v4\Dockerfile
[/details]
------------------------------------------------------------------------------------
Création du fichier "docker-compose.yaml"
------------------------------------------------------------------------------------
[details=« Création du fichier « docker-compose.yaml » »]
Pour créer notre conteneur, nous allons utiliser un fichier de configuration docker-compose.yaml
Voici le contenu du fichier docker-compose.yaml
New docker-compose.yaml
version: '2'
networks:
default:
external:
name: mymacvlan
services:
jeedom:
container_name: jeedom-v41
build : ./
privileged: false
pid: "host"
cap_add:
- SYS_PTRACE
- SYS_ADMIN
tty: true
hostname: jeedom
mac_address: a0:ca:ab:cd:ef:03
networks:
default:
ipv4_address: 192.168.1.243
volumes:
- "/volume1/docker/jeedom-v4/html:/var/www/html"
- "/volume1/docker/jeedom-v4/db:/var/lib/mysql"
devices:
- "/dev/ttyUSB0:/dev/ttyUSB0"
- "/dev/ttyUSB1:/dev/ttyUSB1"
- "/dev/ttyACM0:/dev/ttyACM0"
restart: unless-stopped
environment:
- TZ=Europe/Paris
- PUID=1032
- 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
ipv4_address: 192.168.1.243
Adresse IP pour joindre Jeedom
volumes:
Répertoire « miroir » où sera installé Jeedom et la base de donnée Mysql
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-v4\docker-compose.yaml
[/details]
------------------------------------------------------------------------------------
Fichier "init.sh"
------------------------------------------------------------------------------------
[details=« Fichier « init.sh » »]
Le fichier init.sh
permet de :
- Lancer l’installation de Jeedom au démarrage du conteneur si il n’est pas déjà installé.
- Lancer les services lors des redémarrages du conteneur quand Jeedom est installé
init.sh
Lancer notepad++, faite un copier-coller du code et sauvegarder le fichier docker\jeedom-v4\install\OS_specific\Docker\init.sh
Pour DSM 7 modifier la ligne 63 du code
echo 'Start apache2'
service apache2 start
Par
echo 'Start apache2'
sudo apachectl -f apache2.conf
[/details]
------------------------------------------------------------------------------------
Fichier "install-alpha.sh"
------------------------------------------------------------------------------------
[details=« Fichier « install-alpha.sh » »]
New install-alpha.sh 12 févr. 2021
Lancer notepad++, faite un copier-coller du code et sauvegarder le fichier docker\jeedom-v4\install\install-alpha.sh
[/details]
------------------------------------------------------------------------------------
Vérification préalable
------------------------------------------------------------------------------------
Vérification préalable
Vérifier que tous les fichiers sont créés dans les bons répertoires
------------------------------------------------------------------------------------
Création de l'image "jeedom-v4_jeedom:latest"
------------------------------------------------------------------------------------
[details=« Création de l’image « jeedom-v4_jeedom:latest » »]
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 cd /volume1/docker/jeedom-v4
pour changer de répertoire
Lancer la commande docker-compose build
Vous allez voir les lignes de log défiler
L’installation dure environ 30 minutes
Lors du message Installation done. Reboot required.
Laissez faire … et ne toucher à rien.
A la fin du processus, vous devriez avoir ce type de message
Votre image jeedom-v4_jeedom:latest
est créé
[/details]
------------------------------------------------------------------------------------
Création du conteneur "jeedom-v4"
------------------------------------------------------------------------------------
[details="Création du conteneur « jeedom-v4" »]
Lancer la commande docker-compose up -d
Votre conteneur jeedom-v4 est créé
Le conteneur jeedom-v4
et le processus d’installation de Jeedom se sont lancée automatiquement
[/details]
------------------------------------------------------------------------------------
Vérification du processus de l'installation de Jeedom
------------------------------------------------------------------------------------
New Cette étape n’est plus necessaire avec la nouvelle version
Ancienne version
Ancienne version
Pour vérifier que l’installation de Jeedom s’exécute correctement nous allons « rentrer » à l’intérieur de notre conteneur
Lancer la commande sudo docker exec -it jeedom-v4 /bin/bash
Lancer la commande tail -n +1 /root/init.log && tail -f /root/init.log | ccze -A
Vous devriez voir les lignes de log défiler
L’installation dure environ 30 minutes
Laissez faire …
A la fin du processus d’installation, Jeedom nous indique si tout c’est bien passé
Le mot de passe choisi pour Mysql / mariaDB a bien été repris
Le démarrage des différents services sont terminés
L’installation est terminée
Lancer la commande Ctrl+c
Lancer la commande exit
pour sortir du conteneur
------------------------------------------------------------------------------------
Lancement de Jeedom
------------------------------------------------------------------------------------
Saisissez dans votre navigateur 192.168.1.243
La page de connexion s’ouvre
le Nom d’utilisateur est admin
le mot de passe est admin
Changer votre mot de passe admin
Dans Configuration / réseaux / Accès interne : Vérifier votre adresse IP
Restaurer une sauvegarde Jeedom si vous en avez une
Si vous avez beaucoup de plugin, installer vos plugins et les dépendances avant de restaurer votre sauvegarde
Merci pour votre attention