[Traefik - Proxy/Loadbalancer] Ervaringen & Discussie

Pagina: 1 2 3 4 Laatste
Acties:

Acties:
  • 0 Henk 'm!

  • Faifz
  • Registratie: November 2010
  • Laatst online: 23-06 14:35
Je certificaat is getekend voor root@rpi4 wat natuurlijk geen URL of een IP-adres is. Een certificaat gaan tekenen voor 127.0.0.1 (of ::1) is niet echt nuttig. Je browser zal altijd de melding geven dat het certificaat niet vertrouwd is tenzij je de CA certificaat in je root store installeert.

Behalve voor de traefik container zelf, expose je geen poorten want je laadt traefik in de container door 'traefik.enable=true' te gebruiken. Je kan een poort maar maximaal eenmaal binden aan een IP-adres en jij probeert het 2x.

Wat is je domeinnaam nu precies home.arpa of rpi4.home.arpa? Hou het simpel en blijf bij home.arpa als je enkele DNS zone. Ik zal er vanuit gaan dat traefik-dashboard de volgende FQDN heeft: traefik.home.arpa en je wil whoami.home.arpa voor whoami.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
version: '3'
services:
  traefik:
    image: traefik:2.5
    container_name: traefik
    command:
      # Traefik-dashboard settings
      - "--log.level=DEBUG"
      - "--api.dashboard=true"
      - "--api.insecure=false"
      # Docker als provider
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.file.directory=/etc/traefik/dynamic"
      # Entrypoint -> is a front-end named "web" on HTTP Port 80
      - "--entrypoints.web.address=:80"
      # Entrypoint -> is a front-end named "web-secure" on HTTPS Port 443
      - "--entrypoints.web-secure.address=:443"
    labels:
     ### Traefik dashboard stuff ###
     - traefik.enable=true
     - traefik.http.routers.traefik-secure.tls=true
     - traefik.http.routers.traefik-secure.entrypoints=web-secure
     - traefik.http.routers.traefik-secure.rule=Host(`traefik.home.arpa`)
     - traefik.http.routers.traefik-secure.service=api@internal
    ports:
      - 80:80
      - 443:443
    volumes:
     - ${USERDIR}/traefik/config.yml:/etc/traefik/dynamic/config.yml:ro
     - ${USERDIR}/traefik/certs:/etc/certs:ro
     - /var/run/docker.sock:/var/run/docker.sock:ro

  whoami:
    image: traefik/whoami
    container_name: whoami
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.whoami-secure.entrypoints=web-secure
      - traefik.http.routers.whoami-secure.tls=true
      - traefik.http.routers.whoami-secure.rule=Host("whoami.home.arpa")


config.yml:

code:
1
2
3
4
tls:
  certificates:
    - certFile: /etc/certs/local-cert.pem
      keyFile: /etc/certs/local-key.pem


Traefik dashboard is optioneel en is vrijwel nutteloos vind ik. Dus die settings kan je beter weglaten als je het niet nodig hebt.

Edit: je kan beter een wildcard certificaat gaan maken voor *.home.arpa zodat je deze kunt gebruiken voor traefik.home.arpa en whoami.home.arpa

Acties:
  • 0 Henk 'm!

  • JorisV
  • Registratie: September 2008
  • Laatst online: 08:34
Faifz schreef op zondag 26 december 2021 @ 15:00:
Je certificaat is getekend voor root@rpi4 wat natuurlijk geen URL of een IP-adres is. Een certificaat gaan tekenen voor 127.0.0.1 (of ::1) is niet echt nuttig. Je browser zal altijd de melding geven dat het certificaat niet vertrouwd is tenzij je de CA certificaat in je root store installeert.

Behalve voor de traefik container zelf, expose je geen poorten want je laadt traefik in de container door 'traefik.enable=true' te gebruiken. Je kan een poort maar maximaal eenmaal binden aan een IP-adres en jij probeert het 2x.

Wat is je domeinnaam nu precies home.arpa of rpi4.home.arpa? Hou het simpel en blijf bij home.arpa als je enkele DNS zone. Ik zal er vanuit gaan dat traefik-dashboard de volgende FQDN heeft: traefik.home.arpa en je wil whoami.home.arpa voor whoami.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
version: '3'
services:
  traefik:
    image: traefik:2.5
    container_name: traefik
    command:
      # Traefik-dashboard settings
      - "--log.level=DEBUG"
      - "--api.dashboard=true"
      - "--api.insecure=false"
      # Docker als provider
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.file.directory=/etc/traefik/dynamic"
      # Entrypoint -> is a front-end named "web" on HTTP Port 80
      - "--entrypoints.web.address=:80"
      # Entrypoint -> is a front-end named "web-secure" on HTTPS Port 443
      - "--entrypoints.web-secure.address=:443"
    labels:
     ### Traefik dashboard stuff ###
     - traefik.enable=true
     - traefik.http.routers.traefik-secure.tls=true
     - traefik.http.routers.traefik-secure.entrypoints=web-secure
     - traefik.http.routers.traefik-secure.rule=Host(`traefik.home.arpa`)
     - traefik.http.routers.traefik-secure.service=api@internal
    ports:
      - 80:80
      - 443:443
    volumes:
     - ${USERDIR}/traefik/config.yml:/etc/traefik/dynamic/config.yml:ro
     - ${USERDIR}/traefik/certs:/etc/certs:ro
     - /var/run/docker.sock:/var/run/docker.sock:ro

  whoami:
    image: traefik/whoami
    container_name: whoami
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.whoami-secure.entrypoints=web-secure
      - traefik.http.routers.whoami-secure.tls=true
      - traefik.http.routers.whoami-secure.rule=Host("whoami.home.arpa")


config.yml:

code:
1
2
3
4
tls:
  certificates:
    - certFile: /etc/certs/local-cert.pem
      keyFile: /etc/certs/local-key.pem


Traefik dashboard is optioneel en is vrijwel nutteloos vind ik. Dus die settings kan je beter weglaten als je het niet nodig hebt.

Edit: je kan beter een wildcard certificaat gaan maken voor *.home.arpa zodat je deze kunt gebruiken voor traefik.home.arpa en whoami.home.arpa
Dank!
Ik krijg het niet helemaal voor elkaar, maar dat ligt aan mij. Domein/DNS en de certificaten is me een raadsel. Ik heb het traefik dashboard er uit gegooid en ik heb nu:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
version: '3'
services:
  traefik:
    image: traefik:2.5
    container_name: traefik
    command:
      - "--log.level=DEBUG"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.file.directory=/etc/traefik/dynamic"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web-secure.address=:443"
    ports:
      - 80:80
      - 443:443
    volumes:
     - ${USERDIR}/traefik/config.yml:/etc/traefik/dynamic/config.yml:ro
     - ${USERDIR}/traefik/certs:/etc/certs:ro
     - /var/run/docker.sock:/var/run/docker.sock:ro

  whoami:
    image: traefik/whoami
    container_name: whoami
    restart: unless-stopped
    labels:
      - traefik.enable=true
      - traefik.http.routers.whoami-secure.entrypoints=web-secure
      - traefik.http.routers.whoami-secure.tls=true
      - traefik.http.routers.whoami-secure.rule=Path("/whoami")

  esphome:
    image: esphome/esphome
    container_name: esphome2
    restart: unless-stopped
    volumes:
      - ${USERDIR}/esphome:/config:rw
      - /etc/localtime:/etc/localtime:ro
    labels:
      - traefik.enable=true
      - traefik.http.routers.esphome-secure.entrypoints=web-secure
      - traefik.http.routers.esphome-secure.tls=true
      - traefik.http.routers.esphome-secure.rule=Path("/esphome")
      - traefik.http.services.esphome-secure.loadbalancer.server.port=6052

Daarmee kan ik whoami bereiken op https://rpi4/whoami. Dat is prima. Iets anders (whoami.rpi4 of varianten lukt echt niet).
Ik heb geprobeerd in google chrome het certificaat te exporteren en te importeren, maar ik krijg nog steeds een waarschuwing van een niet geldig certificaat.
Ik probeer nu ook een andere container toe te voegen: EspHome. Die luistert naar poort 6052. Bij het starten van de container krijg ik: Starting dashboard web server on http://0.0.0.0:6052, maar bij https://rpi4/esphome komt er een: WARNING 404 GET /esphome (172.23.0.2)
Dus
-hoe krijg ik het goed certificaat geïmporteerd?
-hoe krijg ik esphome aan de gang?

Acties:
  • 0 Henk 'm!

  • Faifz
  • Registratie: November 2010
  • Laatst online: 23-06 14:35
JorisV schreef op maandag 27 december 2021 @ 12:51:
[...]


Dank!
Ik krijg het niet helemaal voor elkaar, maar dat ligt aan mij. Domein/DNS en de certificaten is me een raadsel. Ik heb het traefik dashboard er uit gegooid en ik heb nu:

Daarmee kan ik whoami bereiken op https://rpi4/whoami. Dat is prima. Iets anders (whoami.rpi4 of varianten lukt echt niet).
Ik heb geprobeerd in google chrome het certificaat te exporteren en te importeren, maar ik krijg nog steeds een waarschuwing van een niet geldig certificaat.
Ik probeer nu ook een andere container toe te voegen: EspHome. Die luistert naar poort 6052. Bij het starten van de container krijg ik: Starting dashboard web server on http://0.0.0.0:6052, maar bij https://rpi4/esphome komt er een: WARNING 404 GET /esphome (172.23.0.2)
Dus
-hoe krijg ik het goed certificaat geïmporteerd?
-hoe krijg ik esphome aan de gang?
Maak je wel de A records aan op je DNS server? Die moeten allemaal verwijzen naar het IP-adres van traefik.

esphome.home.arpa - 192.168.1.100 (traefik IP)
whoami.home.arpa - 192.168.1.100

Je kan een self-signed certificaat aanmaken op je linux host met het volgende:

code:
1
2
3
4
5
6
7
openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out example.crt \
            -keyout example.key


Als je liever een tool online gebruikt ipv de CLI; https://www.selfsignedcertificate.com/

Je krijgt een prompt waar je gevraagd wordt om het land etc in te geven, maar het enige dat belangrijk is de common name. Als common name geef je gewoon *.home.arpa in. Dit certificaat is wel niet getekend voor gewoon 'https://rpi4'. Je kan meerdere SAN's toevoegen (CN), maar je certificaat vernieuwen omdat je een nieuwe back-end server toevoegt (deze keer is het esphome) is niet echt praktisch.

Acties:
  • 0 Henk 'm!

  • JorisV
  • Registratie: September 2008
  • Laatst online: 08:34
Faifz schreef op maandag 27 december 2021 @ 13:35:
[...]


Maak je wel de A records aan op je DNS server? Die moeten allemaal verwijzen naar het IP-adres van traefik.

esphome.home.arpa - 192.168.1.100 (traefik IP)
whoami.home.arpa - 192.168.1.100

Je kan een self-signed certificaat aanmaken op je linux host met het volgende:

code:
1
2
3
4
5
6
7
openssl req -newkey rsa:4096 \
            -x509 \
            -sha256 \
            -days 3650 \
            -nodes \
            -out example.crt \
            -keyout example.key


Als je liever een tool online gebruikt ipv de CLI; https://www.selfsignedcertificate.com/

Je krijgt een prompt waar je gevraagd wordt om het land etc in te geven, maar het enige dat belangrijk is de common name. Als common name geef je gewoon *.home.arpa in. Dit certificaat is wel niet getekend voor gewoon 'https://rpi4'. Je kan meerdere SAN's toevoegen (CN), maar je certificaat vernieuwen omdat je een nieuwe back-end server toevoegt (deze keer is het esphome) is niet echt praktisch.
Ik ben weer een klein stapje verder! Ik moest het root certificaat installeren in windows en android en nu heb een geaccepteerde https://rpi4/whoami.
Mijn doel is uiteindelijk om home assistant in https te krijgen. Daarvoor heb ik nu:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/raspberrypi4-homeassistant:stable"
    depends_on:
      - mosquitto
    volumes:
      - ${USERDIR}/hass:/config
      - /etc/localtime:/etc/localtime:ro
    environment:
      - TZ=${TZ}
    restart: unless-stopped
    privileged: true
    network_mode: host
    labels:
      - traefik.enable=true
      - traefik.http.routers.homeassistant.rule=Path("/hass")
      - traefik.http.routers.homeassistant.tls=true
      - traefik.http.routers.homeassistant.entrypoints=web-secure
      - traefik.http.services.homeassistant.loadbalancer.server.port=8123

Maar bij https://rpi4/hass krijg ik nu '400: Bad Request'. Wat is het laatste duwtje om dat aan de gang te krijgen?

Acties:
  • 0 Henk 'm!

  • Faifz
  • Registratie: November 2010
  • Laatst online: 23-06 14:35
JorisV schreef op dinsdag 28 december 2021 @ 23:12:
[...]


Ik ben weer een klein stapje verder! Ik moest het root certificaat installeren in windows en android en nu heb een geaccepteerde https://rpi4/whoami.
Mijn doel is uiteindelijk om home assistant in https te krijgen. Daarvoor heb ik nu:
Network_mode=host heb je niet nodig. Je containers zitten al achter een bridge network.

Acties:
  • 0 Henk 'm!

  • FireDrunk
  • Registratie: November 2002
  • Laatst online: 11-07 20:45
Na een *hele* tijd kloten om mijn interne en externe netwerk netjes gescheiden te krijgen in Traefik, heb ik gister deze oplossing gemaakt, misschien vinden mensen hier dat ook wel handig:

Dynamic
YAML:
1
2
3
4
5
6
7
http:
  middlewares:
    internal-redirect:
      redirectRegex:
        regex: "^https://(?P<subdomain>.*).in.my.tld(?P<port>:8443)?(?P<path>.*)"
        replacement: "https://${subdomain}.in.my.tld:8443${path}"
        permanent: true


Static:
YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
## Static configuration
serversTransport:
  insecureSkipVerify: true

entryPoints:
  external:
    address: ":443"
    forwardedHeaders:
      trustedIPs:
      - "10.0.0.0/8"
      - "192.168.1.0/24"
    http:
      middlewares:
      - internal-redirect@file
      tls: {}

  internal:
    address: ":8443"
    forwardedHeaders:
      trustedIPs:
      - "10.0.0.0/8"
      - "192.168.1.0/24"
    http:
      tls: {}

  metrics:
    address: ":9090"

providers:
  kubernetesCRD:
    allowCrossNamespace: true
  file:
    watch: true
    filename: /etc/traefik/dynamic.yaml

log:
  level: WARN

ping: {}

metrics:
  prometheus:
    entryPoint: metrics
    addRoutersLabels: true

api:
  dashboard: true
  insecure: true


Traefik luistert dus op zowel poort 443 als 8443, beide met een SSL certificaat.
Enige verschil is dus dat 443 van buiten open staat, en 8443 niet.
Dit zorgt er voor dat als ik applicaties alleen intern beschikbaar wil hebben, ik ze alleen maar op *.in.my.tld hoef te laten luisteren.

Als iemand extern naar deze url gaat, zal Traefik een harde redirect doen naar poort 8443, waardoor de connectie voor iedereen die extern binnen komt, kapot zal gaan, maar intern (of via VPN), zal blijven werken.

Even niets...


Acties:
  • 0 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 16:34
JorisV schreef op dinsdag 28 december 2021 @ 23:12:
Mijn doel is uiteindelijk om home assistant in https te krijgen. Daarvoor heb ik nu:
Sidenote: je weet dat dit alleen lokaal / op jouw devices zal werken zonder SSL errors, en je dus ook geen gebruik kan maken van bijvoorbeeld Google Assistant? Deze vereisen correcte SSL certificaten, geen self-signed certificaten.

Ik snap niet waarom je zoveel moeite doet met een self-signed certificaat, haal gewoon via Let's encrypt een certificaat op en je bent klaar :?

Sometimes you need to plan for coincidence


Acties:
  • 0 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 16:34
Faifz schreef op woensdag 29 december 2021 @ 05:41:
[...]


Network_mode=host heb je niet nodig. Je containers zitten al achter een bridge network.
Dit komt uit de standaard Home Assistant documentatie, o.a. om discovery van devices (mDNS) mogelijk te maken.

Alternatief is om Avahi juist in te stellen op de host.

Sometimes you need to plan for coincidence


Acties:
  • 0 Henk 'm!

  • Faifz
  • Registratie: November 2010
  • Laatst online: 23-06 14:35
JorisV schreef op dinsdag 28 december 2021 @ 23:12:

Ik ben weer een klein stapje verder! Ik moest het root certificaat installeren in windows en android en nu heb een geaccepteerde https://rpi4/whoami.
Mijn doel is uiteindelijk om home assistant in https te krijgen. Daarvoor heb ik nu:
Homeassistant krijg ik niet aan de gang, maar esphome wel. Ik raad je wel aan dat je de docker-compose files apart houdt. Dus eentje voor traefik zelf en voor bv esphome. Vergeet je DNS records niet of edit (C:\Windows\System32\drivers\etc\hosts) als je geen DNS server hebt.

Ten eerste had ik een certificaat gemaakt voor *.home.arpa. Had je dit eerder uitgelegd hoe je dit doet.

traefik's docker-compose.yml:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: '3.3'
networks:
  traefik:
    external: true
services:
  traefik:
    image: traefik:2.5
    container_name: traefik
    command:
      # Docker als provider
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.file.directory=/etc/traefik/dynamic"
      # Entrypoint -> is a front-end named "web" on HTTP Port 80
      - "--entrypoints.web.address=:80"
      # Entrypoint -> is a front-end named "web-secure" on HTTPS Port 443
      - "--entrypoints.web-secure.address=:443"
    ports:
      - 80:80
      - 443:443
    networks:
      - traefik
    restart: unless-stopped
    volumes:
     - ./dynamic-config.yml:/etc/traefik/dynamic/config.yml:ro
     - ./certs:/etc/certs:ro
     - /var/run/docker.sock:/var/run/docker.sock:ro


dynamic-config.yml:

code:
1
2
3
4
tls:
  certificates:
    - certFile: /etc/certs/local-cert.pem
      keyFile: /etc/certs/local-key.pem


esphome's docker-compose.yml:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
version: "3"
  
networks:
  traefik:
    external: true
  esphomenetwork:

services:
  esphome:
    image: esphome/esphome
    container_name: esphome2
    volumes:
      - ./esphome-config:/config:rw
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    networks:
      - traefik
      - esphomenetwork
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=traefik"
      - "traefik.http.routers.esphome-secure.entrypoints=web-secure"
      - "traefik.http.routers.esphome-secure.rule=Host(`esphome.home.arpa`)"
      - "traefik.http.routers.esphome-secure.tls=true"
      - "traefik.http.services.esphome-secure.loadbalancer.server.port=6052"

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 16:42
Goedemorgen,

Ik heb een vraag omtrent het gebruik van Traefik binnen een netwerk.

Ik heb een Proxmox Node (2 totaal) met daarin een LXC container waarop docker --> Traefik draait.

Wat zijn de mogelijkheden om een 2e node toe te voegen an traefik? (de lxc containers daarop dus)

Zit ik dan aan n docker swarm of cluster proxmox (of tweede instance Traefik) vast?

Of is er wel een optie om Docker containers van een andere node toe te voegen binnen Traefik?

Acties:
  • +1 Henk 'm!

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
@Koepert Je kunt sowieso de 'file' functie van Traefik gebruiken natuurlijk

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 16:42
lolgast schreef op donderdag 10 februari 2022 @ 09:52:
@Koepert Je kunt sowieso de 'file' functie van Traefik gebruiken natuurlijk
Daar ben ik nu al enige tijd mee aan t prutsen.. maar kom er niet uit (ligt vast aan mij)..

Vooral ook omdat ik diverse berichten tegenkom over wel of niet werkend (en welke labels wel of niet)..


- Node 1 met FireflyIII
- Node 2 met Traefik en Authelia

Werkt prima met Docker containers van node 2, werkt prima met entries uit de file. maar niet met Fireflyiii. Zeker niet in combi met Authelia. Wat juist volgens mij een mooie combinatie oplevert.


Voor de volledigheid:
In mijn .env
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
TRUSTED_PROXIES=**
# It's also possible to change the way users are authenticated. You could use Authelia for example.
# Authentication via the REMOTE_USER header is supported. Change the value below to "remote_user_guard".
#
# This will also allow Windows SSO.
#
# If you do this please read the documentation for instructions and warnings:
# https://docs.firefly-iii.org/advanced-installation/authentication
#
# This function is available in Firefly III v5.3.0 and higher.
##AUTHENTICATION_GUARD=web
AUTHENTICATION_GUARD=remote_user_guard

# If the guard is changed, Firefly III uses the 'REMOTE_USER' header as per RFC 3875.
# You can also use another header, like AUTH_USER when using Windows SSO.
# Some systems use X-Auth headers. In that case, use HTTP_X_AUTH_USERNAME or HTTP_X_AUTH_EMAIL
# Depending on your system, REMOTE_USER may need to be changed to HTTP_REMOTE_USER
#
# Firefly III won't be able to send emails when the header you use isn't an email address.
#
AUTHENTICATION_GUARD_HEADER=HTTP_REMOTE_USER


in mijn firefly container:

code:
1
2
3
4
5
6
      - "traefik.enable=true"
      - "traefik.http.routers.firefly_iii.rule=Host(`myserver.com`)"
      - "traefik.http.routers.firefly_iii.entrypoints=https"
      - "traefik.http.routers.firefly_iii.middlewares=authelia@docker"
      - "traefik.http.routers.firefly_iii.tls=true"
      - "traefik.http.services.firefly_iii.loadbalancer.server.port=8080"


In Authelia
code:
1
2
3
4
5
6
7
      - "traefik.enable=true"
      - "traefik.http.routers.authelia.rule=Host(`login.myserver.com`)"
      - "traefik.http.routers.authelia.entrypoints=websecure"
      - "traefik.http.routers.authelia.tls=true"
      - "traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://login.myserver.com/"
      - "traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true"
      - "traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User,Remote-Groups"


Met uiteraard overal mn eigen/juiste domein.
Maar ik krijg dus OF een niet werkende pagina OF een "Fatal error: "The Remote-User (REMOTE_USER) header was unexpectedly empty.""

[ Voor 63% gewijzigd door Koepert op 10-02-2022 12:06 ]


  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
@Koepert Maar die Traefik draait dus in een andere Docker omgeving dan je Firefly? Want dan hebben labels geen zin :+ Labels kunnen alleen uitgelezen worden van de Docker omgeving waar je Traefik mee verbind en ik gok even dat dat de standaar config is endpoint: "unix:///var/run/docker.sock"

Hoe ziet een file voorbeeld eruit van je? Want ik gebruik hier file voor o.a. de verbinding naar Home Assistant (draait op een andere VM) of services op andere LXC containers en dat werkt prima.

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 16:42
lolgast schreef op donderdag 10 februari 2022 @ 20:33:
@Koepert Maar die Traefik draait dus in een andere Docker omgeving dan je Firefly? Want dan hebben labels geen zin :+ Labels kunnen alleen uitgelezen worden van de Docker omgeving waar je Traefik mee verbind en ik gok even dat dat de standaar config is endpoint: "unix:///var/run/docker.sock"
Ja dat had ik ook wel verwacht idd :+ Maar zonder werkte het OOK niet..
Hoe ziet een file voorbeeld eruit van je? Want ik gebruik hier file voor o.a. de verbinding naar Home Assistant (draait op een andere VM) of services op andere LXC containers en dat werkt prima.
Mijn traefik bestaat uit n docker-compose.yml uiteraard, een traefik.yml (met api etc settings) en een config.yml met daarin (oa)

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
routers;
bla bla
blabla 
    firefly:
      entryPoints:
        - "https"
      rule: "Host(`firefly.domein.adres`)"
      middlewares:
        - default-headers
        - authelia
      tls: {}
      service: firefly 



services
bla
bla
    firefly:
      loadBalancer:
        servers:
          - url: "http://IPADRESZONDERPOORTEN"
        passHostHeader: true


middlewares
blabla
bla
    default-headers:
      headers:
        frameDeny: true
        sslRedirect: true
        browserXssFilter: true
        contentTypeNosniff: true
        forceSTSHeader: true
        stsIncludeSubdomains: true
        stsPreload: true
        stsSeconds: 15552000
        customFrameOptionsValue: SAMEORIGIN
        customRequestHeaders:
          X-Forwarded-Proto: https

    authelia:
      forwardAuth:
        address: blalbla url/domain.. 


Dat is t wel eigenlijk. Ik heb in die config.yml dus meerdere staan (proxmox, jellyfin en home assistant) en dat werkt allemaal van zowel host 1 als host 2.

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
Ok, dus even op een rijtje voor mij:
Traefik op Node 2
Firefly op Node 1

Proxmox werkt via de file-config van Traefik?

Werkt Firefly wel als je die benaderd op zijn IP?

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 16:42
lolgast schreef op donderdag 10 februari 2022 @ 20:55:
Ok, dus even op een rijtje voor mij:
Traefik op Node 2
Firefly op Node 1

Proxmox werkt via de file-config van Traefik?

Werkt Firefly wel als je die benaderd op zijn IP?
Heeel strikt genomen andersom ;)

Node 1 = Proxmox host -> werkt met file-config van traefik (zowel intern als extern en zowel url als ip benaderbaar, traefik alleen op url) Werkt tevens met Authelia.

LXCcontainers:
- Pihole (werkt met traefik en authelia, als test)
- Traefik & Authelia op 1 container

VM:
- Home Assistant (werkt met Traefik, geen Authelia want 2FA in Home Assistant, via File config)

Node 2 = Proxmox2 host --> werkt met file-config van traefik (zowel intern als extern en zowel url als ip benaderbaar, traefik alleen op url) Werkt tevens met Authelia.

LXContainers:
- Pihole 2 (passive bu van 1, werkt met traefik en authelia, wederom als test)
- Jellyfin (werkt met Traefik, geen authelia toegevoegd wederom via file)
- Firefly (werkt NIET met Traefik NOCH Authelia) --> Benaderbaar via Intern DNS op firefly.domein en IP-adres. zodra HTTPS://firefly.domein probeer krijg ik OF site reageert niet (zonder alle labels ed) of Header = empty (authelia).

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
@Koepert Het valt me nu op dat je de quotes van 'rule' in mijn ogen heel apart hebt, alsof je een SNI wilt gebruiken. Ik gebruik ze zo

rule: Host("proxmox.domain.nl")

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 16:42
lolgast schreef op donderdag 10 februari 2022 @ 21:10:
@Koepert Het valt me nu op dat je de quotes van 'rule' in mijn ogen heel apart hebt, alsof je een SNI wilt gebruiken. Ik gebruik ze zo

rule: Host("proxmox.domain.nl")
Geen idee hoe dat ontstaan is :P maar t werkt, so if it aint broke.... maar heb t voor firefly ff op jouw manier getest.. no difference.

Acties:
  • +2 Henk 'm!

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
@Koepert
Ik snap dan even niet waarom je Firefly intern wel zou kunnen benaderen op http://IP maar waarom je dat niet zou kunnen laten werken via Traefik. Daar is precies niets voor nodig, behalve wat je hebt gepost.

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 16:42
lolgast schreef op donderdag 10 februari 2022 @ 21:17:
@Koepert
Ik snap dan even niet waarom je Firefly intern wel zou kunnen benaderen op http://IP maar waarom je dat niet zou kunnen laten werken via Traefik. Daar is precies niets voor nodig, behalve wat je hebt gepost.
Ja.. dat dus.. Ik ga wel ff verder zoeken.. Er zal ergens iets niet goed zitten.. maar weet nog niet wat.. Blij om te lezen dat in de file van traefik iig in principe niets meer hoeft te staan.. Dat was me niet 100% bekend, ik kom vooral voorbeelden tegen van Fireflyiii + Authelia + Traefik op 1 host/container.. dus het is soms even puzzelen wat er uit kan en wat niet.

ZUCHT... T helpt.. als je de INTERNE DNS eerst op de firefly-container richt.. je die vervolgens wel op de traefik container richt..


Authelia.. is nu ook soort van werkend... geloof ik.. k kreeg net nog n bad gateway NA de Authelia inlog..maar nu lijkt t goed te gaan..
Als ik authelia wil toevoegen krijg ik op https nog steeds niets en bij http dit:
Oeps! Er is een fout opgetreden.
Helaas was deze fout niet te herstellen :(. Firefly III is stuk. De fout is:

The guard header was unexpectedly empty. See the logs.


Dus ook dat is niet ' zo simpel ' .. maar ik puzzel wel ff door en dank iig voor de hulp


Wat ik dan weer irritant vind: https://docs.firefly-iii....tallation/authentication/

Hier staat dat je deze setting op remote_user_guard moet zetten.. dan werkt het NIET bij web juist WEL..dus de commented regels zijn de bedoeling bij authelia en de eerste werkt..alleen niet met SSO
YAML:
1
2
3
AUTHENTICATION_GUARD=web
#AUTHENTICATION_GUARD=remote_user_guard
#AUTHENTICATION_GUARD_HEADER=HTTP_REMOTE_USER

[ Voor 43% gewijzigd door Koepert op 10-02-2022 21:55 ]


  • bes-r
  • Registratie: September 2013
  • Laatst online: 15:04
Is er iemand die een idee heeft waarom ik geen Let's Encrypt certificaat kan aanmaken? Ik kwam van NPM af en dacht dit even op te kunnen zetten. Ik loop tegen de volgende error aan:

[code]dial tcp: lookup acme-v02.api.letsencrypt.org on 127.0.0.11:53: read udp 127.0.0.1:38134->127.0.0.11:53: i/o timeout" providerName=dns.acme[/code]

Het lijkt er dus op dat er een DNS-fout is, echter kom ik er niet uit. Veel oplossingen verwijzen naar [code=yaml]network_mode: host[/code], maar dat lijkt niets op te lossen. Verder heb diverse configuraties, zoals van TechnoTim, Smarthomelab en TechJunky geprobeerd. Met mijn provider TransIP krijg ik het niet werkend, maar ook met Cloudflare niet. Het lijkt dus echt een intern stukje te zijn.

Relevant:
[list]
• Ik maak gebruik van een UDM Pro en heb (behalve updates) daar geen veranderingen in gemaakt.
• Daarnaast gebruik ik AdGuard Home als DNS blokker, ook daar zijn geen veranderingen in gemaakt.
[/list]


Edit:
Een aantal avonden bezig geweest, ik stuur dit en heb een helder moment:
code:
1
/etc/resolv.conf

Er gaat hier iets mis. Nu mijn router toegevoegd en het werkt :)

[ Voor 8% gewijzigd door bes-r op 15-12-2022 12:48 ]


Acties:
  • 0 Henk 'm!

  • martinvdm
  • Registratie: Januari 2001
  • Laatst online: 15:51

martinvdm

Martinvdm = TechJunky.nl

[nevermind]

[ Voor 98% gewijzigd door martinvdm op 24-12-2022 20:40 ]

He who laughs last thinks slowest! | Drone video’s: Youtube | TechJunky.nl | 3000Wp Zonnepanelen


Acties:
  • 0 Henk 'm!

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
@martinvdm Heb je een foutmelding in je log? Mijn eerste ingeving is een typfout ergens in de config. Ik ben even niet in de gelegenheid om je config te kopieren naar een dummy URL, maar zodra dat kan test ik even wat er bij mij gebeurd

Acties:
  • 0 Henk 'm!

  • martinvdm
  • Registratie: Januari 2001
  • Laatst online: 15:51

martinvdm

Martinvdm = TechJunky.nl

lolgast schreef op zaterdag 24 december 2022 @ 21:05:
@martinvdm Heb je een foutmelding in je log? Mijn eerste ingeving is een typfout ergens in de config. Ik ben even niet in de gelegenheid om je config te kopieren naar een dummy URL, maar zodra dat kan test ik even wat er bij mij gebeurd
Was al gelukt, thanks. Ben maar veranderd naar labels. Heb jij trouwens nog een backup van jou traefik2 ergens? Bij mij zeurt ie nog over een about.blank, ik kan me herinneren dit vanuit jou blog/config ooit gehaald te hebben.

He who laughs last thinks slowest! | Drone video’s: Youtube | TechJunky.nl | 3000Wp Zonnepanelen


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Ik ben weer met een poging bezig om mijn Nginx reverse proxy te vervangen voor Treafik, zodat ik wat resources beschikbaar krijg op mijn PC in mijn voorraadkast die dienst doet als homelab server.
Nu heb ik de volgende config eigenlijk simpelweg gedownload vanuit de Traefik website, maar desondanks krijgt het /letsencrypt/acme.json geen certificaat. Ik wil graag de DNS challenge gebruiken, zodat ik een wildcard certificaat kan verkrijgen via Lets Encrypt. De provider die ik gebruik is TransIP, walwaar ik mijn .nl domein afneem..

De config die ik heb is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: "3.3"

services:

  traefik:
    image: "traefik:v2.9"
    container_name: "traefik"
    command:
      #- "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.dnschallenge=true"
      - "--certificatesresolvers.myresolver.acme.dnschallenge.provider=transip"
      #- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
      - "--certificatesresolvers.myresolver.acme.email=oeps@mail.tld"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    environment:
      - "TRANSIP_ACCOUNT_NAME=usert"
      - "TRANSIP_PRIVATE_KEY_PATH=/path/naar/private/key"
    volumes:
      - "./traefik/letsencrypt:/letsencrypt"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

  whoami:
    image: "traefik/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.cptchaos.nl`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls.certresolver=myresolver"
Ja, ik weet dat ik de Docker socket nu (weer) even direct mount in de container, maar ik wil eerst dit werkend hebben voor ik de boel verder dicht timmer.

Ik hoef dan trouwens alleen cptchaos.nl en *.cptchaos.nl in het certificaat te hebben.

[ Voor 2% gewijzigd door CH4OS op 09-02-2023 00:31 . Reden: emailadres verwijderd ]


Acties:
  • 0 Henk 'm!

  • Slonzo
  • Registratie: Mei 2007
  • Niet online

Slonzo

Taarsidath-an Halsaam

CH4OS schreef op woensdag 8 februari 2023 @ 23:32:
De config die ik heb is als volgt:
Misschien best even je mailadres weghalen ;)

Heb je de relevante containers ook gelabeled voor Traefik?

[ Voor 13% gewijzigd door Slonzo op 08-02-2023 23:52 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Slonzo schreef op woensdag 8 februari 2023 @ 23:52:
Misschien best even je mailadres weghalen ;)
Scherp, dank!
Heb je de relevante containers ook gelabeled voor Traefik?
Ik wil eerst dit werkend krijgen, dit geeft namelijk ook geen TLS-certificaat, ondanks dat dit bijna direct uit de documentatie komt. Dan kijk ik daarna verder naar de andere Docker containers.

Online zijn er vervolgens ook genoeg guides te vinden, maar geen enkele heeft een vruchtbaar effect.
Ik hoef dan trouwens alleen cptchaos.nl en *.cptchaos.nl in het certificaat te hebben.

[ Voor 39% gewijzigd door CH4OS op 09-02-2023 00:15 ]


Acties:
  • 0 Henk 'm!

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
@CH4OS Heb je de acme.json file de juiste rechten (600) gegeven?

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

lolgast schreef op donderdag 9 februari 2023 @ 06:45:
@CH4OS Heb je de acme.json file de juiste rechten (600) gegeven?
De file wordt door de container zelf aangemaakt, het certificate deel erin blijft echter null als waarde krijgen.

Acties:
  • 0 Henk 'm!

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
CH4OS schreef op donderdag 9 februari 2023 @ 07:32:
[...]

De file wordt door de container zelf aangemaakt, het certificate deel erin blijft echter null als waarde krijgen.
Als hij niet bestaat maakt hij hem zelf omdat hij moet bestaan, maar je moet echt zelf de rechten regelen.

https://doc.traefik.io/tr...iguration/acme/#as-a-file

[ Voor 8% gewijzigd door lolgast op 09-02-2023 07:47 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

lolgast schreef op donderdag 9 februari 2023 @ 07:44:
[...]

Als hij niet bestaat maakt hij hem zelf omdat hij moet bestaan, maar je moet echt zelf de rechten regelen.

https://doc.traefik.io/tr...iguration/acme/#as-a-file
Ik zal de juiste rechten moeten checken, maar dat heeft denk ik niets te maken met het wegschrijven van het certificaat. De file krijgt perfect inhoud, net het certificaat niet. Wanneer ik de file (die via een volume mount in een map in een home dir komt, kan niet iedereen er zomaar al bij. Gezien de file aangemaakt wordt lijken de rechten het probleem niet. Ik zit daarnaast op Traefik v2.9 (maar op 3 gebeurd hetzelfde) en gebruik ik dus 1.7 niet, waar je nu naar linkt.

Acties:
  • 0 Henk 'm!

  • jvwou123
  • Registratie: Maart 2002
  • Laatst online: 07:28
Bij mij werkt sinds traefik 2.9 (of misschien eerder al) de DNS challenge met transip niet meer.
Probeer eens te downgraden naar traefik 2.5?

Acties:
  • 0 Henk 'm!

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
CH4OS schreef op donderdag 9 februari 2023 @ 07:51:
[...]

Ik zal de juiste rechten moeten checken, maar dat heeft denk ik niets te maken met het wegschrijven van het certificaat. De file krijgt perfect inhoud, net het certificaat niet. Wanneer ik de file (die via een volume mount in een map in een home dir komt, kan niet iedereen er zomaar al bij. Gezien de file aangemaakt wordt lijken de rechten het probleem niet. Ik zit daarnaast op Traefik v2.9 (maar op 3 gebeurd hetzelfde) en gebruik ik dus 1.7 niet, waar je nu naar linkt.
Ok, dan ga ik het anders proberen:
Wat zegt je log van Traefik?

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

lolgast schreef op donderdag 9 februari 2023 @ 08:18:
[...]

Ok, dan ga ik het anders proberen:
Wat zegt je log van Traefik?
Check ik vanavond even, maar eergisteren was het niet echt expliciet in wat er precies mis ging. Het kwam niet verder dan iets in de trant van 'error on creating certificate for sub.domain.tld', het werd mij in elk geval niet duidelijk wat er aan stokte.

Acties:
  • 0 Henk 'm!

  • Koepert
  • Registratie: Augustus 2013
  • Laatst online: 16:42
jvwou123 schreef op donderdag 9 februari 2023 @ 08:08:
Bij mij werkt sinds traefik 2.9 (of misschien eerder al) de DNS challenge met transip niet meer.
Probeer eens te downgraden naar traefik 2.5?
Really? Wat heb je bij TransIP staan dan? Zowel domein als nameservers ed?

Want ik heb mn domeinnaam wel bij TIP, maar de nameservers naar die van cloudflare gewijzigd. Mijn config is echter relatief statisch, dus als dit zo is, merk ik t niet snel zeg maar.

Acties:
  • 0 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 16:34
CH4OS schreef op woensdag 8 februari 2023 @ 23:32:
Ik ben weer met een poging bezig om mijn Nginx reverse proxy te vervangen voor Treafik, zodat ik wat resources beschikbaar krijg op mijn PC in mijn voorraadkast die dienst doet als homelab server.
Nu heb ik de volgende config eigenlijk simpelweg gedownload vanuit de Traefik website, maar desondanks krijgt het /letsencrypt/acme.json geen certificaat. Ik wil graag de DNS challenge gebruiken, zodat ik een wildcard certificaat kan verkrijgen via Lets Encrypt. De provider die ik gebruik is TransIP, walwaar ik mijn .nl domein afneem..

De config die ik heb is als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
version: "3.3"

services:

  traefik:
    image: "traefik:v2.9"
    container_name: "traefik"
    command:
      #- "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.myresolver.acme.dnschallenge=true"
      - "--certificatesresolvers.myresolver.acme.dnschallenge.provider=transip"
      #- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
      - "--certificatesresolvers.myresolver.acme.email=oeps@mail.tld"
      - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"
    environment:
      - "TRANSIP_ACCOUNT_NAME=usert"
      - "TRANSIP_PRIVATE_KEY_PATH=/path/naar/private/key"
    volumes:
      - "./traefik/letsencrypt:/letsencrypt"
      - "/var/run/docker.sock:/var/run/docker.sock:ro"

  whoami:
    image: "traefik/whoami"
    container_name: "simple-service"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.cptchaos.nl`)"
      - "traefik.http.routers.whoami.entrypoints=websecure"
      - "traefik.http.routers.whoami.tls.certresolver=myresolver"
Ja, ik weet dat ik de Docker socket nu (weer) even direct mount in de container, maar ik wil eerst dit werkend hebben voor ik de boel verder dicht timmer.

Ik hoef dan trouwens alleen cptchaos.nl en *.cptchaos.nl in het certificaat te hebben.
Ik heb die twee domeinen ook opgenomen in mijn labels van de traefik container:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: "3"

services:
  traefik:
    container_name: traefik
    image: traefik:latest
    restart: always
    ports:
      - 80:80
      - 443:443
    healthcheck:
      test: traefik healthcheck --ping
    environment:
      - TRANSIP_ACCOUNT_NAME=mijnaccountnaam
      - TRANSIP_PRIVATE_KEY_PATH=/transip.key
    volumes:
      - /home/bob/docker/core/traefik_v2/traefik.yaml:/traefik.yaml:ro
      - /home/bob/docker/core/traefik_v2/acme.json:/acme.json
      - /home/bob/docker/core/traefik_v2/transip.key:/transip.key:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /etc/localtime:/etc/localtime:ro
    labels:
      - traefik.enable=true
      - traefik.http.routers.traefik-secure.rule=Host(`traefik.mijndomein.nl`)
      - traefik.http.routers.traefik-secure.tls=true
      - traefik.http.routers.traefik-secure.tls.certresolver=le
      - traefik.http.routers.traefik-secure.tls.domains[0].main=mijndomein.nl
      - traefik.http.routers.traefik-secure.tls.domains[0].sans=*.mijndomein.nl


In traefik.yaml staat het volgende voor de cert-resolver:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
#Enable acme with dns challenge
certificatesResolvers:
  le:
    acme:
      email: mijn@email.com
      storage: /acme.json
      dnsChallenge:
        provider: "transip"
        resolvers:
          - ns0.transip.net
          - ns1.transip.nl
          - ns2.transip.eu

Sometimes you need to plan for coincidence


Acties:
  • 0 Henk 'm!

  • jvwou123
  • Registratie: Maart 2002
  • Laatst online: 07:28
Koepert schreef op donderdag 9 februari 2023 @ 08:29:
[...]


Really? Wat heb je bij TransIP staan dan? Zowel domein als nameservers ed?

Want ik heb mn domeinnaam wel bij TIP, maar de nameservers naar die van cloudflare gewijzigd. Mijn config is echter relatief statisch, dus als dit zo is, merk ik t niet snel zeg maar.
Ik heb idd domeinen, en de DNS bij TransIP.

Ik weet even niet exact meer wat er fout gaat, het had dacht ik te maken met Lego die geupdate is in traefik, en die werkt niet meer samen met de transip intergratie. Er is daar iets stuk.

Wat ik gedaan heb is op basis van de acme.sh container een container gemaakt die de certificaten ophaalt met een DNS verificatie, en dan met een custom script deze in traefik injecteert. En traefik doet dan zelf een hot reload van de config.

Ik heb meer vertrouwen in acme.sh qua stabiel certificaten ophalen dan in traefik waar constant alles gewijzigd wordt.

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

lolgast schreef op donderdag 9 februari 2023 @ 08:18:
[...]

Ok, dan ga ik het anders proberen:
Wat zegt je log van Traefik?
Ik heb in de log gekeken, daarin zie ik onder andere dit soort meldingen voorbij komen, bij een eerdere poging althans:
code:
1
2023-02-08T23:12:40+01:00 ERR Unable to obtain ACME certificate for domains error="unable to generate a certificate for the domains [radarr.cptchaos.nl]: error: one or more domains had a problem:\n[radarr.cptchaos.nl] [radarr.cptchaos.nl] acme: error presenting token: transip: Internal error occurred, please contact our support\n" acmeCA=https://acme-v02.api.letsencrypt.org/directory domains=["radarr.cptchaos.nl"] providerName=letsencrypt.acme routerName=https-radarr@docker rule=Host(`radarr.cptchaos.nl`)

Ik zal nog even met de huidige setup een nieuwe log maken. De rechten op acme.json staan alleen op rw voor de huidige gebruiker, als ik het mij goed herinner, is dat 0600, toch? :)

EDIT:
Ik heb nu ook de logging maar even op debug logging gezet. Om de een of andere reden komt dat niet in de log file, dus dan maar even attachen met de container. Dan krijg ik onder andere dit soort dingen:
code:
1
traefik    | time="2023-02-09T21:03:25Z" level=error msg="Unable to obtain ACME certificate for domains \"petio.cptchaos.nl\": unable to generate a certificate for the domains [petio.cptchaos.nl]: error: one or more domains had a problem:\n[petio.cptchaos.nl] [petio.cptchaos.nl] acme: error presenting token: transip: Internal error occurred, please contact our support\n" rule="Host(`petio.cptchaos.nl`)" routerName=petio@docker ACME CA="https://acme-v02.api.letsencrypt.org/directory" providerName=myresolver.acme
En met de berichten hierboven, is het wellicht verstandiger om eea anders aan te pakken mbt deze certificaten.

[ Voor 29% gewijzigd door CH4OS op 09-02-2023 22:06 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Hmmbob schreef op donderdag 9 februari 2023 @ 08:42:
[...]

Ik heb die twee domeinen ook opgenomen in mijn labels van de traefik container:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
version: "3"

services:
  traefik:
    container_name: traefik
    image: traefik:latest
    restart: always
    ports:
      - 80:80
      - 443:443
    healthcheck:
      test: traefik healthcheck --ping
    environment:
      - TRANSIP_ACCOUNT_NAME=mijnaccountnaam
      - TRANSIP_PRIVATE_KEY_PATH=/transip.key
    volumes:
      - /home/bob/docker/core/traefik_v2/traefik.yaml:/traefik.yaml:ro
      - /home/bob/docker/core/traefik_v2/acme.json:/acme.json
      - /home/bob/docker/core/traefik_v2/transip.key:/transip.key:ro
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - /etc/localtime:/etc/localtime:ro
    labels:
      - traefik.enable=true
      - traefik.http.routers.traefik-secure.rule=Host(`traefik.mijndomein.nl`)
      - traefik.http.routers.traefik-secure.tls=true
      - traefik.http.routers.traefik-secure.tls.certresolver=le
      - traefik.http.routers.traefik-secure.tls.domains[0].main=mijndomein.nl
      - traefik.http.routers.traefik-secure.tls.domains[0].sans=*.mijndomein.nl


In traefik.yaml staat het volgende voor de cert-resolver:

YAML:
1
2
3
4
5
6
7
8
9
10
11
12
#Enable acme with dns challenge
certificatesResolvers:
  le:
    acme:
      email: mijn@email.com
      storage: /acme.json
      dnsChallenge:
        provider: "transip"
        resolvers:
          - ns0.transip.net
          - ns1.transip.nl
          - ns2.transip.eu
Dit heb ik ook net geprobeerd, maar mocht helaas ook niet baten, als ik de acme.json verwijder, wordt deze wel opnieuw aangemaakt, maar met totaal geen inhoud.

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

jvwou123 schreef op donderdag 9 februari 2023 @ 08:08:
Bij mij werkt sinds traefik 2.9 (of misschien eerder al) de DNS challenge met transip niet meer.
Probeer eens te downgraden naar traefik 2.5?
Ook zojuist v2.5 geprobeerd, maar no cigar, helaas. Gek trouwens dat ik hierover in de GitHub issue tracker van Traefik niets erover vind. Zou dan verwachten dat er een closed issue is, maar dat is er (sinds 2019) ook niet.

[ Voor 21% gewijzigd door CH4OS op 09-02-2023 22:51 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

jvwou123 schreef op donderdag 9 februari 2023 @ 08:52:
Ik weet even niet exact meer wat er fout gaat, het had dacht ik te maken met Lego die geupdate is in traefik, en die werkt niet meer samen met de transip intergratie. Er is daar iets stuk.
Hier lijkt inderdaad iets mee te zijn, er zijn meerdere DNS providers die nu issues hebben, lijkt het op in elk geval. Ik kwam althans dit issue tegen op de Github van Traefik: https://github.com/traefik/traefik/issues/9680

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Ik heb het dan eindelijk draaien. Uiteindelijk ervoor gekozen om de name server naar CloudFlare te zetten en dat te proberen. Dat werkt. Ik heb nu Traefik via CloudFlare DNS de certificaten werkend. Bedankt voor de hulp!

Acties:
  • 0 Henk 'm!

  • zAo
  • Registratie: Maart 2002
  • Laatst online: 10-07 16:21

zAo

GPLv2 Fanboy

Na allerlei tutorials gebruikt te hebben als inspiratie, heb ik nog steeds geen werkende config voor traefik + compose + TransIp.

Zou iemand zijn werkende config helemaal willen delen? :$

Acties:
  • +1 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
zAo schreef op zondag 19 maart 2023 @ 09:02:
Na allerlei tutorials gebruikt te hebben als inspiratie, heb ik nog steeds geen werkende config voor traefik + compose + TransIp.

Zou iemand zijn werkende config helemaal willen delen? :$
Dit is Tweakers. Wij doen niet aan werkende oplossingen aanbieden :p

Als je nu je eigen config deelt kunnen anderen je waarschijnlijk wel een zetje in de juiste richting geven.

Acties:
  • 0 Henk 'm!

  • zAo
  • Registratie: Maart 2002
  • Laatst online: 10-07 16:21

zAo

GPLv2 Fanboy

RobertMe schreef op zondag 19 maart 2023 @ 09:09:
[...]

Dit is Tweakers. Wij doen niet aan werkende oplossingen aanbieden :p

Als je nu je eigen config deelt kunnen anderen je waarschijnlijk wel een zetje in de juiste richting geven.
Haha, touché :P

Ik heb nu:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# rules/certs.yaml
http:
  routers:
    certs:
      entryPoints:
        - http
        - https
      service: service-blank
      rule: Host("about:blank")
      tls:
        certResolver: letsencrypt
        domains:
          - main: "*.mydomain.nl"
            sans:
              - mydomain.nl
  services:
    service-blank:
      loadBalancer:
        servers:
          - url: "https://about.blank"


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# rules/middlewares.yaml
http:
  middlewares:
    redirect:
      redirectScheme:
        scheme: https

    ipwhitelist:
      ipWhiteList:
        sourceRange:
          - "192.168.1.0/24"
        ipStrategy:
          depth: 0

    hsts:
      headers:
        sslRedirect: true
        stsPreload: true
        stsSeconds: 315360000
        stsIncludeSubdomains: true


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# rules/tls.yaml
tls:
  options:
    TLSv13:
      minVersion: VersionTLS13
      cipherSuites:
        - TLS_AES_128_GCM_SHA256
        - TLS_AES_256_GCM_SHA384
        - TLS_CHACHA20_POLY1305_SHA256
      sniStrict: true
        
    default:
      minVersion: VersionTLS12
      cipherSuites:
        - TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
        - TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305
        - TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
      sniStrict: true


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# traefik.yaml
log:
  level: error

entryPoints:
  http:
    address: ":80"

  https:
    address: ":443"

  traefik:
    address: ":8181"

api:
  insecure: true
  dashboard: true

serversTransport:
  insecureSkipVerify: true

providers:
  docker:
    endpoint: "unix:///var/run/docker.sock"
    exposedByDefault: false
    network: traefik_ingress

  file:
    directory: /rules
    watch: true

certificatesResolvers:
  letsencrypt:
    acme:
      email: me@protonmail.com
      storage: ./acme.json
      dnsChallenge:
        provider: transip
        delayBeforeCheck: 0


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# docker-compose.yaml
version: "3"
services:
  traefik:
    container_name: traefik
    image: traefik
    restart: always
    ports:
      - 80:80
      - 443:443
      - 8181:8181
    networks:
      - traefik_ingress
    environment:
      - TRANSIP_ACCOUNT_NAME=me
      - TRANSIP_PRIVATE_KEY_PATH=transipkey.pem
    volumes:
      - ${PWD}/traefik.yaml:/etc/traefik/traefik.yaml:ro
      - ${PWD}/acme/acme.json:/acme.json
      - ${PWD}/rules:/rules:ro
      - ${PWD}/transipkey.pem:/transipkey.pem:ro
      - /var/run/docker.sock:/var/run/docker.sock
networks:
  traefik_ingress:
    external: true


Als ik traefik start, dan klaagt hij over duplicate domains:
code:
1
2
3
4
[+] Running 1/1
 ⠿ Container traefik  Started                                                                                                                                                       1.0s
traefik  | time="2023-03-18T20:25:16Z" level=info msg="Configuration loaded from file: /etc/traefik/traefik.yaml"
traefik  | time="2023-03-18T20:25:28Z" level=error msg="Unable to obtain ACME certificate for domains \"*.mydomain.nl,mydomain.nl\"" error="unable to generate a certificate for the domains [*.mydomain.nl mydomain.nl]: error: one or more domains had a problem:\n[*.mydomain.nl] [*.mydomain.nl] acme: error presenting token: transip: this exact record already exists.: _acme-challenge 10 TXT PGXvidvMxt8DiBtKUJMHmRa6BtIeAh_WnWHGY_ScYII\n[mydomain.nl] [mydomain.nl] acme: error presenting token: transip: this exact record already exists.: _acme-challenge 10 TXT 6XmkGMJpUQbVp7Dr28RQtf6hYYA7MT6mLKh8uZ-MXhI\n" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=certs@file rule="Host(\"about:blank\")"

Acties:
  • 0 Henk 'm!

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
@zAo En als je bij TransIP inlogt en bij de DNS settings dat TXT-record verwijderd? Lijkt me stap 1 :)

Acties:
  • 0 Henk 'm!

  • zAo
  • Registratie: Maart 2002
  • Laatst online: 10-07 16:21

zAo

GPLv2 Fanboy

De grap was, dat het hele record niet bestond/bestaat.

Na het een nacht te laten gaan, de boel te herstarten (voor de 10e keer :) ), zeurt hij er niet meer over. *O*

Als ik dit aan een container toevoeg, gebeurt er alleen niets; geen log in de traefik container, geen wijzigingen in TransIp. Wat mis ik hier?

code:
1
2
3
4
5
6
7
8
9
10
11
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik_ingress
      - traefik.http.routers.navidrome.rule=Host(`muziek.myside.nl`)
      - traefik.http.routers.navidrome.entrypoints=http
      - traefik.http.routers.navidrome.middlewares=redirect@file
      - traefik.http.routers.navidrome-secured.rule=Host(`muziek.myside.nl`)
      - traefik.http.routers.navidrome-secured.entrypoints=https
      - traefik.http.routers.navidrome-secured.middlewares=hsts@file
      - traefik.http.routers.navidrome-secured.tls=true
      - traefik.http.services.navidrome.loadbalancer.server.port=4533

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
zAo schreef op zondag 19 maart 2023 @ 10:49:
Als ik dit aan een container toevoeg, gebeurt er alleen niets; geen log in de traefik container, geen wijzigingen in TransIp. Wat mis ik hier?
Niks? Met default logging zie je niks als er een container wel of niet bij komt. En bij TransIP hoor je helemaal niks te zien.

Wat gebeurt er als je gewoon naar die URL navigeert in de browser? Krijg je dan een 404? Een certificate error? Na lang wachten een gateway timeout? Of gewoon de pagina te zien die je zou moeten zien?

Acties:
  • 0 Henk 'm!

  • zAo
  • Registratie: Maart 2002
  • Laatst online: 10-07 16:21

zAo

GPLv2 Fanboy

RobertMe schreef op zondag 19 maart 2023 @ 11:27:
[...]

Niks? Met default logging zie je niks als er een container wel of niet bij komt. En bij TransIP hoor je helemaal niks te zien.

Wat gebeurt er als je gewoon naar die URL navigeert in de browser? Krijg je dan een 404? Een certificate error? Na lang wachten een gateway timeout? Of gewoon de pagina te zien die je zou moeten zien?
Dat ik niet aan debug log heb gedacht |:(

Het subdomein lijkt niet aangemaakt te worden, dus ik krijg NXDOMAIN.

Ik probeer een navidrone container te exposen met de volgende labels:
code:
1
2
3
4
5
6
7
8
9
10
11
12
ports:
      - 4533:4533
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik_ingress
      - traefik.http.routers.navidrome.rule=Host(`muziek.domein.online`)
      - traefik.http.routers.navidrome.entrypoints=http
      - traefik.http.routers.navidrome.middlewares=redirect@file
      - traefik.http.routers.navidrome-secured.rule=Host(`muziek.domein.online`)
      - traefik.http.routers.navidrome-secured.entrypoints=https
      - traefik.http.routers.navidrome-secured.middlewares=hsts@file
      - traefik.http.routers.navidrome-secured.tls=true


De log van Traefik laat dan netjes zien dat die wordt opgepikt:
code:
1
2
3
4
5
6
7
8
9
10
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating load-balancer" routerName=navidrome-secured@docker serviceName=navidrome-navidrome entryPointName=https
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating server 0 http://172.27.0.3:4533" serviceName=navidrome-navidrome serverName=0 entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="child http://172.27.0.3:4533 now UP"
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Propagating new UP status"
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Added outgoing tracing middleware navidrome-navidrome" entryPointName=https routerName=navidrome-secured@docker middlewareName=tracing middlewareType=TracingForwarder
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating middleware" entryPointName=https routerName=navidrome-secured@docker middlewareName=hsts@file middlewareType=Headers
traefik  | time="2023-03-19T12:21:39Z" level=warning msg="SSLRedirect is deprecated, please use entrypoint redirection instead." middlewareName=hsts@file middlewareType=Headers entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Setting up secureHeaders from {map[] map[] false [] [] [] [] [] 0 false [] [] true false  map[] false 315360000 true true false false  false false       false}" middlewareName=hsts@file middlewareType=Headers entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Adding tracing to middleware" middlewareName=hsts@file entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating middleware" entryPointName=https routerName=certs@file serviceName=service-blank middlewareName=pipelining middlewareType=Pipelining

Iets later zie ik alleen wel dit:
code:
1
2
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Looking for provided certificate(s) to validate [\"*.domein.online\" \"domein.online\"]..." ACME CA="https://acme-v02.api.letsencrypt.org/directory" providerName=letsencrypt.acme
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="No ACME certificate generation required for domains [\"*.domein.online\" \"domein.online\"]." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"


Hierna wordt er geen DNS entry gemaakt bij TransIP.

Als ik een curl op mijn public IP doe en de host overschrijf naar het navidrone sudomein (muziek.domein.online), dan gaat dat alsnog mis:
code:
1
curl  -H "Host: muziek.domein.online" -v https://my.ip


In Traefik zie ik dan:
code:
1
2
traefik  | time="2023-03-19T12:20:43Z" level=debug msg="Serving default certificate for request: \"\""
traefik  | time="2023-03-19T12:20:43Z" level=debug msg="http: TLS handshake error from my.ip: EOF"


Waarschijnlijk is het heel obvious, maar ik zie het niet :+

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
zAo schreef op zondag 19 maart 2023 @ 13:27:
[...]

Dat ik niet aan debug log heb gedacht |:(

Het subdomein lijkt niet aangemaakt te worden, dus ik krijg NXDOMAIN.

Ik probeer een navidrone container te exposen met de volgende labels:
code:
1
2
3
4
5
6
7
8
9
10
11
12
ports:
      - 4533:4533
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik_ingress
      - traefik.http.routers.navidrome.rule=Host(`muziek.domein.online`)
      - traefik.http.routers.navidrome.entrypoints=http
      - traefik.http.routers.navidrome.middlewares=redirect@file
      - traefik.http.routers.navidrome-secured.rule=Host(`muziek.domein.online`)
      - traefik.http.routers.navidrome-secured.entrypoints=https
      - traefik.http.routers.navidrome-secured.middlewares=hsts@file
      - traefik.http.routers.navidrome-secured.tls=true


De log van Traefik laat dan netjes zien dat die wordt opgepikt:
code:
1
2
3
4
5
6
7
8
9
10
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating load-balancer" routerName=navidrome-secured@docker serviceName=navidrome-navidrome entryPointName=https
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating server 0 http://172.27.0.3:4533" serviceName=navidrome-navidrome serverName=0 entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="child http://172.27.0.3:4533 now UP"
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Propagating new UP status"
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Added outgoing tracing middleware navidrome-navidrome" entryPointName=https routerName=navidrome-secured@docker middlewareName=tracing middlewareType=TracingForwarder
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating middleware" entryPointName=https routerName=navidrome-secured@docker middlewareName=hsts@file middlewareType=Headers
traefik  | time="2023-03-19T12:21:39Z" level=warning msg="SSLRedirect is deprecated, please use entrypoint redirection instead." middlewareName=hsts@file middlewareType=Headers entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Setting up secureHeaders from {map[] map[] false [] [] [] [] [] 0 false [] [] true false  map[] false 315360000 true true false false  false false       false}" middlewareName=hsts@file middlewareType=Headers entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Adding tracing to middleware" middlewareName=hsts@file entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating middleware" entryPointName=https routerName=certs@file serviceName=service-blank middlewareName=pipelining middlewareType=Pipelining

Iets later zie ik alleen wel dit:
code:
1
2
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Looking for provided certificate(s) to validate [\"*.domein.online\" \"domein.online\"]..." ACME CA="https://acme-v02.api.letsencrypt.org/directory" providerName=letsencrypt.acme
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="No ACME certificate generation required for domains [\"*.domein.online\" \"domein.online\"]." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"


Hierna wordt er geen DNS entry gemaakt bij TransIP.
Als je verwachting is dat Traefik automatisch voor jou DNS regelt: dat is dus niet zo. Je moet zelf de juiste A / AAAA records regelen. Enige dat Traefik met TransIP doet is het uitvoeren van de DNS ACME challenge door heel strict de specificatie te volgen in de zin van "ACME server stuurt een challenge die in een DNS record geplaatst moet worden zodat de ACME server / certificate authority weet dat jij eigenaar van het domein bent". Traefik gaat verder niet automatisch DNS records aanmaken. Sterker nog: de domeinen waarop ik de DNS challenge toepas is in 90% van de gevallen voor een domeinnaam die ik alleen intern / binnenshuis gebruik. Waarbin PiHole de DNS verzorgt en ik met het handje daarin de DNS records opvoer. Mijn Home Assistant bv hoeft niet vanaf het grote boze internet benaderbaar te zijn.

En voor domeinen die publiekelijk toegankelijk zijn hoef je natuurlijk niet de DNS challenge te gebruiken. De TLS challenge werkt dan zelfs beter (vereist geen configuratie en werkt sneller doordat er geen DNS record verspreid hoeft te worden). Enige uitzondering is als je wildcard certificaten wilt gebruiken, die kunnen alleen aangevraagd worden via de DNS challenge. Immers moet je dan bewijzen dat het hele domein ook daadwerkelijk van jou is, i.p.v. alleen bewijzen dat jij aan de andere kant van een specifiek (sub)domein zit.
Als ik een curl op mijn public IP doe en de host overschrijf naar het navidrone sudomein (muziek.domein.online), dan gaat dat alsnog mis:
code:
1
curl  -H "Host: muziek.domein.online" -v https://my.ip


In Traefik zie ik dan:
code:
1
2
traefik  | time="2023-03-19T12:20:43Z" level=debug msg="Serving default certificate for request: \"\""
traefik  | time="2023-03-19T12:20:43Z" level=debug msg="http: TLS handshake error from my.ip: EOF"


Waarschijnlijk is het heel obvious, maar ik zie het niet :+
Waarschijnlijk komt dat doordat je niet via SNI aangeeft welk domein je wilt opvragen. Daardoor geeft Traefik het default certificate terug. Immers wordt de TLS verbinding op gezet voordat de HTTP headers verstuurd worden. Dus Traefik moet al een certificaat gebruiken terwijl die niet weet welke Host header je gaat sturen. Daarvoor is SNI bedacht zodat de client in de TLS negotiation al de Server Name kan opgeven.
Maar als je met het handje de DNS hebt aangemaakt komt dat vanzelf goed. Dan kun je gewoon naar muziek.domein.online gaan en weet de browser dat die tijdens de TLS negotiation SNI moet gebruiken om muziek.domein.online "te gebruiken". Waarna Traefik dus het juiste certificaat kan toepassen.

Acties:
  • 0 Henk 'm!

  • zAo
  • Registratie: Maart 2002
  • Laatst online: 10-07 16:21

zAo

GPLv2 Fanboy

Wederom erg bedankt @RobertMe !

Ik was inderdaad in de veronderstelling dat DNS gedaan zou worden door Traefik omdat ik dat in het verleden met duckdns werkend had.

Ik heb nu een A aangemaakt en naar mijn public IP laten verwijzen, waarna ik het verkeer -uiteraard- zie binnenkomen in traefik als ik met een browser de url open. Heel behulpzaam is de log alleen niet:
code:
1
traefik  | time="2023-03-19T13:04:49Z" level=debug msg="http: TLS handshake error from myip:63737: read tcp 172.27.0.2:443->myip:63737: read: connection reset by peer"

Het 172.27.0.2 adres is het docker-ip van traefik.

Kijkend naar de rest van de log, dan ziet het er toch goed uit.
code:
1
2
3
4
5
6
7
8
9
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="Creating middleware" serviceName=navidrome-navidrome middlewareName=pipelining middlewareType=Pipelining entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="Creating load-balancer" entryPointName=https routerName=navidrome-secured@docker serviceName=navidrome-navidrome
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="Creating server 0 http://172.27.0.3:4533" serviceName=navidrome-navidrome serverName=0 entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="child http://172.27.0.3:4533 now UP"
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="Propagating new UP status"
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="Adding tracing to middleware" entryPointName=https routerName=navidrome-secured@docker middlewareName=hsts@file
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="Adding route for muziek.domein.online with TLS options default" entryPointName=https
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="Looking for provided certificate(s) to validate [\"*.domein.online\" \"domein.online\"]..." ACME CA="https://acme-v02.api.letsencrypt.org/directory" providerName=letsencrypt.acme
traefik  | time="2023-03-19T13:15:01Z" level=debug msg="No ACME certificate generation required for domains [\"*.domein.online\" \"domein.online\"]." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"

Dat 172.27.0.3 adres, is het adres van de navidrome container, welke samen met traefik in een docker netwerk zit.

Duwtje? :$

Acties:
  • 0 Henk 'm!

  • lxz
  • Registratie: Februari 2001
  • Laatst online: 16:15

lxz

heb je nu wel de loadbalancer server port regel in je compose file staan? Die zie ik in je voor-laatste post niet staan:

code:
1
      - traefik.http.services.navidrome.loadbalancer.server.port=4533

Acties:
  • +1 Henk 'm!

  • zAo
  • Registratie: Maart 2002
  • Laatst online: 10-07 16:21

zAo

GPLv2 Fanboy

lxz schreef op maandag 20 maart 2023 @ 12:04:
heb je nu wel de loadbalancer server port regel in je compose file staan? Die zie ik in je voor-laatste post niet staan:

code:
1
      - traefik.http.services.navidrome.loadbalancer.server.port=4533
Thanks. Hoewel ik deze specifiek niet meer kan achterhalen (ben naar een simpele setup gegaan om de basis goed te krijgen), blijkt het aan NAT Loopback / Hairpinning te liggen van mijn Delta modem. :X

Al working now. Dank voor het meedenken!

Acties:
  • 0 Henk 'm!

  • Djankie
  • Registratie: Maart 2007
  • Laatst online: 14-07 20:53
zAo schreef op dinsdag 21 maart 2023 @ 11:44:
[...]

Thanks. Hoewel ik deze specifiek niet meer kan achterhalen (ben naar een simpele setup gegaan om de basis goed te krijgen), blijkt het aan NAT Loopback / Hairpinning te liggen van mijn Delta modem. :X

Al working now. Dank voor het meedenken!
Ik heb sinds een paar dagen precies hetzelfde probleem. Hoe heb jij het precies opgelost / issue gevonden?

Acties:
  • 0 Henk 'm!

  • zAo
  • Registratie: Maart 2002
  • Laatst online: 10-07 16:21

zAo

GPLv2 Fanboy

Djankie schreef op woensdag 19 april 2023 @ 15:34:
[...]


Ik heb sinds een paar dagen precies hetzelfde probleem. Hoe heb jij het precies opgelost / issue gevonden?
Ik draai een Blocky container die mijn domein resolved naar mijn lokale ips.

Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

Ik probeer BasicAuth toe te voegen aan een toml rule bestand, maar ik zie vermoedelijk iets over het hoofd, want het werkt niet. Althans, ik krijg geen pop-up voor het invoeren van gebruikersnaam en wachtwoord. Heb het voorbeeld van https://doc.traefik.io/traefik/middlewares/http/basicauth/ toegepast in een bestaand (en werkend) toml bestand, maar zonder succes. Iemand een tip?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[http]
 [http.middlewares]
   [http.middlewares.appname-redirect.redirectScheme]
     scheme = "https"
  [http.middlewares.test-auth.basicAuth]
  users = [
    "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
    "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
  ]
   

 [http.routers.appname-redirect]
   entrypoints = ["web"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["appname-redirect"]
   service = "appname"

 [http.routers.appname]
   entrypoints = ["websecure"]
   rule = "Host(`appname.domein.nl`)"
   service = "appname"
   [http.routers.appname.tls]
       certResolver = "letsencrypt"

 [http.services]
   [http.services.appname.loadbalancer]
     [[http.services.appname.loadBalancer.servers]]
       url = "http://lokaalipadres:portnumber"

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
JBS schreef op maandag 22 mei 2023 @ 14:54:
Ik probeer BasicAuth toe te voegen aan een toml rule bestand, maar ik zie vermoedelijk iets over het hoofd, want het werkt niet. Althans, ik krijg geen pop-up voor het invoeren van gebruikersnaam en wachtwoord. Heb het voorbeeld van https://doc.traefik.io/traefik/middlewares/http/basicauth/ toegepast in een bestaand (en werkend) toml bestand, maar zonder succes. Iemand een tip?

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[http]
 [http.middlewares]
   [http.middlewares.appname-redirect.redirectScheme]
     scheme = "https"
  [http.middlewares.test-auth.basicAuth]
  users = [
    "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
    "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
  ]
   

 [http.routers.appname-redirect]
   entrypoints = ["web"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["appname-redirect"]
   service = "appname"

 [http.routers.appname]
   entrypoints = ["websecure"]
   rule = "Host(`appname.domein.nl`)"
   service = "appname"
   [http.routers.appname.tls]
       certResolver = "letsencrypt"

 [http.services]
   [http.services.appname.loadbalancer]
     [[http.services.appname.loadBalancer.servers]]
       url = "http://lokaalipadres:portnumber"
Je past de basic auth middleware niet toe (zoals je wel doet met de redirect middleware op de andere route).

Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

RobertMe schreef op maandag 22 mei 2023 @ 15:24:
[...]

Je past de basic auth middleware niet toe (zoals je wel doet met de redirect middleware op de andere route).
Dank voor je tip. Een poging daartoe hieronder, maar vermoedelijk ga ik nog ergens de mist in, aangezien het nog niet resulteert in een pop-up voor gebruikersnaam/wachtwoord.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[http]
 [http.middlewares]
   [http.middlewares.appname-redirect.redirectScheme]
     scheme = "https"
  [http.middlewares.test-auth.basicAuth]
  users = [
    "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
    "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
  ]
   

 [http.routers.appname-redirect]
   entrypoints = ["web"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["appname-redirect"]
   service = "appname"

 [http.routers.test-auth]
   entrypoints = ["web"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["test-auth"]
   service = "appname"

 [http.routers.appname]
   entrypoints = ["websecure"]
   rule = "Host(`appname.domein.nl`)"
   service = "appname"
   [http.routers.appname.tls]
       certResolver = "letsencrypt"

 [http.services]
   [http.services.appname.loadbalancer]
     [[http.services.appname.loadBalancer.servers]]
       url = "http://lokaalipadres:portnumber"

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

zAo schreef op zondag 19 maart 2023 @ 13:27:
[...]

Dat ik niet aan debug log heb gedacht |:(

Het subdomein lijkt niet aangemaakt te worden, dus ik krijg NXDOMAIN.

Ik probeer een navidrone container te exposen met de volgende labels:
code:
1
2
3
4
5
6
7
8
9
10
11
12
ports:
      - 4533:4533
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik_ingress
      - traefik.http.routers.navidrome.rule=Host(`muziek.domein.online`)
      - traefik.http.routers.navidrome.entrypoints=http
      - traefik.http.routers.navidrome.middlewares=redirect@file
      - traefik.http.routers.navidrome-secured.rule=Host(`muziek.domein.online`)
      - traefik.http.routers.navidrome-secured.entrypoints=https
      - traefik.http.routers.navidrome-secured.middlewares=hsts@file
      - traefik.http.routers.navidrome-secured.tls=true


De log van Traefik laat dan netjes zien dat die wordt opgepikt:
code:
1
2
3
4
5
6
7
8
9
10
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating load-balancer" routerName=navidrome-secured@docker serviceName=navidrome-navidrome entryPointName=https
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating server 0 http://172.27.0.3:4533" serviceName=navidrome-navidrome serverName=0 entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="child http://172.27.0.3:4533 now UP"
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Propagating new UP status"
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Added outgoing tracing middleware navidrome-navidrome" entryPointName=https routerName=navidrome-secured@docker middlewareName=tracing middlewareType=TracingForwarder
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating middleware" entryPointName=https routerName=navidrome-secured@docker middlewareName=hsts@file middlewareType=Headers
traefik  | time="2023-03-19T12:21:39Z" level=warning msg="SSLRedirect is deprecated, please use entrypoint redirection instead." middlewareName=hsts@file middlewareType=Headers entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Setting up secureHeaders from {map[] map[] false [] [] [] [] [] 0 false [] [] true false  map[] false 315360000 true true false false  false false       false}" middlewareName=hsts@file middlewareType=Headers entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Adding tracing to middleware" middlewareName=hsts@file entryPointName=https routerName=navidrome-secured@docker
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Creating middleware" entryPointName=https routerName=certs@file serviceName=service-blank middlewareName=pipelining middlewareType=Pipelining

Iets later zie ik alleen wel dit:
code:
1
2
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="Looking for provided certificate(s) to validate [\"*.domein.online\" \"domein.online\"]..." ACME CA="https://acme-v02.api.letsencrypt.org/directory" providerName=letsencrypt.acme
traefik  | time="2023-03-19T12:21:39Z" level=debug msg="No ACME certificate generation required for domains [\"*.domein.online\" \"domein.online\"]." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"


Hierna wordt er geen DNS entry gemaakt bij TransIP.

Als ik een curl op mijn public IP doe en de host overschrijf naar het navidrone sudomein (muziek.domein.online), dan gaat dat alsnog mis:
code:
1
curl  -H "Host: muziek.domein.online" -v https://my.ip


In Traefik zie ik dan:
code:
1
2
traefik  | time="2023-03-19T12:20:43Z" level=debug msg="Serving default certificate for request: \"\""
traefik  | time="2023-03-19T12:20:43Z" level=debug msg="http: TLS handshake error from my.ip: EOF"


Waarschijnlijk is het heel obvious, maar ik zie het niet :+
De koppeling met de TransIP API werkt niet lekker en is volgens mij ook al even stuk. Paar maanden terug ben ik daar ook heel veel mee bezig geweest. Uiteindelijk besloten om de DNS via CloudFlare te doen en die API te gebruiken, dat werkt wel. Ik heb het echter wel alleen nodig voor het wildcard certificaat, omdat ik ook voor de subdomeinen een soort van wildcard op DNS niveau heb ingesteld.

EDIT:
Whups, ik zie nu pas dat dit een 2 maanden oude post is, mea culpa! :$

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
CH4OS schreef op maandag 22 mei 2023 @ 15:45:
[...]
De koppeling met de TransIP API werkt niet lekker en is volgens mij ook al even stuk. Paar maanden terug ben ik daar ook heel veel mee bezig geweest. Uiteindelijk besloten om de DNS via CloudFlare te doen en die API te gebruiken, dat werkt wel. Ik heb het echter wel alleen nodig voor het wildcard certificaat, omdat ik ook voor de subdomeinen een soort van wildcard op DNS niveau heb ingesteld.
He? Ik heb nog nooit echt problemen gehad met TransIP. Die keren datveen wildcard cert niet vernieuwd werd kwam dat door een IP whitelist op de TransIP API en dat ik een nieuw IP had :p

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
JBS schreef op maandag 22 mei 2023 @ 15:40:
[...]
Dank voor je tip. Een poging daartoe hieronder, maar vermoedelijk ga ik nog ergens de mist in, aangezien het nog niet resulteert in een pop-up voor gebruikersnaam/wachtwoord.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[http]
 [http.middlewares]
   [http.middlewares.appname-redirect.redirectScheme]
     scheme = "https"
  [http.middlewares.test-auth.basicAuth]
  users = [
    "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
    "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
  ]
   

 [http.routers.appname-redirect]
   entrypoints = ["web"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["appname-redirect"]
   service = "appname"

 [http.routers.test-auth]
   entrypoints = ["web"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["test-auth"]
   service = "appname"

 [http.routers.appname]
   entrypoints = ["websecure"]
   rule = "Host(`appname.domein.nl`)"
   service = "appname"
   [http.routers.appname.tls]
       certResolver = "letsencrypt"

 [http.services]
   [http.services.appname.loadbalancer]
     [[http.services.appname.loadBalancer.servers]]
       url = "http://lokaalipadres:portnumber"
Zet de middlewares config eens onder de route waar die bij hoort i.p.v. een nieuwe route maken ;)

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

RobertMe schreef op maandag 22 mei 2023 @ 15:57:
He? Ik heb nog nooit echt problemen gehad met TransIP. Die keren datveen wildcard cert niet vernieuwd werd kwam dat door een IP whitelist op de TransIP API en dat ik een nieuw IP had :p
Ik kreeg in elk geval de TransIP API niet aan de praat icm Traefik, ondanks dat ik al jaren hetzelfde IP-adres heb en ik mijn IP-adres had gewhitelist in die API. Toen ik switchte naar CloudFlare DNS werkte het verkrijgen van wildcard certificaten als een zonnetje.

Wellicht werd de API key niet goed door Docker aan de container doorgegeven of zo. Ik gebruik namelijk geen TOML files voor configuratie, enkel configuratie via diverse docker-compose.yml bestanden.

[ Voor 16% gewijzigd door CH4OS op 22-05-2023 16:29 ]


Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

RobertMe schreef op maandag 22 mei 2023 @ 15:58:
[...]

Zet de middlewares config eens onder de route waar die bij hoort i.p.v. een nieuwe route maken ;)
Geloof niet dat ik je hint helemaal begrijp. Staat de test-auth.basicAuth middleware verkeerd, of juist de verwijzing ernaar bij de route? Hoe moet het totaalplaatje van de toml eruit zien volgens jou?

[ Voor 7% gewijzigd door JBS op 22-05-2023 16:15 ]


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
CH4OS schreef op maandag 22 mei 2023 @ 16:11:
Wellicht werd de API key niet goed door Docker aan de container doorgegeven of zo. Ik gebruik namelijk geen TOML files voor configuratie, enkel configuratie via diverse docker-compose.yml bestanden.
* RobertMe heeft de API key in een file staan. Kan niks mis mee gaan. Anders staat die als value in een env. variable en krijg je idd bv quirks met $ want docker-compose interpreteert het dan als het lezen van een env variable.

Acties:
  • +1 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
JBS schreef op maandag 22 mei 2023 @ 16:15:
[...]
Geloof niet dat ik je hint helemaal begrijp. Staat de test-auth.basicAuth middleware verkeerd, of juist de verwijzing ernaar bij de route? Hoe moet het totaalplaatje van de toml eruit zien volgens jou?
Dit dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[http]
 [http.middlewares]
   [http.middlewares.appname-redirect.redirectScheme]
     scheme = "https"
  [http.middlewares.test-auth.basicAuth]
  users = [
    "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
    "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
  ]
   

 [http.routers.appname-redirect]
   entrypoints = ["web"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["appname-redirect"]
   service = "appname"

 [http.routers.appname]
   entrypoints = ["websecure"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["test-auth"]
   service = "appname"
   [http.routers.appname.tls]
       certResolver = "letsencrypt"

 [http.services]
   [http.services.appname.loadbalancer]
     [[http.services.appname.loadBalancer.servers]]
       url = "http://lokaalipadres:portnumber"

Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

RobertMe schreef op maandag 22 mei 2023 @ 16:38:
[...]

* RobertMe heeft de API key in een file staan. Kan niks mis mee gaan. Anders staat die als value in een env. variable en krijg je idd bv quirks met $ want docker-compose interpreteert het dan als het lezen van een env variable.
Ik gebruikte er Docker secrets voor.

Acties:
  • 0 Henk 'm!

  • jvwou123
  • Registratie: Maart 2002
  • Laatst online: 07:28
RobertMe schreef op maandag 22 mei 2023 @ 16:39:
[...]

Dit dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[http]
 [http.middlewares]
   [http.middlewares.appname-redirect.redirectScheme]
     scheme = "https"
  [http.middlewares.test-auth.basicAuth]
  users = [
    "test:$apr1$H6uskkkW$IgXLP6ewTrSuBkTrqE8wj/",
    "test2:$apr1$d9hr9HBB$4HxwgUir3HP4EsggP/QNo0",
  ]
   

 [http.routers.appname-redirect]
   entrypoints = ["web"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["appname-redirect"]
   service = "appname"

 [http.routers.appname]
   entrypoints = ["websecure"]
   rule = "Host(`appname.domein.nl`)"
   middlewares = ["test-auth"]
   service = "appname"
   [http.routers.appname.tls]
       certResolver = "letsencrypt"

 [http.services]
   [http.services.appname.loadbalancer]
     [[http.services.appname.loadBalancer.servers]]
       url = "http://lokaalipadres:portnumber"
Ik heb de users als string bij de docker labels: (ik gebruik dus geen toml, maar docker labels)
code:
1
2
3
        - 'traefik.http.routers.traefik.middlewares=authtraefik'
        # password maken: echo $(htpasswd -nb user password )| sed -e s/\\$/\\$\\$/g
        - 'traefik.http.middlewares.authtraefik.basicauth.users=user1:PASSHASS,user2:PASSHASS'


Zie je verder nog foutmeldingen van traefik?

Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

jvwou123 schreef op maandag 22 mei 2023 @ 16:44:
[...]


Ik heb de users als string bij de docker labels: (ik gebruik dus geen toml, maar docker labels)
code:
1
2
3
        - 'traefik.http.routers.traefik.middlewares=authtraefik'
        # password maken: echo $(htpasswd -nb user password )| sed -e s/\\$/\\$\\$/g
        - 'traefik.http.middlewares.authtraefik.basicauth.users=user1:PASSHASS,user2:PASSHASS'


Zie je verder nog foutmeldingen van traefik?
Voor een aantal andere docker containers heb ik basic auth inderdaad ook via labels in docker compose, voor deze specifieke container heb ik een los toml bestand. Op basis van het voorbeeld van @RobertMe werkt basic auth daar nu ook voor :)

Acties:
  • 0 Henk 'm!

  • sloth
  • Registratie: Januari 2010
  • Niet online
Nieuw met Traefik. Ik probeer te begrijpen of Traefik een goede match is als reverse proxy in een Proxmox setup met services in LXC containers.

Van de Traefik website begrijp ik dat service discovery net een belangrijke feature is. Die integratie is er voor o.a. docker maar dus niet meteen voor LXC containers begrijp ik.

Is het nog steeds handig om naar Traefik te kijken voor mijn beoogde (manuele) gebruik of ben je dan beter af met bijvoorbeeld NGINX?

Acties:
  • +1 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
sloth schreef op woensdag 12 juli 2023 @ 12:31:
Nieuw met Traefik. Ik probeer te begrijpen of Traefik een goede match is als reverse proxy in een Proxmox setup met services in LXC containers.

Van de Traefik website begrijp ik dat service discovery net een belangrijke feature is. Die integratie is er voor o.a. docker maar dus niet meteen voor LXC containers begrijp ik.

Is het nog steeds handig om naar Traefik te kijken voor mijn beoogde (manuele) gebruik of ben je dan beter af met bijvoorbeeld NGINX?
Traefik kan, moet je het alleen handmatig configureren. Geen idee of het bij Nginx (proxy manager?) wel automatisch kan. En wellicht voordeeltje van Traefik is dat als je (een van de) dynamische config files (met handmatige "route" dan) aanpast of een nieuwe aanmaakt dat automatisch die route wordt toegevoegd (/gewijzigd) zonder dat je moet reloaden / restarten.

Acties:
  • +1 Henk 'm!

  • lolgast
  • Registratie: November 2006
  • Laatst online: 16:36
Ik gebruik Traefik icm Proxmox LXC. Maar dat kan inderdaad niet op basis van discovery. Het is "belangrijk" als je een grote schaalbare omgeving hebt waarbij instances ineens op andere servers kunnen draaien. Voor thuis is het leuk, maar noodzakelijk? Nee daar ben ik het absoluut niet mee eens. Mijn server IP is de afgelopen 10 jaar letterlijk nog nooit gewijzigd. En de server zelf wel ;)

Acties:
  • +1 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Ik probeer in Traefik een default host name rule aan te maken voor mijn Docker containers, zodat ik mezelf een boel kan besparen in de config en in de hostname geen tikfout kan maken. Nu heb ik de volgende regel, eigenlijk letterlijk vanuit het voorbeeld gekopieerd en geplakt in mijn configuratie. Op zich werkt dit, maar geeft het geen gewenst resultaat voor de hostname.

code:
1
--providers.docker.defaultRule=Host(`{{ trimPrefix `/` .Name }}.mijndomein.nl`)

Dit levert een naam op dat er als volgt uit ziet: containernaam-dockernetwerk.mijndomein.nl. Maar jullie raden het vast al: ik wil gewoon containernaam.mijndomein.nl hebben. Maar ik heb geen idee hoe dat te fixen. :$

Ik kan ook niet zeggen om trimSuffix '-dockernetwork' .Name te doen, omdat ik meerdere containers heb, verspreid over meerdere (Docker) "netwerken".

EDIT:
En voor alsnog opgelost! Ik gebruik nu het volgende als regel:
code:
1
--providers.docker.defaultRule=Host(`{{ index .Labels "com.docker.compose.service" }}.mijndomein.nl`)
Gevonden op de community van Traefik. :)

[ Voor 25% gewijzigd door CH4OS op 18-11-2023 19:24 ]


Acties:
  • 0 Henk 'm!

  • ElCondor
  • Registratie: Juni 2001
  • Laatst online: 16:48

ElCondor

Geluk is Onmisbaar

Toch eens even navragen hier, ondanks dat het wat stil is.
Ben onlangs begonnen met het implementeren van Traefik en ik moet zeggen, als je de materie eenmaal een beetje door hebt, dan kan er veel mee.
Inmiddels al wat PowerShell scripts geschreven waarmee ik on the fly configs aan kan maken voor services die niet in de docker instance van Traefik zelf draaien. Ik heb echter één issue:
Ik krijg een site met Windows Authentication net niet helemaal lekker aan de praat.
Ik heb inmiddels begrepen dat daar een TCP router voor nodig is omdat, vermoedelijk, het oppikken van de windows auth nog vóór het http/https verkeer plaatsvindt.
Ik heb het wel werkend gezien in mijn omgeving, maar om de een of andere reden verdwijnt de functionaliteit ook weer en wordt er bij het aanroepen van de router in Traefik een 404 teruggegeven.
In de logging kan ik er niets over terug vinden.
Als ik de traefik container dan een keer stop en start dan werkt het weer voor een minuut of zo, maar dan springt het beeld weer op zwart, vreemd genoeg.

Ik heb twee configuraties geprobeerd (zie hieronder) maar beide lijken dit euvel te hebben (of ik kan er de vinger niet op leggen waarom het stuk gaat en dit heeft er niets mee te maken |:( ).
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
## appconfiguration
tcp:
  routers:
    app:
      entryPoints:
        - https
      service: app
      rule: "HostSNI(`app.domein.locall`)" #hier heb ik ook al HostSNI(`*`) geprobeerd. Echter dan vallen alle andere sites om, ivm de manier waarop TCP vs HTTPS behandeld wordt in Traefik
      tls:
        options: default
        passthrough: true
  services:
    app:
      loadBalancer:
        servers:
        - address: "192.168.0.1:443"

Het ip adres is benaderbaar. Als ik van Traefik een 404 krijg en ik ga handmatig in de browser naar dit adres, dan krijg ik wel netjes de vraag om een Windows wachtwoord.

Als ik de container stop en start, dan krijg ik kort zelfs van Traefik bij het aanroepen van app.domein.local een ww prompt (ook echt een Windows auth prompt). Ik kan dan zelfs inloggen en de achterliggende site gebruiken. Maar dan na een minuut of vijf, stopt het met werken en krijg ik weer een 404.
Ik heb al rond lopen struinen op de Reddits en Traefik fora, maar zie daar erg weinig informatie. Wel veel gelijkende vragen, maar daar komt bijna nooit antwoord op. Ik vermoed, omdat het wel op een gegeven moment moet lukken, maar niemand meldt de oplossing terug.

In de logging, zelfs met debugging aan zie ik geen duidelijke reden voorbij komen wat er veranderd als Traefik weer een 404 begint terug te geven. Bij opstarten van Traefik zie ik wel netjes dat de config opgepikt wordt en de route wordt opgebouwd en het end-point als UP aangemerkt wordt.

Heeft iemand hier er hier ervaring mee? Of doet iederen met Traefik voornamelijk alles met containers?
Ik heb andere, non-containerized http(s) services wel netjes kunnen plaatsen achter Traefik. Dit is echter de eerste Windows Auth applicatie die ik probeer te migreren.

-UPDATE-
Uiteraard is dit zoiets waar je niet na kan laten om aan te blijven krabben, maar het lijkt er op dat net na de reboot de TCP router voorrang krijgt op ale andere routers, want dat vergat ik te vermelden, als het werkt voor de Windows Auth site, dan is de kans groot dat alle andere sites niet meer werken. Sterker nog, nu ik de melding krijg dat die andere sites het niet doen en ik ros daar herhaaldelijk op F5, dan krijg ik een IIS auth failed scherm en de vraag om in te loggen! :? 8)7
Lijkt er dus op dat AL het verkeer over de TCP router loopt in eerste instantie. Daar zal ik nog eens verder in duiken.

-UPDATE 2-
Ik denk dat ik al wel wat verder ben. Het venijn lijkt bij Traefik toch wel in de 'kleine' lettertjes te zitten. De documentatie is doorspekt met mitsen en maaren. Zoals, nu ik eens goed aan het lezen ben, het advies om een TCP router specifiek op een eigen entrypoint te configureren. >:) Nu heb ik net zowel in de stack als in de traefik config zelf een extra port met daarop een entrypoint geconfigureerd en DAAR dan de router op aangesloten en dan werkt het! Dus ipv een port denk ik dat ik een extra IP adres toevoeg aan de server en daar het entrypoint/router op ga zetten... :F
Ik denk dat ik er verder wel uit ga komen zo. Dank u allen voor het meedenken :P

[ Voor 17% gewijzigd door ElCondor op 26-04-2024 09:28 ]

Hay 365 dias en un año y 366 occasiones para festejar (Boliviaans spreekwoord)


Acties:
  • +2 Henk 'm!

  • Kimi-Alonso
  • Registratie: Juli 2006
  • Niet online
Gisteravond eindelijk Traefik succesvol kunnen draaien via Docker. Moet zeggen dat het vrij intensief is voor een hobby projectje maar na veel tutorials is dan toch het kwartje gaan vallen.

Hoop er dit weekend wat meer containers achter te zetten en probeer me dan meer te verdiepen in de middleware mogelijkheden.

Acties:
  • 0 Henk 'm!

  • The GUI
  • Registratie: November 2010
  • Laatst online: 16:58

The GUI

SaaS > PaaS > IaaS

Ik heb ook vele uren in mijn Traefik config zitten. Ik heb alles van labels verplaatst naar middlewares en chains om de docker compose zo klein mogelijk te houden. Het is een steile leercurve, maar ik hoef het nu al 2 nauwelijks aan te raken!
Waar ik destijds veel inspiratie uit heb gehaald: https://www.smarthomebegi...ocker-compose-guide-2024/

GB Aorus Elite | AMD 3700X | 32GB 3733C16 | GTX 1070 Ti


Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

Tijdens het opzetten van Traefik 3 als vervanger van 2, wil ik direct de DNS challenge via TransIP laten verlopen. Ik lees hier zo her en der echter problemen met TransIP voor deze DNS challange.

Zijn er hier mensen die op dit moment succesvol TransIP gebruiken voor de DNS challange?

[ Voor 90% gewijzigd door JBS op 15-02-2025 15:51 ]


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
JBS schreef op zaterdag 15 februari 2025 @ 15:19:
Tijdens het opzetten van Traefik 3 als vervanger van 2, wil ik direct de DNS challenge via TransIP laten verlopen. Ik lees hier zo her en der echter problemen met TransIP voor deze DNS challange.

Zijn er hier mensen die op dit moment succesvol TransIP gebruiken voor de DNS challange?
Ik heb deze gebruikt prive (intussen staat DNS bij DeSEC) en gebruik deze nog steeds op mijn werk laptop. 0 problemen mee gehad in al die jaren (denk zeker 5). Als een cert al verliep kwam dat door IP whitelist op de API en een nieuw IP adres, maar niet door onbetrouwbare DNS (API).

Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

RobertMe schreef op zaterdag 15 februari 2025 @ 16:01:
[...]

Ik heb deze gebruikt prive (intussen staat DNS bij DeSEC) en gebruik deze nog steeds op mijn werk laptop. 0 problemen mee gehad in al die jaren (denk zeker 5). Als een cert al verliep kwam dat door IP whitelist op de API en een nieuw IP adres, maar niet door onbetrouwbare DNS (API).
In mijn NUC heb ik even een nieuwe SSD gestopt en daarop een verse installatie van Ubuntu Server gedaan. Op basis van https://www.simplehomelab...ocker-compose-guide-2024/ heb ik vervolgens Traefik 3 (3.3.3.) geïnstalleerd, inclusief DNS challenge deze keer via TransIP.

Het Traefik dashboard is lokaal bereikbaar (zonder SSL), maar nog niet via traefik.domeinnaam.nl.
In de Traefik log zie ik dat het verkrijgen van certificaten nog niet lukt waardoor ie terugvalt op het certificaat voor hass.domeinnaam.nl, een certificaat dat Traefik 2 draaiende op de verwijderde SSD verkregen heeft.
Dit subdomein is op geen enkele manier bekend in deze verse installatie, maar toch weet Traefik 3 draaiende op de nieuwe SSD er kennelijk van.

Hoe kan dit? En, waarom gebeurt dit?

Acties:
  • 0 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 16:34
JBS schreef op zaterdag 15 februari 2025 @ 15:19:
Tijdens het opzetten van Traefik 3 als vervanger van 2, wil ik direct de DNS challenge via TransIP laten verlopen. Ik lees hier zo her en der echter problemen met TransIP voor deze DNS challange.

Zijn er hier mensen die op dit moment succesvol TransIP gebruiken voor de DNS challange?
Ja, werkt gewoon zonder problemen hier.

Dit is het relevante stukje in mijn traefik.yaml:

YAML:
1
2
3
4
5
6
7
8
9
10
11
certificatesResolvers:
  le:
    acme:
      email: ****@****
      storage: /acme.json
      dnsChallenge:
        provider: "transip"
        resolvers:
          - ns0.transip.net
          - ns1.transip.nl
          - ns2.transip.eu


en in mijn docker-compose.yaml:
YAML:
1
2
3
    environment:
      - TRANSIP_ACCOUNT_NAME=******
      - TRANSIP_PRIVATE_KEY_PATH=/transip.key

Sometimes you need to plan for coincidence


Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

Hmmbob schreef op zaterdag 15 februari 2025 @ 18:36:
[...]

Ja, werkt gewoon zonder problemen hier.

Dit is het relevante stukje in mijn traefik.yaml:

YAML:
1
2
3
4
5
6
7
8
9
10
11
certificatesResolvers:
  le:
    acme:
      email: ****@****
      storage: /acme.json
      dnsChallenge:
        provider: "transip"
        resolvers:
          - ns0.transip.net
          - ns1.transip.nl
          - ns2.transip.eu


en in mijn docker-compose.yaml:
YAML:
1
2
3
    environment:
      - TRANSIP_ACCOUNT_NAME=******
      - TRANSIP_PRIVATE_KEY_PATH=/transip.key
Goed te lezen dat 't gewoon zou moeten werken.
Op basis van welke docs heb jij je Traefik 3 omgeving opgezet? Wat je post, wijkt namelijk behoorlijk af van mijn traefik.yaml structuur.

Acties:
  • 0 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 16:34
Enkel Traefik eigen docs, maar dat kan ook van v2 zijn geweest.

Wat wijkt er dan behoorijk af? ik deel echt een ienie-mini stukje net - als dat al zoveel afwijkt :+

[ Voor 14% gewijzigd door Hmmbob op 15-02-2025 18:41 ]

Sometimes you need to plan for coincidence


Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

@Hmmbob Kwam vanavond Cloudflare Tunnels tegen en toen dat met pakweg 'n kwartiertje werkte, heb ik besloten afscheid te nemen van Traefik. Vanaf 1.x gebruikt, maar altijd wel het idee gehad dat het voor m'n beperkte doel (HA en nog wat andere containters via een eigen subdomein met SSL bereikbaar maken) wat overkill was. Nooit helemaal begrepen hoe het het precies werkte, maar met de juiste tutorials het wel werkend gekregen. Nu Traefik 3.x me weer teveel tijd gaat kosten, is dit een mooi moment voor de overstap naar een Cloudflare Tunnel.

[ Voor 11% gewijzigd door JBS op 15-02-2025 22:18 ]


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
JBS schreef op zaterdag 15 februari 2025 @ 22:14:
Nu Traefik 3.x me weer teveel tijd gaat kosten, is dit een mooi moment voor de overstap naar een Cloudflare Tunnel.
Ik vind het eigenlijk best wel gek dat je schijnbaar issues hebt met de Traefik 3 upgrade. Ik draai, eigenlijk van alle Docker images/containers, gewoon latest. En de Traefik 3 update kwam ik pas achter dat ik die gedaan had toen bleek dat wat heel specifieke routing rules niet werkte. En enige wat ik dus heb gedaan is voor die specifieke container de rule aangepast. Waarbij op zijn minst op VPS ik meen de TLS challenge en thuis de DNS challenge (met DeSEC) gewoon prima bleef werken dus.

Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

RobertMe schreef op zaterdag 15 februari 2025 @ 22:30:
[...]

Ik vind het eigenlijk best wel gek dat je schijnbaar issues hebt met de Traefik 3 upgrade. Ik draai, eigenlijk van alle Docker images/containers, gewoon latest. En de Traefik 3 update kwam ik pas achter dat ik die gedaan had toen bleek dat wat heel specifieke routing rules niet werkte. En enige wat ik dus heb gedaan is voor die specifieke container de rule aangepast. Waarbij op zijn minst op VPS ik meen de TLS challenge en thuis de DNS challenge (met DeSEC) gewoon prima bleef werken dus.
Aangezien zowel m'n Ubuntu Server als Docker omgeving behoorlijk verouderd is (en ik daarbij destijds best wel gerommeld heb met diverse spullen buiten docker containers om die nu niet meer in gebruik zijn),vond ik wat wat tricky om dat allemaal te upgraden en op te ruimen en heb ik ervoor gekozen een schone installatie op een andere SSD te doen.
Traefik 3 was daarom geen upgrade voor mij, maar ook een schone installatie.

[ Voor 8% gewijzigd door JBS op 15-02-2025 22:34 ]


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
JBS schreef op zaterdag 15 februari 2025 @ 22:32:
[...]
Aangezien zowel m'n Ubuntu Server als Docker omgeving behoorlijk verouderd is (en ik daarbij destijds best wel gerommeld heb met diverse spullen buiten docker containers om die nu niet meer in gebruik zijn),vond ik wat wat tricky om dat allemaal te upgraden en op te ruimen en heb ik ervoor gekozen een schone installatie op een andere SSD te doen.
Traefik 3 was daarom geen upgrade voor mij, maar ook een schone installatie.
Nouja, ook dan, werkt waarschijnlijk een 2.x config (die je dus al had) best wel heel erg prima op 3.x. En die 2.x config had je ook voor elkaar gekregen.

Acties:
  • 0 Henk 'm!

  • JBS
  • Registratie: Januari 2004
  • Niet online

JBS

RobertMe schreef op zaterdag 15 februari 2025 @ 22:35:
[...]

Nouja, ook dan, werkt waarschijnlijk een 2.x config (die je dus al had) best wel heel erg prima op 3.x. En die 2.x config had je ook voor elkaar gekregen.
Heb ervoor gekozen om opnieuw te beginnen, en deze gevolgd https://www.simplehomelab...ocker-compose-guide-2024/
Helaas niet met een werkend geheel, wat ongetwijfeld aan mezelf ligt. Het is gewoon allemaal net wat te complex voor iemand die niet erg in deze netwerk wereld thuis is. Althans, dat vind ik, zeker nu ik een Cloudflare Tunnel gezien heb :9

Acties:
  • +2 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 16:34
Ik gebruik het ook voor iets meer dan alleen HA :+

Sometimes you need to plan for coincidence


Acties:
  • 0 Henk 'm!

  • ComTech
  • Registratie: November 2002
  • Laatst online: 14-07 23:24
Ik ben me eens gaan verdiepen in traefik en heb een tutorial gevolgd van jim's garage voor traefik 3.3
Heb het prima werkend gekregen met alle docker service met traefik labels .
Maar mijn eigen service die niet in docker draaien of geen labels hebben die krijg ik maar half werkend.
De pagina's laden soms maar half (zonder plaatjes) of werken maar half.
Iemand de tip om mij om weg te helpen?
Dit is mijn config.yaml


YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
http:
  middlewares:    
    default-security-headers:
      headers:
        browserXssFilter: true                            # X-XSS-Protection=1; mode=block
        contentTypeNosniff: true                          # X-Content-Type-Options=nosniff
        forceSTSHeader: true                              # Add the Strict-Transport-Security header even when the connection is HTTP
        frameDeny: false                                   # X-Frame-Options=deny
        referrerPolicy: "strict-origin-when-cross-origin"
        stsIncludeSubdomains: true                        # Add includeSubdomains to the Strict-Transport-Security header
        stsPreload: true                                  # Add preload flag appended to the Strict-Transport-Security header
        stsSeconds: 3153600                              # Set the max-age of the Strict-Transport-Security header (63072000 = 2 years)
        contentSecurityPolicy: "default-src 'self'"     
        customRequestHeaders:
          X-Forwarded-Proto: https
    https-redirectscheme:
      redirectScheme:
        scheme: https
        permanent: true

  routers:
    web:
      entryPoints:
        - "https"
      rule: "Host(`homarr.domein.nl`)"
      middlewares:
        - default-security-headers
        - https-redirectscheme
      tls: {}
      service: web
    dsmr:
      entryPoints:
        - "https"
      rule: "Host(`dsmr.domein.nl`)"
      middlewares:
        - default-security-headers
        - https-redirectscheme
      tls: {}
      service: dsmr

  services:
    web:
      loadBalancer:
        servers:
          - url: "http://ip:8180"
        passHostHeader: true
    dsmr:
      loadBalancer:
        servers:
          - url: "http://ip:8123"
        passHostHeader: true

Acties:
  • +1 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 16:34
Probeer het eens zonder je default-seceurity-headers - bij "halve pagina's" gok ik op een van die regels die iets in de war gooit.

Gewoon een # teken op regels 27 en 36 van je voorbeeld zou voldoende moeten zijn

[ Voor 27% gewijzigd door Hmmbob op 16-02-2025 18:13 ]

Sometimes you need to plan for coincidence


Acties:
  • +2 Henk 'm!

  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

in de web inspector van je browser staat waarom dingen niet laden, en vaak is dat de Content-Security-Policy die daar voor zorgt.

All my posts are provided as-is. They come with NO WARRANTY at all.


Acties:
  • 0 Henk 'm!

  • ComTech
  • Registratie: November 2002
  • Laatst online: 14-07 23:24
Hmmbob schreef op zondag 16 februari 2025 @ 18:11:
Probeer het eens zonder je default-seceurity-headers - bij "halve pagina's" gok ik op een van die regels die iets in de war gooit.

Gewoon een # teken op regels 27 en 36 van je voorbeeld zou voldoende moeten zijn
Dat helpt nu laden de pagina's goed, snap alleen niet dat het via de docker labels dan wel goed gaat.
Daar worden geen middleware regels toegepast zag ik wel dus dat zal het wel zijn.

Acties:
  • 0 Henk 'm!

  • Hmmbob
  • Registratie: September 2001
  • Laatst online: 16:34
ComTech schreef op zondag 16 februari 2025 @ 19:05:
[...]


Dat helpt nu laden de pagina's goed, snap alleen niet dat het via de docker labels dan wel goed gaat.
Daar worden geen middleware regels toegepast zag ik wel dus dat zal het wel zijn.
Klinkt valide.

Sometimes you need to plan for coincidence


Acties:
  • 0 Henk 'm!

  • ComTech
  • Registratie: November 2002
  • Laatst online: 14-07 23:24
Inmiddels ben ik helemaal over op traefik gegaan voor mijn 2 domeinnamen maar ik loop tegen 1 probleem aan.
Of het direct met traefik te maken heeft weet ik niet zeker.
Ik heb beide domein namen via cloudflare dns lopen.
Op beide heb ik Proxied aanstaan.
Op domein1 werkt alles prima op domein2 krijg ik een foutmelding to many redirects.
Als ik de proxied uitzet dan werkt het wel goed terwijl op domein1 de proxy wel aanstaat en daar werkt het wel goed met dezelfde service.
Iemand een idee ?
De service van domein2 heeft eerst in een cloudflare tunnel gedraaid dat heb ik allemaal opgeruimd ook in de DNS records.

Acties:
  • 0 Henk 'm!

  • badkuip
  • Registratie: December 2002
  • Laatst online: 17:11
De afgelopen dagen heb ik besteed aan de upgrade van Traefik v2 naar Traefik v3.
In mijn docker compose maak ik gebruik van CLI arguments om de container te starten (deze tutorial)

Dat het met CLI moet zint me eigenlijk niet. Aan de ene kant om dat al het andere in YAML is maar des te meer omdat bij het starten of stoppen van docker de volgende error in de logs komt:
code:
1
2
3
4
5
6
2025-04-09T14:58:40+02:00 ERR error="accept tcp [::]:80: use of closed network connection" entryPointName=http
2025-04-09T14:58:40+02:00 ERR error="close tcp [::]:80: use of closed network connection" entryPointName=http
2025-04-09T14:58:40+02:00 ERR error="accept tcp [::]:8080: use of closed network connection" entryPointName=traefik
2025-04-09T14:58:40+02:00 ERR error="close tcp [::]:8080: use of closed network connection" entryPointName=traefik
2025-04-09T14:58:40+02:00 ERR error="accept tcp [::]:443: use of closed network connection" entryPointName=https
2025-04-09T14:58:40+02:00 ERR error="close tcp [::]:443: use of closed network connection" entryPointName=https

Deze bron zegt dat dat door CLI komt.
Heeft er iemand een suggestie waarmee ik mijn config kan omzetten naar YAML, met behoud van de werking? De reden waarom het in de eerstgenoemde tutorial niet gedaan werd, was omdat er variabelen hard gecodeerd moeten worden. Nu staan ze netjes in een separate .env.
Voor zover ik het begrijp kan je dus met YAML geen aparte .env variabelen gebruiken.
Maar het kan zijn dat ik er geen biet van snap.


YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
  # Traefik 3 - Reverse Proxy
  traefik3:
    <<: *common-keys-core # See EXTENSION FIELDS at the top
    container_name: traefik3
    image: traefik:v3.3
    command: # CLI arguments
      - --global.checkNewVersion=false
      - --global.sendAnonymousUsage=true
      - --entryPoints.http.address=:80
      - --entryPoints.https.address=:443
      # Allow these IPs to set the X-Forwarded-* headers - Cloudflare IPs: https://www.cloudflare.com/ips/
      - --entrypoints.https.forwardedHeaders.trustedIPs=$CLOUDFLARE_IPS,$LOCAL_IPS
      - --entryPoints.traefik.address=:8080
      - --api=true
      - --api.dashboard=true
      - --log=true
      - --log.filePath=/logs/traefik3.log
      - --log.level=ERROR # (Default: error) DEBUG, INFO, WARN, ERROR, FATAL, PANIC
      - --accessLog=true
      - --accessLog.filePath=/logs/access3.log
      - --accessLog.bufferingSize=100 # Configuring a buffer of 100 lines
      - --providers.docker=true
      - --providers.docker.endpoint=unix:///var/run/docker.sock # Use Docker Socket Proxy instead for improved security
      - --providers.docker.exposedByDefault=false
      - --entrypoints.https.http.tls.options=tls-opts@file
      - --entrypoints.https.http.tls.certresolver=dns-cloudflare
      - --entrypoints.https.http.tls.domains[0].main=$DOMAINNAME1
      - --entrypoints.https.http.tls.domains[0].sans=*.$DOMAINNAME1
      - --providers.docker.network=t2_proxy
      - --providers.file.directory=/rules # Load dynamic configuration from one or more .toml or .yml files in a directory
      - --providers.file.watch=true # Only works on top level files in the rules folder
      - --certificatesResolvers.dns-cloudflare.acme.email=$CLOUDFLARE_EMAIL
      - --certificatesResolvers.dns-cloudflare.acme.storage=/acme.json
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.provider=cloudflare
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.resolvers=1.1.1.1:53,1.0.0.1:53
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.delayBeforeCheck=90 # To delay DNS check and reduce LE hitrate
    ports:
      - target: 80
        published: 80
        protocol: tcp
        mode: host
      - target: 443
        published: 443
        protocol: tcp
        mode: host
    volumes:
      - $DOCKERDIR/appdata/traefik3/rules:/rules # file provider directory
      - /var/run/docker.sock:/var/run/docker.sock:ro # If you use Docker Socket Proxy, comment this line out
      - $DOCKERDIR/appdata/traefik3/acme/acme.json:/acme.json
      - $DOCKERDIR/logs/traefik3:/logs # for fail2ban or crowdsec
      - $DOCKERDIR/shared:/shared
    environment:
      - TZ=$TZ
      - CF_API_EMAIL=$CLOUDFLARE_EMAIL
      - CF_API_KEY=$CLOUDFLARE_API_KEY
      - DOMAINNAME1 # Passing the domain name to the traefik container to be able to use the variable in rules. 
    labels:
      - "traefik.enable=true"
      # HTTP-to-HTTPS Redirect
      - "traefik.http.routers.http-catchall.entrypoints=http"
      - "traefik.http.routers.http-catchall.rule=HostRegexp(`{host:.+}`)"
      - "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
      # HTTP Routers
      - "traefik.http.routers.traefik3-rtr.entrypoints=https"
      - "traefik.http.routers.traefik3-rtr.rule=Host(`traefik.$DOMAINNAME1`)"
      - "traefik.http.routers.traefik3-rtr.tls=true" # Some people had 404s without this
      # "traefik.http.routers.traefik3-rtr.tls.certresolver=dns-cloudflare" # Comment out this line after first run of traefik to force the use of wildcard certs
      - "traefik.http.routers.traefik3-rtr.tls.domains[0].main=$DOMAINNAME1"
      - "traefik.http.routers.traefik3-rtr.tls.domains[0].sans=*.$DOMAINNAME1"
      ## Services - API
      - "traefik.http.routers.traefik3-rtr.service=api@internal"
      ## Middlewares
      - "traefik.http.routers.traefik3-rtr.middlewares=chain-authelia@file"

Acties:
  • 0 Henk 'm!

  • jvwou123
  • Registratie: Maart 2002
  • Laatst online: 07:28
@badkuip alle parameters die je in je docker-compose file meegeeft, kun je in een yaml bestand zetten.
B.v. de eerste 2 items:
code:
1
2
- --global.checkNewVersion=false
- --global.sendAnonymousUsage=true

Wordt dan:
code:
1
2
3
global:
  checkNewVersion: false
  sendAnonymousUsage: true


dus iedereen punt in de parameter naam is een niveau dieper in de yaml

Acties:
  • 0 Henk 'm!

  • badkuip
  • Registratie: December 2002
  • Laatst online: 17:11
@jvwou123 Ok, dat snap ik. Als ik het ook goed begrijp gaat dat ook werken voor variabelen die vastgelegd zijn in een ander .env bestand. Dus dan kan ik op de door jou aangegeven wijze nog steeds gebruik blijven maken van $DOMAINNAME1 of bijvoorbeeld $CLOUDFLARE_EMAIL.

Dat klopt toch? Dan ga ik het binnenkort eens omzetten naar YAML

Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 16:35
badkuip schreef op woensdag 9 april 2025 @ 19:51:
De afgelopen dagen heb ik besteed aan de upgrade van Traefik v2 naar Traefik v3.
In mijn docker compose maak ik gebruik van CLI arguments om de container te starten (deze tutorial)

Dat het met CLI moet zint me eigenlijk niet. Aan de ene kant om dat al het andere in YAML is maar des te meer omdat bij het starten of stoppen van docker de volgende error in de logs komt:
code:
1
2
3
4
5
6
2025-04-09T14:58:40+02:00 ERR error="accept tcp [::]:80: use of closed network connection" entryPointName=http
2025-04-09T14:58:40+02:00 ERR error="close tcp [::]:80: use of closed network connection" entryPointName=http
2025-04-09T14:58:40+02:00 ERR error="accept tcp [::]:8080: use of closed network connection" entryPointName=traefik
2025-04-09T14:58:40+02:00 ERR error="close tcp [::]:8080: use of closed network connection" entryPointName=traefik
2025-04-09T14:58:40+02:00 ERR error="accept tcp [::]:443: use of closed network connection" entryPointName=https
2025-04-09T14:58:40+02:00 ERR error="close tcp [::]:443: use of closed network connection" entryPointName=https

Deze bron zegt dat dat door CLI komt.
Heeft er iemand een suggestie waarmee ik mijn config kan omzetten naar YAML, met behoud van de werking? De reden waarom het in de eerstgenoemde tutorial niet gedaan werd, was omdat er variabelen hard gecodeerd moeten worden. Nu staan ze netjes in een separate .env.
Voor zover ik het begrijp kan je dus met YAML geen aparte .env variabelen gebruiken.
Maar het kan zijn dat ik er geen biet van snap.


YAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
  # Traefik 3 - Reverse Proxy
  traefik3:
    <<: *common-keys-core # See EXTENSION FIELDS at the top
    container_name: traefik3
    image: traefik:v3.3
    command: # CLI arguments
      - --global.checkNewVersion=false
      - --global.sendAnonymousUsage=true
      - --entryPoints.http.address=:80
      - --entryPoints.https.address=:443
      # Allow these IPs to set the X-Forwarded-* headers - Cloudflare IPs: https://www.cloudflare.com/ips/
      - --entrypoints.https.forwardedHeaders.trustedIPs=$CLOUDFLARE_IPS,$LOCAL_IPS
      - --entryPoints.traefik.address=:8080
      - --api=true
      - --api.dashboard=true
      - --log=true
      - --log.filePath=/logs/traefik3.log
      - --log.level=ERROR # (Default: error) DEBUG, INFO, WARN, ERROR, FATAL, PANIC
      - --accessLog=true
      - --accessLog.filePath=/logs/access3.log
      - --accessLog.bufferingSize=100 # Configuring a buffer of 100 lines
      - --providers.docker=true
      - --providers.docker.endpoint=unix:///var/run/docker.sock # Use Docker Socket Proxy instead for improved security
      - --providers.docker.exposedByDefault=false
      - --entrypoints.https.http.tls.options=tls-opts@file
      - --entrypoints.https.http.tls.certresolver=dns-cloudflare
      - --entrypoints.https.http.tls.domains[0].main=$DOMAINNAME1
      - --entrypoints.https.http.tls.domains[0].sans=*.$DOMAINNAME1
      - --providers.docker.network=t2_proxy
      - --providers.file.directory=/rules # Load dynamic configuration from one or more .toml or .yml files in a directory
      - --providers.file.watch=true # Only works on top level files in the rules folder
      - --certificatesResolvers.dns-cloudflare.acme.email=$CLOUDFLARE_EMAIL
      - --certificatesResolvers.dns-cloudflare.acme.storage=/acme.json
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.provider=cloudflare
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.resolvers=1.1.1.1:53,1.0.0.1:53
      - --certificatesResolvers.dns-cloudflare.acme.dnsChallenge.delayBeforeCheck=90 # To delay DNS check and reduce LE hitrate
    ports:
      - target: 80
        published: 80
        protocol: tcp
        mode: host
      - target: 443
        published: 443
        protocol: tcp
        mode: host
    volumes:
      - $DOCKERDIR/appdata/traefik3/rules:/rules # file provider directory
      - /var/run/docker.sock:/var/run/docker.sock:ro # If you use Docker Socket Proxy, comment this line out
      - $DOCKERDIR/appdata/traefik3/acme/acme.json:/acme.json
      - $DOCKERDIR/logs/traefik3:/logs # for fail2ban or crowdsec
      - $DOCKERDIR/shared:/shared
    environment:
      - TZ=$TZ
      - CF_API_EMAIL=$CLOUDFLARE_EMAIL
      - CF_API_KEY=$CLOUDFLARE_API_KEY
      - DOMAINNAME1 # Passing the domain name to the traefik container to be able to use the variable in rules. 
    labels:
      - "traefik.enable=true"
      # HTTP-to-HTTPS Redirect
      - "traefik.http.routers.http-catchall.entrypoints=http"
      - "traefik.http.routers.http-catchall.rule=HostRegexp(`{host:.+}`)"
      - "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
      - "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
      # HTTP Routers
      - "traefik.http.routers.traefik3-rtr.entrypoints=https"
      - "traefik.http.routers.traefik3-rtr.rule=Host(`traefik.$DOMAINNAME1`)"
      - "traefik.http.routers.traefik3-rtr.tls=true" # Some people had 404s without this
      # "traefik.http.routers.traefik3-rtr.tls.certresolver=dns-cloudflare" # Comment out this line after first run of traefik to force the use of wildcard certs
      - "traefik.http.routers.traefik3-rtr.tls.domains[0].main=$DOMAINNAME1"
      - "traefik.http.routers.traefik3-rtr.tls.domains[0].sans=*.$DOMAINNAME1"
      ## Services - API
      - "traefik.http.routers.traefik3-rtr.service=api@internal"
      ## Middlewares
      - "traefik.http.routers.traefik3-rtr.middlewares=chain-authelia@file"
Ik gebruik Traefik met een YAML config en krijg dezelfde "error" bij het stoppen van de container. Daarnaast staat dit ook vermeld in de thread waar je zelf naar linkt. Ik zou dus vooral niet gaan omschrijven naar YAML om deze "error" te fixen, want je hebt geen enkele indicatie, laat staan garantie, dat het dan is opgelost.

Acties:
  • 0 Henk 'm!

  • jvwou123
  • Registratie: Maart 2002
  • Laatst online: 07:28
badkuip schreef op woensdag 9 april 2025 @ 20:36:
@jvwou123 Ok, dat snap ik. Als ik het ook goed begrijp gaat dat ook werken voor variabelen die vastgelegd zijn in een ander .env bestand. Dus dan kan ik op de door jou aangegeven wijze nog steeds gebruik blijven maken van $DOMAINNAME1 of bijvoorbeeld $CLOUDFLARE_EMAIL.

Dat klopt toch? Dan ga ik het binnenkort eens omzetten naar YAML
Ow, dan heb ik je vraag verkeerd begrepen. In de yaml kun je volgens mij idd geen variablen kwijt. Je kunt wel variable gebruiken ipv yaml regels: https://doc.traefik.io/tr...static-configuration/env/

Acties:
  • 0 Henk 'm!

  • badkuip
  • Registratie: December 2002
  • Laatst online: 17:11
jvwou123 schreef op woensdag 9 april 2025 @ 21:17:
[...]


Ow, dan heb ik je vraag verkeerd begrepen. In de yaml kun je volgens mij idd geen variablen kwijt. Je kunt wel variable gebruiken ipv yaml regels: https://doc.traefik.io/tr...static-configuration/env/
Sorry voor de late reactie. Ik laat het dan maar zo. De inspanning om het om te bouwen weegt niet af tegen de moeite die ik erin moet steken.

Een andere vraag over treafik, en dan de logs. De logs zijn er wel maar er wordt geen output gestuurd naar docker logs.

Inhoud /home/user/docker/logs/traefik/treafik.log
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2025-04-17T10:08:53+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:08:53+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.5:8080
2025-04-17T10:08:53+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:08:53+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.5:8080
2025-04-17T10:08:54+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:08:54+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.5:8080
2025-04-17T10:09:01+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:03+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:45 > Request has been aborted [141.101.76.104:48402 - /api/hosts/c4a28df9-9cf5-41e5-a663-ca7b10fc1e38/containers/421e0f707a0d/logs/stream?stdout=1&stderr=1&levels=info&levels=debug&levels=warn&levels=error&levels=fatal&levels=trace&levels=unknown]: net/http: abort Handler middlewareName=traefik-internal-recovery middlewareType=Recovery
2025-04-17T10:09:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:32+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:41+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:42+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:50+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:09:50+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:10:01+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:10:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:10:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:10:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:10:50+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:10:50+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:11:01+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:11:04+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:11:04+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.5:8080
2025-04-17T10:11:14+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:45 > Request has been aborted [141.101.76.104:48396 - /api/hosts/c4a28df9-9cf5-41e5-a663-ca7b10fc1e38/containers/8457a480dbf4/logs/stream?stdout=1&stderr=1&levels=info&levels=debug&levels=warn&levels=error&levels=fatal&levels=trace&levels=unknown]: net/http: abort Handler middlewareName=traefik-internal-recovery middlewareType=Recovery
2025-04-17T10:11:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:11:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:11:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80


Docker logs (middels Dozzle, maart ook portainer is leeg).
Afbeeldingslocatie: https://tweakers.net/i/jn1_ALkPhgyY5V4XCoy47zLh_0I=/800x/filters:strip_icc():strip_exif()/f/image/Hdo0fKTnK9AchDOCIvDVIJ3k.jpg?f=fotoalbum_large

Het zou me fijn lijken om de logoutput in docker logs te laten lopen. Maakt het raadplegen van de logs makkelijker (dus niet meer een 'cat' of 'tail' te hoeven op de prompt of te hoeven raadplegen in vs code.

Al mijn andere containers loggen nu al netjes naar docker logs zonder enige extra config van mijn hand.
Als ik het goed begrijp moet ik voor de traefik container een log driver configureren en dan zou het werken.

Hoe langer ik erover nadenk, hoe meer ik mezelf afvraag of het eigenlijk wel verstandig is.
Misschien hebben de makers van traefik een hele goede reden om niet default de logs te outputten naar docker logs.

Iemand een idee, mening, of ervaring hierover/hiermee?

Acties:
  • 0 Henk 'm!

  • oohh
  • Registratie: Oktober 2009
  • Laatst online: 16:11
badkuip schreef op donderdag 17 april 2025 @ 10:26:
[...]


Sorry voor de late reactie. Ik laat het dan maar zo. De inspanning om het om te bouwen weegt niet af tegen de moeite die ik erin moet steken.

Een andere vraag over treafik, en dan de logs. De logs zijn er wel maar er wordt geen output gestuurd naar docker logs.

Inhoud /home/user/docker/logs/traefik/treafik.log
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2025-04-17T10:08:53+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:08:53+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.5:8080
2025-04-17T10:08:53+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:08:53+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.5:8080
2025-04-17T10:08:54+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:08:54+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.5:8080
2025-04-17T10:09:01+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:03+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:45 > Request has been aborted [141.101.76.104:48402 - /api/hosts/c4a28df9-9cf5-41e5-a663-ca7b10fc1e38/containers/421e0f707a0d/logs/stream?stdout=1&stderr=1&levels=info&levels=debug&levels=warn&levels=error&levels=fatal&levels=trace&levels=unknown]: net/http: abort Handler middlewareName=traefik-internal-recovery middlewareType=Recovery
2025-04-17T10:09:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:32+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:41+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:42+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:09:50+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:09:50+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:10:01+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:10:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:10:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:10:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:10:50+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:10:50+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:11:01+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:11:04+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/compress/compress.go:143 > Unable to parse MIME type error="mime: no media type" middlewareName=middlewares-compress@file middlewareType=Compress
2025-04-17T10:11:04+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.5:8080
2025-04-17T10:11:14+02:00 DBG github.com/traefik/traefik/v3/pkg/middlewares/recovery/recovery.go:45 > Request has been aborted [141.101.76.104:48396 - /api/hosts/c4a28df9-9cf5-41e5-a663-ca7b10fc1e38/containers/8457a480dbf4/logs/stream?stdout=1&stderr=1&levels=info&levels=debug&levels=warn&levels=error&levels=fatal&levels=trace&levels=unknown]: net/http: abort Handler middlewareName=traefik-internal-recovery middlewareType=Recovery
2025-04-17T10:11:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:11:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80
2025-04-17T10:11:31+02:00 DBG github.com/traefik/traefik/v3/pkg/server/service/loadbalancer/wrr/wrr.go:213 > Service selected by WRR: http://192.168.34.6:80


Docker logs (middels Dozzle, maart ook portainer is leeg).
[Afbeelding]

Het zou me fijn lijken om de logoutput in docker logs te laten lopen. Maakt het raadplegen van de logs makkelijker (dus niet meer een 'cat' of 'tail' te hoeven op de prompt of te hoeven raadplegen in vs code.

Al mijn andere containers loggen nu al netjes naar docker logs zonder enige extra config van mijn hand.
Als ik het goed begrijp moet ik voor de traefik container een log driver configureren en dan zou het werken.

Hoe langer ik erover nadenk, hoe meer ik mezelf afvraag of het eigenlijk wel verstandig is.
Misschien hebben de makers van traefik een hele goede reden om niet default de logs te outputten naar docker logs.

Iemand een idee, mening, of ervaring hierover/hiermee?
Hier komt het gewoon in de console binnen, met de laatste versie van Traefik en de volgende config. Ik gebruik wel podman ipv docker maar dat zou niet veel uit moeten maken.
code:
1
--log.level=DEBUG
Pagina: 1 2 3 4 Laatste