Geen idee hoe dat ontstaan islolgast 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")
@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.
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.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.
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
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 ]
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:
Er gaat hier iets mis. Nu mijn router toegevoegd en het werkt
[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 ]
[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
@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.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
He who laughs last thinks slowest! | Drone video’s: Youtube | TechJunky.nl | 3000Wp Zonnepanelen
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:
Ik hoef dan trouwens alleen cptchaos.nl en *.cptchaos.nl in het certificaat te hebben.
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:
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.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" |
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 ]
Misschien best even je mailadres weghalenCH4OS schreef op woensdag 8 februari 2023 @ 23:32:
De config die ik heb is als volgt:
Heb je de relevante containers ook gelabeled voor Traefik?
[ Voor 13% gewijzigd door Slonzo op 08-02-2023 23:52 ]
Scherp, dank!
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.Heb je de relevante containers ook gelabeled voor Traefik?
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 ]
@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.lolgast schreef op donderdag 9 februari 2023 @ 06:45:
@CH4OS Heb je de acme.json file de juiste rechten (600) gegeven?
Als hij niet bestaat maakt hij hem zelf omdat hij moet bestaan, maar je moet echt zelf de rechten regelen.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.
https://doc.traefik.io/tr...iguration/acme/#as-a-file
[ Voor 8% gewijzigd door lolgast op 09-02-2023 07:47 ]
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.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
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?
Probeer eens te downgraden naar traefik 2.5?
Ok, dan ga ik het anders proberen: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.
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.lolgast schreef op donderdag 9 februari 2023 @ 08:18:
[...]
Ok, dan ga ik het anders proberen:
Wat zegt je log van Traefik?
Really? Wat heb je bij TransIP staan dan? Zowel domein als nameservers ed?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?
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 die twee domeinen ook opgenomen in mijn labels van de traefik container: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: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.
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"
Ik hoef dan trouwens alleen cptchaos.nl en *.cptchaos.nl in het certificaat te hebben.
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
Ik heb idd domeinen, en de DNS bij TransIP.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 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.
Ik heb in de log gekeken, daarin zie ik onder andere dit soort meldingen voorbij komen, bij een eerdere poging althans:lolgast schreef op donderdag 9 februari 2023 @ 08:18:
[...]
Ok, dan ga ik het anders proberen:
Wat zegt je log van Traefik?
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:
En met de berichten hierboven, is het wellicht verstandiger om eea anders aan te pakken mbt deze certificaten.
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 |
[ Voor 29% gewijzigd door CH4OS op 09-02-2023 22:06 ]
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.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
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.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?
[ Voor 21% gewijzigd door CH4OS op 09-02-2023 22:51 ]
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/9680jvwou123 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.
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!
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?
Zou iemand zijn werkende config helemaal willen delen?
Dit is Tweakers. Wij doen niet aan werkende oplossingen aanbiedenzAo 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?
Als je nu je eigen config deelt kunnen anderen je waarschijnlijk wel een zetje in de juiste richting geven.
Haha, touchéRobertMe schreef op zondag 19 maart 2023 @ 09:09:
[...]
Dit is Tweakers. Wij doen niet aan werkende oplossingen aanbieden
Als je nu je eigen config deelt kunnen anderen je waarschijnlijk wel een zetje in de juiste richting geven.
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\")" |
@zAo En als je bij TransIP inlogt en bij de DNS settings dat TXT-record verwijderd? Lijkt me stap 1
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.
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?
Na het een nacht te laten gaan, de boel te herstarten (voor de 10e keer

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 |
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.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?
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 gedachtRobertMe 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?

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
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.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.
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.
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.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
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.
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:
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.
Dat 172.27.0.3 adres, is het adres van de navidrome container, welke samen met traefik in een docker netwerk zit.
Duwtje?
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?
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.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

Al working now. Dank voor het meedenken!
Ik heb sinds een paar dagen precies hetzelfde probleem. Hoe heb jij het precies opgelost / issue gevonden?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.![]()
Al working now. Dank voor het meedenken!
Ik draai een Blocky container die mijn domein resolved naar mijn lokale ips.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 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).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"
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.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).
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" |
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.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
EDIT:
Whups, ik zie nu pas dat dit een 2 maanden oude post is, mea culpa!
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 hadCH4OS 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.
Zet de middlewares config eens onder de route waar die bij hoort i.p.v. een nieuwe route makenJBS 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"
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.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
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 ]
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?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
[ Voor 7% gewijzigd door JBS op 22-05-2023 16:15 ]
* 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.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.
Dit dus: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?
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 gebruikte er Docker secrets voor.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 heb de users als string bij de docker labels: (ik gebruik dus geen toml, maar docker labels)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"
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 voorjvwou123 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?
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?
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.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?
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
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.
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(`{{ 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:
Gevonden op de community van Traefik. 1
| --providers.docker.defaultRule=Host(`{{ index .Labels "com.docker.compose.service" }}.mijndomein.nl`) |
[ Voor 25% gewijzigd door CH4OS op 18-11-2023 19:24 ]
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
).
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!
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...
Ik denk dat ik er verder wel uit ga komen zo. Dank u allen voor het meedenken
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!

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.

Ik denk dat ik er verder wel uit ga komen zo. Dank u allen voor het meedenken
[ 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)
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.
Hoop er dit weekend wat meer containers achter te zetten en probeer me dan meer te verdiepen in de middleware mogelijkheden.
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/
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
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?
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 ]
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).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?
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.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).
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?
Ja, werkt gewoon zonder problemen hier.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?
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
Goed te lezen dat 't gewoon zou moeten werken.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
Op basis van welke docs heb jij je Traefik 3 omgeving opgezet? Wat je post, wijkt namelijk behoorlijk af van mijn traefik.yaml structuur.
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
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
@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 ]
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.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.
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.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.
Traefik 3 was daarom geen upgrade voor mij, maar ook een schone installatie.
[ Voor 8% gewijzigd door JBS op 15-02-2025 22:34 ]
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.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.
Heb ervoor gekozen om opnieuw te beginnen, en deze gevolgd https://www.simplehomelab...ocker-compose-guide-2024/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.
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
Ik gebruik het ook voor iets meer dan alleen HA
Sometimes you need to plan for coincidence
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
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 |
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
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
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.
Dat helpt nu laden de pagina's goed, snap alleen niet dat het via de docker labels dan wel goed gaat.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
Daar worden geen middleware regels toegepast zag ik wel dus dat zal het wel zijn.
Klinkt valide.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.
Sometimes you need to plan for coincidence
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.
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.
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:
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.
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" |
@badkuip alle parameters die je in je docker-compose file meegeeft, kun je in een yaml bestand zetten.
B.v. de eerste 2 items:
Wordt dan:
dus iedereen punt in de parameter naam is een niveau dieper in de yaml
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
@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
Dat klopt toch? Dan ga ik het binnenkort eens omzetten naar YAML
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.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"
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/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
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.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/
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).
: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?
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.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?
code:
1
| --log.level=DEBUG |