# Gladys sur Unraid

**URL:** <https://community.gladysassistant.com/t/gladys-sur-unraid/6959>\
**Category:** Développement\
**Created:** [Février 16, 2022, 1:02 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959 "2022-02-16T13:02:09Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![jgcb00](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jgcb00/32/5863_2.png) [@jgcb00](https://community.gladysassistant.com/u/jgcb00)\
**Post date:** [Mars 4, 2022, 9:02 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/21 "2022-03-04T21:02:48Z")

</div>

Ok c’est ça que je comprend pas bien :

> [@Zigbee2mqtt : Image docker de test basée Gladys v4](https://community.gladysassistant.com/t/zigbee2mqtt-image-docker-de-test-basee-gladys-v4/5746/275):
>
> ```auto
> [
> '/var/run/docker.sock:/var/run/docker.sock',
> '/var/lib/gladysassistant:/var/lib/gladysassistant'
> ]
> 
> ```

ça correspond au valeur par defaut ? ou à ce qui est actuellement utilisé sur le docker ?  
Par ce que si c’est ce qui est actuellement en cours sur le docker c’est facile à récupérer. Donc je suis persuader que je comprend pas bien le problème vu que la solution m’a l’air simple

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Mars 4, 2022, 9:06 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/22 "2022-03-04T21:06:42Z")

</div>

Bah la c’est simple mais si ton path c’est /ici/toto y’a aucun moyen de deviner que c’est le mount sur l’hôte.

Ça pourrait le faire mais à voir ce que les autres en pensent.

J’essaye d’anticiper les problèmes 😁

J’ai éditer mon précédent message

---

<div class="post-metadata">

**Author:** ![jgcb00](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jgcb00/32/5863_2.png) [@jgcb00](https://community.gladysassistant.com/u/jgcb00)\
**Post date:** [Mars 4, 2022, 9:16 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/23 "2022-03-04T21:16:19Z")

</div>

Donc si j’applique à mon cas tu obtiens :

```auto
[
'/var/run/docker.sock:/var/run/docker.sock',
'/run/udev:/run/udev',
'/dev:/dev',
'/mnt/user/appdata/Gladys:/var/lib/gladysassistant'
]

```

Sauf qu’il y a en permanence la même chose à droite le `/var/lib/gladysassistant/` il change jamais donc c’est ça qui permet de l’identifier non ?

Edit après avoir vu ton edit : oui je suis parfaitement d’accord avec toi, mais toi tu semblais avoir trouver une méthode pour le faire automatiquement correct ou pas ?

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Mars 4, 2022, 9:20 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/24 "2022-03-04T21:20:03Z")

</div>

En théorie oui ça ne change pas.

Edit: oui l’idée c’est de lister les mount, de chercher /var/lib/gladysassistant et de prendre la valeur à gauche

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 8:51 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/25 "2022-03-07T08:51:51Z")

</div>

> [@jgcb00](#):
>
> Sauf qu’il y a en permanence la même chose à droite le `/var/lib/gladysassistant/` il change jamais donc c’est ça qui permet de l’identifier non ?

Le `/var/lib/gladysassistant` il vient du SQLITE\_FILE\_PATH, donc je ne dirais pas non plus qu’il bouge jamais, mais oui il est connu dans le code 🙂

Du coup pour récapituler, deux options:

- **Option 1:** Extraire le dossier depuis les volumes montés, en trouvant le bon dossier grâce au SQLITE\_FILE\_PATH
- **Option 2:** Variable d’environnement, genre ` GLADYS_FOLDER_PATH_ON_HOST`, ce qui est peut-être plus explicite et plus prédictible. Surtout que dans le cas où on lance Gladys via Syno ou Unraid, on peut très bien ajouter cette variable.

---

<div class="post-metadata">

**Author:** ![guim31](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/guim31/32/4840_2.png) [@guim31](https://community.gladysassistant.com/u/guim31)\
**Post date:** [Mars 7, 2022, 9:09 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/26 "2022-03-07T09:09:55Z")

</div>

Moi qui utilises UNRAID depuis assez longtemps, je pense que l’option 2 est la meilleure. D’autant qu’il est facile dans le template pour Unraid de commenter les champs à remplir pour guider l ’ utilisteur si besoin

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 4:11 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/27 "2022-03-07T16:11:33Z")

</div>

Pour rebondir sur tout ça, je suis allé voir le code pour essayer de voir si je pouvais le faire, mais en fait tout ça est déjà codé du coup je comprend plus rien 😅

L’intégration Zigbee2mqtt appelle bien la fonction basePath:

> <https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/installMqttContainer.js#L31>

```auto
 const { basePathOnContainer, basePathOnHost } = await this.basePath();

```

Qui elle même retourne bien le path côté host:

> <https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/basePath.js#L23>

Donc je comprend pas pourquoi ça marche pas, le code est là ! 😃

@cicoub13 dis moi si ça te dit quelque chose !

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Mars 7, 2022, 5:29 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/29 "2022-03-07T17:29:17Z")

</div>

En lisant le code j’ai l’impression que c’est inversé, qu’on récupère le path côté container, je me trompe ?

> <https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/installMqttContainer.js#L32>

`gladys-z2m-mqtt-env.sh ${basePathOnContainer}`

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 5:32 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/30 "2022-03-07T17:32:39Z")

</div>

C’est normal, cette partie se déroule dans le container.

L’endroit où on définit le volume, c’est ici:

> <https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/installMqttContainer.js#L34>

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 5:34 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/31 "2022-03-07T17:34:55Z")

</div>

Par contre, il y a quelque chose qui ne veut pas, cette ligne mutate l’objet json global, donc ça fait push à chaque fois que cette fonction est appelée, et ça touche à la variable globale, ça va pas ça

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 5:36 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/32 "2022-03-07T17:36:20Z")

</div>

Idem ici ( [https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/installMqttContainer.js#L34](https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/installMqttContainer.js#L34) ), le push mutate l’objet global.

---

<div class="post-metadata">

**Author:** ![VonOx](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/vonox/32/10128_2.png) [@VonOx](https://community.gladysassistant.com/u/VonOx)\
**Post date:** [Mars 7, 2022, 5:37 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/33 "2022-03-07T17:37:55Z")

</div>

C’est ça qui pose problème tu penses ?

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 5:39 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/34 "2022-03-07T17:39:18Z")

</div>

Je pense pas que ce soit le bug ici, mais en tout cas c’est sûr que ce problème cause des bugs

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 5:57 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/35 "2022-03-07T17:57:45Z")

</div>

Je me suis lancé une petite VM pour tester tout ça.

J’ai lancé un container avec les paramètres suivants :

```auto
docker run -d \
// retiré pour lisibilité
-v /var/lib/gladysassistant_other_folder:/var/lib/gladysassistant \
gladysassistant/gladys:v4

```

J’ai rajouté des logs, et j’ai lancé un container Zigbee2mqtt, et ça donne ça :

```auto
2022-03-07T18:55:44+0100 <info> installMqttContainer.js:25 (Zigbee2mqttManager.installMqttContainer) MQTT broker is being installed as Docker container...
2022-03-07T18:55:44+0100 <info> installMqttContainer.js:26 (Zigbee2mqttManager.installMqttContainer) Pulling eclipse-mosquitto:2 image...
2022-03-07T18:55:47+0100 <info> installMqttContainer.js:30 (Zigbee2mqttManager.installMqttContainer) Preparing broker environment...
{
  basePathOnContainer: '/var/lib/gladysassistant',
  basePathOnHost: '/var/lib/gladysassistant'
}
['/var/lib/gladysassistant/zigbee2mqtt/mqtt:/mosquitto/config']
2022-03-07T18:55:47+0100 <info> installMqttContainer.js:37 (Zigbee2mqttManager.installMqttContainer) Creating container...
2022-03-07T18:55:47+0100 <info> installMqttContainer.js:51 (Zigbee2mqttManager.installMqttContainer) MQTT broker is restarting...

```

Le basePathOnHost n’est pas bon, il y a un bug dans la fonction basePath

J’enquête…

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 6:02 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/36 "2022-03-07T18:02:24Z")

</div>

J’avance plus loin, après avoir ajouté des logs, l’appel:

```auto
const gladysMounts = await this.gladys.system.getContainerMounts(os.hostname());

```

Renvoie un tableau vide… Ainsi, gladysMounts est vide et le default est appliqué…

Je continue mon enquête

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 6:08 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/37 "2022-03-07T18:08:23Z")

</div>

Je pense que je comprend, la fonction attend un containerId :

> <https://github.com/GladysAssistant/Gladys/blob/master/server/lib/system/system.getContainerMounts.js#L10>

Et derrière la fonction envoie le hostname :

> <https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/basePath.js#L17>

Il faudrait envoyer l’id du container actuelle

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 7, 2022, 6:10 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/38 "2022-03-07T18:10:13Z")

</div>

J’ai créé une issue Github avec les détails :

> <https://github.com/GladysAssistant/Gladys/issues/1454>
>
> The function here needs the containerId =\> https://github.com/GladysAssistant/Gl…adys/blob/master/server/lib/system/system.getContainerMounts.js#L10
> 
> But instead, sends the os.hostname() =\>  
> 
> https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/basePath.js#L17
> 
> https://community.gladysassistant.com/t/gladys-sur-unraid/6959/37?u=pierre-gilles

Et :

> <https://github.com/GladysAssistant/Gladys/issues/1455>
>
> Push mutate the global object : 
> 
> https://github.com/GladysAssistant/Gladys/bl…ob/master/server/services/zigbee2mqtt/lib/installZ2mContainer.js#L37
> 
> https://github.com/GladysAssistant/Gladys/blob/master/server/services/zigbee2mqtt/lib/installMqttContainer.js#L34

---

<div class="post-metadata">

**Author:** ![jgcb00](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jgcb00/32/5863_2.png) [@jgcb00](https://community.gladysassistant.com/u/jgcb00)\
**Post date:** [Mars 8, 2022, 9:24 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/39 "2022-03-08T21:24:13Z")

</div>

Merci beaucoup pour ces avancées,

Avec la publication de la 4.8 ça va être l’occasion de tester la mise à jour sur unraid parce que je ne fais pas tourner de watchtower…  
Par conséquent, j’attend de voir si il me propose de mettre à jour l’image docker avec une nouvelle

---

<div class="post-metadata">

**Author:** ![pierre-gilles](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/pierre-gilles/32/5886_2.png) [@pierre-gilles](https://community.gladysassistant.com/u/pierre-gilles)\
**Post date:** [Mars 8, 2022, 9:25 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/40 "2022-03-08T21:25:43Z")

</div>

Tiens nous au courant! Par contre, ce dont j’ai parlé par rapport à Unraid (les fixs lié au Zigbee2mqtt) ne sont pas dans cette 4.8, ce sera dispo dans la prochaine maj 🙂 J’ai travaillé dessus ce matin c’était trop tard pour partir dans la 4.8.

---

<div class="post-metadata">

**Author:** ![jgcb00](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/jgcb00/32/5863_2.png) [@jgcb00](https://community.gladysassistant.com/u/jgcb00)\
**Post date:** [Mars 8, 2022, 9:29 UTC](https://community.gladysassistant.com/t/gladys-sur-unraid/6959/41 "2022-03-08T21:29:01Z")

</div>

Oui, je m’en doutais il y a pas de problème, l’instance fonctionne de mon côté, on est pas pressé plus le temps passe et plus gladys est compétitif donc autant laissé un peu de temps.

Merci beaucoup en tout cas, très sympa la mise à jour !

[Page précédente](https://community.gladysassistant.com/t/gladys-sur-unraid/6959.md?page=1)

[Page suivante](https://community.gladysassistant.com/t/gladys-sur-unraid/6959.md?page=3)
