# PI 4 + Traefik + Gladys4

**URL:** <https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498>\
**Category:** Configuration\
**Tags:** gladys-docker\
**Created:** [Novembre 17, 2023, 8:55 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498 "2023-11-17T08:55:17Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 8:55 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/1 "2023-11-17T08:55:17Z")

</div>

Bonjour,

J’ai voulu essayer d’installer Gladys sur mon PI 4, cependant j’ai un soucis car je n’arrive pas a accéder à au Dashboard.

J’utilise Traefik 2.10.5 en reverse proxy, sur une version 32Bit de Pi OS 12 (bookworm) fraichement installée et voici la configuration :

compose.yml

```auto
services:
  traefik:
    image: traefik:2.10.5
    container_name: traefik
    ports:
      - "80:80"
      - "443:443"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.traefik.rule=Host(`montraefik.dns.net`)"
      - "traefik.http.routers.traefik.entrypoints=webSecure"
      - "traefik.http.routers.traefik.service=api@internal"
      - "traefik.http.routers.traefik.tls=true"
      - "traefik.http.routers.traefik.tls.certResolver=letsencrypt"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./config/traefik.yml:/etc/traefik/traefik.yml
      - ./config/acme.json:/acme.json
      - ./config/dynamic-conf.yml:/etc/traefik/dynamic-conf.yml
    restart: always
    networks:
      - traefik

networks:
  traefik:
    external: true

```

config/traefik.yml

```auto
entryPoints:
  web:
    address: ":80"
    http:
      redirections:
        entryPoint:
          to: webSecure
          scheme: https
          permanent: true
  webSecure:
    address: ":443"

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    network: traefik_network
    exposedbydefault: false

log:
  level: INFO

api:
  dashboard: true
  debug: true

certificatesResolvers:
  letsencrypt:
    acme:
      email: monemail@dns.net
      storage: acme.json
      tlsChallenge: {}
      httpChallenge:
        entryPoint: web

```

conf/dynamic-conf.yml

```auto
tls:
  options:
    default:
      minVersion: VersionTLS12
      sniStrict: true

    mintls13:
      minVersion: VersionTLS13

```

conf/acme.json

```auto
{}

```

Un petit chmod 600 sur le fichier acme.json comme demandé à par Traefik avant le lancement…

Jusque là tout fonctionne, j’accède bien à mon dashboard Traefik etc… ensuite, je veux monter Gladys avec mon reverse proxy, voici mon compose.yml :

```auto
services:
  gladys:
    image: gladysassistant/gladys:v4
    container_name: gladys
    restart: always
    privileged: true
    network_mode: host
    cgroup: host
    logging:
      driver: "json-file"
      options:
        max-size: 10m
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.gladys.rule=Host(`mongladys.dns.net`)"
      - "traefik.http.routers.gladys.entrypoints=webSecure"
      - "traefik.http.routers.gladys.tls=true"
      - "traefik.http.routers.gladys.tls.certResolver=letsencrypt"
      - "traefik.http.services.gladys.loadbalancer.server.port=8078"
    environment:
      NODE_ENV: production
      SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-production.db
      SERVER_PORT: 8078
      TZ: Europe/Paris
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data/gladysassistant:/var/lib/gladysassistant
      - /dev:/dev
      - /run/udev:/run/udev:ro
  watchtower:
    image: containrrr/watchtower
    restart: always
    container_name: watchtower
    command: --cleanup --include-restarting
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

networks:
  traefik:
    external: true

```

Génération des certificats letsencrypt OK, par contre j’obtiens un Bad Gateway de traefik, et j’arrive pas a le debug j’ai pas de logs sur cette erreur dans traefik ni dans Gladys…  
J’ai essayé pas mal de chose mais impossible à traefik de lancer le bon service.

Peut-être que quelqu’un à eu le même soucis ?

Je vous remercie

---

<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:** [Novembre 17, 2023, 8:57 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/2 "2023-11-17T08:57:48Z")

</div>

Quand tu accès au port 8078 de ta machine, tu vois bien Gladys ?

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:09 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/3 "2023-11-17T09:09:28Z")

</div>

> [@pierre-gilles](#):
>
> 8078

Si je vais sur [http://pi.local:8078](http://pi.local:8078) oui j’ai bien Gladys qui s’affiche c’est ça qui est très bizare.

---

<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:** [Novembre 17, 2023, 9:10 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/4 "2023-11-17T09:10:58Z")

</div>

Je connais pas bien Traefik (je suis plus team Caddy [https://caddyserver.com/](https://caddyserver.com/) ), mais je vois rien qui spécifie le host/IP de Gladys dans ta config Traefik ?

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:13 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/5 "2023-11-17T09:13:08Z")

</div>

mon hostname: [mongladys.dns.net](http://mongladys.dns.net) est un DynDNS qui redirige bien vers mon serveur pi, j’ai essayé ce hostname sur une appli web de mon pi et ça fonctionne bien sur mon pi.

Je continue de chercher, mais si quelqu’un à eu ce soucis là je suis preneur.

---

<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:** [Novembre 17, 2023, 9:15 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/6 "2023-11-17T09:15:05Z")

</div>

Je parlais pas de ça, il n’y a rien dans ta config qui dit comment ton Traefik contacte ton container Gladys local

En gros j’imagine que tu veux faire:

Utilisateur ↔ Traefik ↔ Gladys

Le dernier maillon il est où dans ta config ?

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:19 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/7 "2023-11-17T09:19:51Z")

</div>

C’est mon label de traefik qui dit link le service sur le port 8078

> [@Eoras](#):
>
> ` - "traefik.http.services.gladys.loadbalancer.server.port=8078"`

Dans mon Dashboard Traefik, j’ai bien mon Host :

 ![Capture d'écran 2023-11-17 101737](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/d/d7858abc87610aebc5f759cb2adbcbafa1baa172.png)

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:20 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/9 "2023-11-17T09:20:24Z")

</div>

Qui pointe vers un service qui est bien sur le port 8078

 ![Capture d'écran 2023-11-17 101919](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/4/412064d33436a81d622bdc2fa969ed2fff182501.png)

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Novembre 17, 2023, 9:25 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/10 "2023-11-17T09:25:48Z")

</div>

En fait, c’est plus compliqué. Il faut soit:

- que gladys ne soit pas en mode `network_mode: host` (mais c’est un prérequis)
- soit que tu configures traefik pour taper sur le port 8078 de ta machine (ici, 127.0.0.1 représentre l’adresse IP du container traefik, et pas de ta machine)

Pour cela, je rajouterais la ligne suivante dans les labels de gladys

`- "traefik.http.services.gladys.loadbalancer.server.url=<ip de ta machine>"`

---

<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:** [Novembre 17, 2023, 9:27 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/11 "2023-11-17T09:27:41Z")

</div>

> [@cicoub13](#):
>
> que gladys ne soit pas en mode `network_mode: host` (mais c’est un prérequis)

Je précise que c’est uniquement un pré-requis si il souhaite utiliser des intégrations qui vont utiliser des appareils sur son réseau. Exemple: LAN Manager, Intégration Xiami, Philips Hue, etc…

Si tu retire le network\_mode=host, ça marchera (Gladys s’affichera), mais les intégrations qui utilisent le réseau ne marcheront pas (normal, elles ne verront que leur réseau isolé qui n’est pas ton réseau wi-fi)

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:30 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/12 "2023-11-17T09:30:32Z")

</div>

Effectivement, j’ai omis d’ajouter le network au service gladys (quel abrutis…)

J’obtiens l’erreur suivante :

> service gladys declares mutually exclusive `network_mode` and `networks`: invalid compose project

Du coup, j’ai retiré mon network du service et j’ai mis ce que tu m’a dit :

```auto
- "traefik.http.services.gladys.loadbalancer.server.url=mongladys.dns.net"

```

J’ai toujours mon Bad Gateway ☹

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:31 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/13 "2023-11-17T09:31:53Z")

</div>

donc je dois bien garder mon host :=) car je dois pouvoir l’utiliser

---

<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:** [Novembre 17, 2023, 9:36 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/14 "2023-11-17T09:36:30Z")

</div>

Tu as testé comme disait @cicoub13 ?

```auto
- "traefik.http.services.gladys.loadbalancer.server.url=<ip de ta machine>"

```

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:37 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/15 "2023-11-17T09:37:32Z")

</div>

> [@Eoras](#):
>
> ```auto
> - "traefik.http.services.gladys.loadbalancer.server.url=mongladys.dns.net"
> 
> ```

Oui j’ai mis :

```auto
- "traefik.http.services.gladys.loadbalancer.server.url=mongladys.dns.net"

```

[monglaydys.dns.net](http://monglaydys.dns.net) est un DynDNS qui redirige vers mon IP public

---

<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:** [Novembre 17, 2023, 9:38 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/16 "2023-11-17T09:38:11Z")

</div>

C’est pas la même chose, tu as essayé de mettre l’IP privée de ta machine ? (sur ton réseau local)

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:44 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/17 "2023-11-17T09:44:31Z")

</div>

```auto
- "traefik.http.services.gladys.loadbalancer.server.url=192.168.86.20"

```

Toujours même soucis: Bad Gateway

Par contre dans mon dashboard Traefik, l’ip serveur ne change pas, j’ai toujours 127.0.0.1:8078… bizarre

 ![Capture d'écran 2023-11-17 104358](https://gladys-assistant-community.b-cdn.net/uploads/default/original/2X/7/72a9502f808c0f3f8a92e8ad791ddc424e9dc947.png)

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Novembre 17, 2023, 9:46 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/18 "2023-11-17T09:46:59Z")

</div>

Et pas de logs traefik significatifs ?

En regardant la doc, ce serait plutôt :

```auto
- "traefik.http.services.gladys.loadbalancer.server.url=http://192.168.86.20:8078"

```

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:49 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/19 "2023-11-17T09:49:29Z")

</div>

J’ai testé en retirant le network\_mod host et ajoutant le network traefik c’est OK j’accède bien, sur la dashboard Traefik j’ai bien mon url interne docket qui est mis à jour sur mon service ([http://172.19.0.3:8089](http://172.19.0.3:8089)) et j’accède bien à la page.

Je vais essayer ce que tu m’a dit @cicoub13

---

<div class="post-metadata">

**Author:** ![Eoras](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/eoras/32/14600_2.png) [@Eoras](https://community.gladysassistant.com/u/Eoras)\
**Post date:** [Novembre 17, 2023, 9:52 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/20 "2023-11-17T09:52:00Z")

</div>

Du coup, j’ai retiré le network traefik, j’ai remis le mode host, j’ai modifié mon label avec :

```auto
- "traefik.http.services.gladys.loadbalancer.server.url=http://192.168.86.20:8078"

```

Sur mon traefik j’ai l’url serveur: [http://127.0.0.1:8078](http://127.0.0.1:8078) il a toujours pas été mis à jour et j’ai encore mon Bad Gateway

---

<div class="post-metadata">

**Author:** ![cicoub13](https://gladys-assistant-community.b-cdn.net/user_avatar/community.gladysassistant.com/cicoub13/32/4482_2.png) [@cicoub13](https://community.gladysassistant.com/u/cicoub13)\
**Post date:** [Novembre 17, 2023, 9:58 UTC](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498/21 "2023-11-17T09:58:13Z")

</div>

En fait, cette option `traefik.http.services.service01.loadbalancer.server.url` existe dans la configuration par [fichier toml](https://doc.traefik.io/traefik/reference/dynamic-configuration/file/), mais pas dans la configuration via [label docker](https://doc.traefik.io/traefik/reference/dynamic-configuration/docker/) 🤔

> <https://github.com/traefik/traefik/issues/8753>
>
> Hi i would love to have this possibility
> Configure traefik via label providers:… allow setting the \`traefik.http.services.\<service-name\>.loadBalancer.server.url\`
> 
> for example in docker:
> \`\`\`yaml
> version: "3.7"
> services:
> rp:
> labels:
> traefik.http.routers.proxy.entryPoints: web
> traefik.http.routers.proxy.service: proxy-crt
> traefik.http.routers.proxy.rule: PathPrefix(\`/proxy-crt\`)
> traefik.http.routers.proxy.middlewares: strip-crt, cors-crt
> 
> traefik.http.services.proxy.loadBalancer.server.url: ${A\_URL\_AS\_VARIABLE}
> 
> traefik.http.middlewares.strip.stripPrefix.prefixes: /proxy-crt
> 
> traefik.http.middlewares.cors.headers.accessControlAllowMethods: GET,OPTIONS
> traefik.http.middlewares.cors.headers.accessControlAllowOriginlist: "\*"
> traefik.http.middlewares.cors.headers.accessControlMaxAge: 86400
> 
> \`\`\`
> 
> I have seen this question:
> https://community.traefik.io/t/traefik-v2-with-docker-compose-external-services-possible/5792/2
> 
> I know that setting this exact configuration is possible with the file provider but as far as i know not with a variable.
> 
> \`\`\`yaml
> http:
> routers:
> proxy:
> entryPoints:
> - web
> middlewares:
> - strip
> - cors
> service: proxy
> rule: PathPrefix(\`/proxy\`)
> 
> services:
> proxy:
> loadBalancer:
> passHostHeader: false
> servers:
> - url: https://example.com # NOT CONTROLLABLE VIA VARIABLE
> 
> middlewares:
> strip:
> stripPrefix:
> prefixes:
> - /proxy
> cors:
> headers:
> accessControlAllowMethods: GET,OPTIONS
> accessControlAllowOriginlist: "\*"
> accessControlMaxAge: 86400
> 
> 
> \`\`\`
> 
> A similar thing is possible with domain certs:
> \`\`\`yaml
> traefik.http.routers.myrouter.tls.domains\[0\].main: example.org
> \`\`\`
> could then look like this:
> \`\`\`yaml
> traefik.http.services.proxy.loadBalancer.servers\[0\].url: ${A\_URL\_AS\_VARIABLE}
> \`\`\`

[Page suivante](https://community.gladysassistant.com/t/pi-4-traefik-gladys4/8498.md?page=2)
