♻ Problème Installation de Jeedom sur Synology et Docker

Voici ma tâche planifiée.
En 7.2, ces drivers suffisent pour exploiter mes clés Conbee2 et aeotec Zwave+

bash 
insmod /lib/modules/usbserial.ko > /dev/null 2>&1
insmod /volume1/NAS/usb/cp210x.ko > /dev/null 2>&1
insmod /volume1/NAS/usb/ch341.ko > /dev/null 2>&1
insmod /volume1/NAS/usb/pl2303.ko > /dev/null 2>&1
insmod /volume1/NAS/usb/ti_usb_3410_5052.ko > /dev/null 2>&1
modprobe usbserial
modprobe cdc-acm

actuellement pour que les drivers fonctionnent je fais ceci en tache planifiée sous DSM7.1 :

#!/bin/sh
sleep 30
sudo insmod /lib/modules/usbserial.ko
sudo insmod /lib/modules/ch341.ko
sudo insmod /lib/modules/cp210x.ko
sudo insmod /lib/modules/pl2303.ko
sudo insmod /lib/modules/ti_usb_3410_5052.ko
modprobe usbserial
modprobe ftdi_sio
modprobe cdc-acm

On n’a plus besoin des commandes « insmod » et « modprobe » pour DSM 7.2 ?

merci

Bonjour,

Je rencontre un problème avec mon RS422+ sous DSM 7.2.

Au démarrage du conteneur j’ai l’erreur suivante :

« […] The apache2 instance did not start within 20 seconds. Please read the log files to discover problems …e[?25le7e[1G[e[33mwarne[39;49me8e[?12le[?25h e[33m(warning).e[39;49m »

Mon macvlan

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=bond0 \
mymacvlan

Voici mon docker compose :

version: '2'

networks:
  default:
    external:
      name: mymacvlan

services:
  jeedom:
    container_name: jeedom-v4
    image: jeedom/jeedom:4.3-buster
    privileged: false
    pid: "host"
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
      - NET_ADMIN
    tty: true
    hostname: jeedom
    mac_address: a0:ca:ab:cd:ef:04
    networks:
      default:
        ipv4_address: 192.168.1.243
    volumes:
      - "/volume1/docker/jeedom-macvlan/html:/var/www/html"
      - "/volume1/docker/jeedom-macvlan/db:/var/lib/mysql"
    devices:
      - "/dev/ttyACM0:/dev/ttyACM0"   # Zwave / Aeotec ACM0
      - "/dev/net/tun"
    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

avez-vous une idée d’ou ça peut venir ?

merci

Edit :

Même dans la version simple il faudrait rajouter le fait de modifier dans /root/init.sh a l’aide du terminal virtuel de l’interface conteneur Synology la ligne après echo ‹ Start apache2 › en :

sudo apachectl -f apache2.conf

:grinning:

Merci pour le louable effort du tuto, sincèrement. Malheureusement, pour ma part, mon conteneur jeedom n’est pas fonctionnel. Dès le départ il ne sait pas résoudre le lien github pour récupérer les sources, de là assez logiquement tout part en carafe puisque apache pointe vers un répertoire qui n’existe pas, bref.
Le conteneur tourne, je me connecte dessus depuis portainer, et en effet il ne parvient à ping rien du tout. Je suppose que la création du docker macvlan n’est pas bien fait chez moi ?

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=ovs_eth0 \
mymacvlan

J’ai rapidement intuité pour la gateway et le -o parent car j’ai des connaissances de base en linux et réseau, mais je bloque. je n’ai ouvert que bien plus tard le second tuto qui explique que oui, il est possible de mettre une gateway en 1.1 plutot qu’en 1.254 (le seul commentaire « on utilise le réseau de notre box » n’aide pas vraiment, pourquoi ne pas plutot indiquer de mettre la config réseau iso n’importe quel ordinateur du réseau local avec la meme passerelle ?)
Merci pour toute l’aide que vous pourrez apporter.

Je suis tombé sur ce post intéressant : Using Docker macvlan networks :: blog.oddbit.com
A priori par défaut avec un réseau macvlan, par défaut l’hote ne peut joindre ses containers et vice-versa. Etant donné que mon docker jeedom tourne sous le conteneur dans mon syno, qui est aussi le serveur dns par défaut… ça peut poser souci je pense :slight_smile: personne n’a eu le souci ?

Bonjour,

C’est indiqué dans les tutos.
C’est pour cela que l’on réserve une adresse IP pour contourner cela.

1 « J'aime »

Mais je n’ai pas besoin de BLEA moi, et en attendant mon conteneur jeedom ne fonctionne pas… Alors il faut dans tous les cas faire ce routage IP ? je n’avais même pas ouvert ce dernier tuto car je n’étais a priori pas concerné… Finalement il faut le faire dans tous les cas si je comprends bien ?
En plus le tuto oriente la création d’un conteneur sur l’adresse 192.168.1.242, et le conteneur est bien injoignable sur cette IP, donc créer un routage IP tel que tu le proposes ne résoudra pas mon problème.
Bon, je dois sûrement mal faire quelque chose, mais je ne vois pas quoi pour l’instant.

Pour Info j’ai suivi l’étale de la création de route du tuto « antenne BLEA » même si je n’ai pas cette antenne… Cela n’a rien changé.
Donc en l’état, même en suivant les tutos à la lettre cela n’a pas fonctionné. Est-il possible que depuis 2020 les commandes docker aient changé au point que le tuto soit obsolète ?

Bonjour,

Le mode macvlan est inutile pour Jeedom core, il le faut juste pour certains plugins (dont Blea) mais si tu n’en a pas besoin, oublie le macvlan :wink:
https://doc.jeedom.com/fr_FR/installation/synology

Bonjour,

Commence par créer un conteneur en mode HOST comme le tuto sur jeedom.

Tu verras par la suite en fonction de tes plugin si il te faudra passer par un réseau macvlan

Ok, mais c’est dommage, je pense que je suis pas loin, j’ai bien mon docker qui tourne sur la bonne IP; le point bloquant est qu’il ne résout pas les chemins DNS dont il ne parvient pas à installer jeedom depuis github.
Voici le step by step, je suis preneur si un expert à 10 min à consacrer à la review de mon code :

le 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.1 \
--aux-address="host_bridge=192.168.1.241" \
-o parent=ovs_eth0 \
mymacvlan

Le routage :

sudo -i
ip link add macvlan-br0 link ovs_eth0 type macvlan mode bridge
ip addr add 192.168.1.241/32 dev macvlan-br0
ip link set dev macvlan-br0 address 0:1:2:3:4:5
ip link set macvlan-br0 up
ip route add 192.168.1.240/29 dev macvlan-br0

(Je m’interroge sur l’adresse MAC renseignée sur le tuto 0:1:2:3:4:5 mais je ne sais pas quelle adresse MAC je suis sensé mettre à ce moment).

Et enfin le docker compose :

version: '3'

networks:
  default:
    name: mymacvlan
    external: true

services:
  mariadb: 
    image: "mariadb:latest"
    environment:
      MYSQL_ROOT_PASSWORD: "rootpassword"
      MYSQL_DATABASE: jeedom
      MYSQL_USER: jeedom
      MYSQL_PASSWORD: "XXXXXYYYYYZZZZZZZ"
    dns:
      -"1.1.1.1"
      -"8.8.8.8"    
    volumes: 
      - "/volume2/docker/jeedom-macvlan/db:/var/lib/mysql"
    ports: 
      - "3308:3306"

  jeedom:
    container_name: jeedom-v4-macvlan
#   build : ./
    image: jeedom/jeedom:4.4-buster
    privileged: false
    pid: "host"
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    tty: true
    hostname: jeedom
    dns:
      -"1.1.1.1"
      -"8.8.8.8"
    mac_address: a0:ca:ab:cd:ef:04
    ports: 
      - "9080:80"
    networks:
      default:
        ipv4_address: 192.168.1.242
    volumes:
      - "/volume2/docker/jeedom-macvlan/html:/var/www/html"
      
#    devices:
      #- "/dev/ttyUSB0:/dev/ttyUSB0"   # MyHome / cp210x
      #- "/dev/ttyUSB1:/dev/ttyUSB1"   # RFLink / ch341-uart
      #- "/dev/ttyACM0:/dev/ttyACM0"   # Zwave / ACM0
    restart: unless-stopped
    depends_on:
      - mariadb
    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
      - ROOT_PASSWORD=password
      - APACHE_PORT=9080
      - SSH_PORT=9022
      - MODE_HOST=1

Je crains de louper un truc sur les ports ou les mdp de la BDD pour que Jeedom tape bien dessus.
Les logs du conteneur jeedom :

Start init

Start jeedom installation

--2024-01-27 19:33:59--  https://raw.githubusercontent.com/jeedom/core/beta/install/install.sh

Resolving raw.githubusercontent.com (raw.githubusercontent.com)... failed: Temporary failure in name resolution.

wget: unable to resolve host address 'raw.githubusercontent.com'

Installing MariaDB/MySQL system tables in '/var/lib/mysql/' ...

OK



To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system





PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !

To do so, start the server, then issue the following command:



'/usr//bin/mysql_secure_installation'



which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.



See the MariaDB Knowledgebase at http://mariadb.com/kb



You can start the MariaDB daemon with:

cd '/usr/' ; /usr//bin/mysqld_safe --datadir='/var/lib/mysql/'



You can test the MariaDB daemon with mysql-test-run.pl

cd '/usr//mysql-test' ; perl mysql-test-run.pl



Please report any problems at http://mariadb.org/jira



The latest information about MariaDB is available at http://mariadb.org/.



Consider joining MariaDB's strong and vibrant community:

https://mariadb.org/get-involved/



[....] Stopping MariaDB database server: mysqld[ ok .

[....] Starting MariaDB database server: mysqld[ ok .

cp: cannot stat '/var/www/html/core/config/common.config.sample.php': No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

Start atd

[....] Stopping deferred execution scheduler: atd[ ok .

[....] Starting deferred execution scheduler: atd[ ok .

Starting mariadb

[....] Stopping MariaDB database server: mysqld[ ok .

[....] Starting MariaDB database server: mysqld[ ok .

All init complete

Start apache2

[....] Starting Apache httpd web server: apache2[FAIL failed!

[....] The apache2 configtest failed. ...[warn (warning).

Output of config test was:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.1.242. Set the 'ServerName' directive globally to suppress this message

(2)No such file or directory: AH02291: Cannot access directory '/var/www/html/log/' for main error log

AH00014: Configuration check failed

Action 'configtest' failed.

The Apache error log may have more information.

Bonjour,

Le fichier docker compose n’est pas conforme au tutoriel.
Maria DB n’a rien à y faire.
DNS non plus

Le routage Maclan n’est pas nécessaire pour l’instant tant que Jeedom n’a pas démarré

Tu as raison, j’ai fait un mix avec un autre tuto que j’avais suivi avant que jeedom ne sorte le sien pour synology, et qui séparait les deux services (BDD / jeedom).
J’ai ajouté la partie dns car mon conteneur ne parvient pas à joindre github - malheureusement cela n’a rien changé, à mon sens le souci ne vient pas de là, mais ok, j’entends.
Je vais repartir sur le tuto officiel jeedom comme le suggère @pifou et en suivant je re testerai ta solution sans découper les services, car ça m’intéresse tout de même d’avoir une IP dédiée au conteneur.

Bonjour

merci pour se tuto accessible aux débutant comme moi.

Avançant pas à pas sur ma configuration je me retrouve fasse à un problème :

j’ai fait l’installation avec aucunes devices renseigné car aucune clés au moment de l’installation. Maintenant j’ai fait l’achat d’une cles zigbee sonoff 3.0 E branché en façade USB synology 218+ installé les packets synocli kernel tools + synokernel usb serial drivers fait le script dans le planificateur de tache mis à jour la cles sono EZZP 7.3.1 build 176.

Maintenant il me faut declaré dans jeedom sur jeezigbee le port du controleur hors je ne vois que aucun auto et passerelle distante.

Je pense qu’il faut mettre à jour le fichier docker-compose.yaml mais comment le reinjecter sur jeedom ?

Merci pour vos réponses

Bonjour à tous !

J’ai suivi le tuto, mais je n’arrive pas à me connecter à Jeedom en local.

Les quelques doutes que j’ai :

1 : le fichier de config, si je fais un copier coller me retourne un warning sur la partie network :
WARN[0000] network default: network.external.name is deprecated. Please set network.name with external: true

=> si je modifie ainsi, je n’ai plus ce warning :

version: '3'

networks:
  default:
      external: true
      name: mymacvlan

Une fois ceci fait, je n’ai pas de retour type « sucess », mais :

[+] Running 1/1olume1/docker/jeedom-macvlan# docker-compose up -d
 ⠿ Container jeedom-v4  Started                                                                                   73.4s
root@Serveur:/volume1/docker/jeedom-macvlan#

quand je vais voir container manager, le conteneur a pourtant l’air de fonctionner, et la configuration semble OK :

Je rajoute à tout hasard le log, je ne vois pas grand chose…

Est-ce que quelqu’un a une idée de ce qui cloche ?

merci d’avance !

Bonjour,
rien ne cloche, pas d’erreur, tout va bien :slight_smile: peut être juste le message de fin (success) qui a changé avec une nouvelle version de docker / compose …

Hello pifou,
thanks pour ta réponse, c^est super sympa de m’aider !

Bon du coup pourquoi je n’arrive pas à accéder à ce foutu Jeedom ??
La connexion semble refusée, donc est-ce un problème de port ?
J’essaye de me connecter en http://192.168.0.242, dois-je spécifier un port spécial ?

Quand je vois la config, il n’y a rien sur les ports, est-ce le 8080 par défaut ? Dois-je en ajouter un pour me connecter sur le port que je souhaite ?

Merci d’avance pour tous les conseils avisés :slight_smile:

Bonjour,
Peux-tu poster le fichier docker-compose que tu as utilisé pour créer ton container ?

Bonjour Didier,

oui bien sûr, voici un copier coller :

version: '3'

networks:
  default:
      external: true
      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.0.242
    volumes:
      - "/volume1/docker/jeedom-macvlan/html:/var/www/html"
      - "/volume1/docker/jeedom-macvlan/db:/var/lib/mysql"
    devices:
      - "/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"

J’ai bidouillé un peu les ports.
quand rien n’est n’est activé, j’ai un connection refused.
J’ai donc arrêté le conteneur, et la je n’ai aucune connexion.
Je configure sur un autre port :

et la rebelotte : connection refused :
2024-06-25 07_16_57-192.168.0.242 et 12 pages de plus - Travail – Microsoft​ Edge

Toute idée bienvenue :slight_smile:
Merci à tous.

Bonjour,

Je pense qu’il va falloir repartir de zéro.
Car tu mélanges deux réseaux : Le MacVlan et le Host.

En regardant ton fichier, l’adresse ip d’accès à Jeedom est 192.168.0.242:80

Il faut d’abord vérifier si le réseau macvlan a été correctement créé.
Peux-tu poster ta configuration pour la création du réseau ?

Je t’invite également à utiliser le site suivant pour vérifier si le fichier docker-compose est correct

Tu peux également remplacer
image: jeedom/jeedom:4.4-buster
Par
image: jeedom/jeedom:latest
Image qui sous DEBIAN bullseye