Finally!!! A tutorial that shows how to actually setup Traefik instead of just copy/pasting 30 pages of Docker Compose scripts and then saying "tada it now works". I spent hours trying to figure out just how to make a simple reverse proxy until I found your video that actually works and doesn't give me 40,000 lines of crap I don't need. My only suggestion would be if you make a mistake it's fine to leave it in, but for those following along some type of caption to say you fixed it later would help. I got stuck on the router name being duplicated and was wondering why the hell I couldn't get it working when my config matched yours exactly only to realise you went back and fixed it a bit later on.
I have been trying to get my head around how to setup and use Traefik. This tutorial has helped me more than any other I have tried to follow. Thank you for the excellent tutorial and I look forward to viewing more of your work. Keep up the good job!
There are a lot of people posting complicated, copy paste, with strange assumptions, you do it the right way Hussein. The fundamentals are core important, as you say the most important detail "understand"! thank you so very much I enjoy every note you shared, excellent, and I am definitely looking forward to continue learning from your excellent explanation.
Great video! I was able to get up and running pretty quickly with traefik thanks to this video. You made a wonderful job right there. I love your mindset. Keep up the good work. Cheers!
Thank you! One of the best tutorials I have see on Traefik. I particularly apprecaite the fact that you did it without Docker and didnt just cut and paste some YAMl file.
Finally the long-awaited Traefik video. Thanks, Mr. Hussein. Great like always. Thank you also for taking the time to learn and share your knowledge with us.
Great tutorial! I also think traefik is overly complicated, but you have managed somehow to explain it in a manner I could understand the whole concept. Also, good choice of explaining this using a file as the provider. It made things easier to understand. Thank you!
This tutorial is the only one I have found explaining Traefik without the use of docker and docker-compose.yml which is widely used almost anywhere else. So many thanks Hussein ! As yourself, I am working on my homelab environnement under macOS and there are so many restrictions compared to Linux systems that I am still struggling with very basics configurations. For example, at start, I tried to use Traefik with Docker Desktop. Then I realized that on non-Linux systems, it is impossible to share the same network as the local machine for docker services. Therefore, it is impossible to get real client IPs. Then, I toggled to the standalone version of Traefik (easy homebrew on macOS!) wich makes it possible. But I encountered a new problem with Let's Encrypt certificates behind Cloudflare which needs to pass environnement API key to authenticate certificate generation. At this point, I found no informations either on Traefik documentation or on forums to declare those API keys trough static or dynamic configuration files (the other only uses docker-compose.yml to declare those keys). For the time being, I use previously manually generated certificates from Let' Encrypt stored on my local machine but I fell very frustrated to miss the use of the automatic service provided by Traefik. Would you have a solution for this problem ?
thanks for the demo and info. I have setup traefik 2.6 with a cloudflare ARGO. The journey took several hours, but I guess its done. I learned some insight into your demo. Thanks, and have a great day
Great explanation. Traefik is overwhelming but once you get over the basics, everything flows naturally. I think explicit is better, so i appreciate Rule being mandatory field
Great guide as always, nothing is boring with your enthusiasm :) Also, when it comes to copy pasting tab-formatted text into tab aware IDEs, you can usually select the text and Shift + Tab to remove the indentations, should also work in Visual Studio Code
This is Godsend too many tuts for Traefik is just copy this paste that and I get that this has the potential of automating stuff with certain services, but I never felt it was explained well and the labels thing that gets injected into Docker Compose files only adds to the confusion for me. Thanks for the stripped back approach to how to use this project.
Thanks for your huge effort on this; the pain you go through was most instructive. I was writing a much bigger comment, but TH-cam lost it when it moved onto the next video 😒, so I'll just say that: - Traefik is less like a traditional load-balencer or a reverse-proxy, but is instead designed as an ingress-controller; this is particularly evident in the documention around middlewares - Traefik is easier to type if you pronounce it "tray-fik" - and if you really don't like YAML, Traefik also support TOML I love your videos; they make it much easier to try and stay up-to-date (I had no idea there even was such as a thing as HTTP/3 until I found your channel). Thanks!
Great tutorial! Yaml processing is not done by traefik itself, but yaml processing library, so error logging is done by it. These problems (duplicate keys) are usually caught by vscode these days.
great video!, I was expecting something more related to k8s (architecture) and how it works how connections are made traffic flow and those kind of stuff, but is good for basic understanding of traefik anyway :), Thanks!
Wow!! kudos to u Hussein, after so long able to learn about Traefik in such a simple way, Keep up the good work !!! Also, can you also share how and where to learn YAML from ?
I'm a little too late to this show, but you can block access with a ton of middlewares traefik is capable of. You need to tell your service to make use of it. For example "Errors" or IpWhitelist. Middlewares are capable of redirect http to https aswell.
Thanks. Nice for once to see someone presenting something while still retaining some critical sense. This is, IMHO, definitely not production ready. (And I *really* hate this megatrend, in general, away from strict behavior towards "best effort" and guesses and all the rest of the script-kiddie approach..!)
I think some configuration and abstractions in Traefik don't make sense in a normal environment because Traefik was designed for containerized environments (swarm, k8s, ecs,....etc) where backends are always-changing containers and that's why you struggled to make it work with TCP because it's not meant to be used like that
Hi Hossein, Thanks so much for your useful researches. Just as a suggestion, How do you think about adding some very simple benchmarks to some of your demos? For example, comparing your demos using these different Edge proxies for Request Per Second, Latency, and Error Ratio, using tools like *wrk*? I know benchmarks are not an absolute thing, but they can give viewers some hints in terms of performance.
I am curious about how all the letsencrypt stuff is automatic. It was to be renewed every 3 months. Is that automatic too? I assume you have to have letsencrypt already installed and run the update script?
besides autorenewing letsencrypt, traefik shines most in k8s environments which can me highly dynamic. i don't even want to start thinking about configuring nginx with 20+ services that go up and down and change ip and port constantly. you would need to have some script talking to the k8s api and grab the nodes and whatnot... traefik does that magic with a few lines of yaml.. and just like k8s lets you forget about the plumbing behind the scenes.
Thanks Hussein , I start knowing a lot of LB softwares not just nginx , all these knowledges because you! Thank you! By the way does Traefik and Caddy support automatic renew SSL?
There's lots of things you didn't cover in the default configuration (debug, dashboard,...) Then there's no need to cover the round robin manually when you use labels, you must read the doc carefully.
God bless you, but not for posting a nice tutorial from scratch, that's nice, but I'm happy about you sharing your opinions on garbage. As everything Google related or inspired, the documentation is lacky, confusing, incomplete and misleading, but still it gets popular. Another nasty thing is how they leak implementation details about their underlying language. Why can't you use single quotes like in any other place? Because GO uses that for single characters. Wtf? I don't care about your programming language syntax! do your homework! And the default behavior without no config is to yield no error and start a useless process? What a pile of garbage.
Finally!!! A tutorial that shows how to actually setup Traefik instead of just copy/pasting 30 pages of Docker Compose scripts and then saying "tada it now works". I spent hours trying to figure out just how to make a simple reverse proxy until I found your video that actually works and doesn't give me 40,000 lines of crap I don't need. My only suggestion would be if you make a mistake it's fine to leave it in, but for those following along some type of caption to say you fixed it later would help. I got stuck on the router name being duplicated and was wondering why the hell I couldn't get it working when my config matched yours exactly only to realise you went back and fixed it a bit later on.
I have been trying to get my head around how to setup and use Traefik. This tutorial has helped me more than any other I have tried to follow. Thank you for the excellent tutorial and I look forward to viewing more of your work. Keep up the good job!
There are a lot of people posting complicated, copy paste, with strange assumptions, you do it the right way Hussein. The fundamentals are core important, as you say the most important detail "understand"! thank you so very much I enjoy every note you shared, excellent, and I am definitely looking forward to continue learning from your excellent explanation.
Great video! I was able to get up and running pretty quickly with traefik thanks to this video. You made a wonderful job right there. I love your mindset. Keep up the good work. Cheers!
Thank you! One of the best tutorials I have see on Traefik. I particularly apprecaite the fact that you did it without Docker and didnt just cut and paste some YAMl file.
Finally the long-awaited Traefik video. Thanks, Mr. Hussein. Great like always. Thank you also for taking the time to learn and share your knowledge with us.
Thanks Eddy!
Great tutorial! I also think traefik is overly complicated, but you have managed somehow to explain it in a manner I could understand the whole concept. Also, good choice of explaining this using a file as the provider. It made things easier to understand. Thank you!
i like your enthusiasm when making this type of video thank you a loooooooot
This tutorial is the only one I have found explaining Traefik without the use of docker and docker-compose.yml which is widely used almost anywhere else. So many thanks Hussein !
As yourself, I am working on my homelab environnement under macOS and there are so many restrictions compared to Linux systems that I am still struggling with very basics configurations.
For example, at start, I tried to use Traefik with Docker Desktop. Then I realized that on non-Linux systems, it is impossible to share the same network as the local machine for docker services. Therefore, it is impossible to get real client IPs. Then, I toggled to the standalone version of Traefik (easy homebrew on macOS!) wich makes it possible.
But I encountered a new problem with Let's Encrypt certificates behind Cloudflare which needs to pass environnement API key to authenticate certificate generation. At this point, I found no informations either on Traefik documentation or on forums to declare those API keys trough static or dynamic configuration files (the other only uses docker-compose.yml to declare those keys).
For the time being, I use previously manually generated certificates from Let' Encrypt stored on my local machine but I fell very frustrated to miss the use of the automatic service provided by Traefik.
Would you have a solution for this problem ?
thanks for the demo and info. I have setup traefik 2.6 with a cloudflare ARGO. The journey took several hours, but I guess its done. I learned some insight into your demo. Thanks, and have a great day
Great explanation. Traefik is overwhelming but once you get over the basics, everything flows naturally. I think explicit is better, so i appreciate Rule being mandatory field
Great guide as always, nothing is boring with your enthusiasm :)
Also, when it comes to copy pasting tab-formatted text into tab aware IDEs, you can usually select the text and Shift + Tab to remove the indentations, should also work in Visual Studio Code
Mind blown 🤯 nice tip thank you 🙏😍
@@hnasr you actually do it at 29:22 ;)
This is Godsend too many tuts for Traefik is just copy this paste that and I get that this has the potential of automating stuff with certain services, but I never felt it was explained well and the labels thing that gets injected into Docker Compose files only adds to the confusion for me. Thanks for the stripped back approach to how to use this project.
Much relief bro, you simply did very good. The video that traefik docs team should really watch.
Great course!.
I was able to understand a lot of things that I didn't know how it worked.
Thanks for your huge effort on this; the pain you go through was most instructive. I was writing a much bigger comment, but TH-cam lost it when it moved onto the next video 😒, so I'll just say that:
- Traefik is less like a traditional load-balencer or a reverse-proxy, but is instead designed as an ingress-controller; this is particularly evident in the documention around middlewares
- Traefik is easier to type if you pronounce it "tray-fik"
- and if you really don't like YAML, Traefik also support TOML
I love your videos; they make it much easier to try and stay up-to-date (I had no idea there even was such as a thing as HTTP/3 until I found your channel). Thanks!
Hussein, first thing to do when playing with new software is enable maximum logging (in traefik --log.level=DEBUG) ;)
Thank you soooo much! I was a little bit frustrated with the traefik docs.
That's great, u finally created a crash course on this awesome tool. Thanks alot
Love your content bro. Very appreciated
Great tutorial! Yaml processing is not done by traefik itself, but yaml processing library, so error logging is done by it. These problems (duplicate keys) are usually caught by vscode these days.
We use traefik with docker. The docker label make it so easy to upgrade, no nginx dns problem any more.
great video!, I was expecting something more related to k8s (architecture) and how it works how connections are made traffic flow and those kind of stuff, but is good for basic understanding of traefik anyway :), Thanks!
Haha epic. Possibly my best channel to watch. Thank you
30:40 yell at me guys
Exactly... :D
The question is, how did you manage to learn all this stuff before this video? I am struggling hard time...
"how it's production ready" i'm dead xD
Wow!! kudos to u Hussein, after so long able to learn about Traefik in such a simple way, Keep up the good work !!! Also, can you also share how and where to learn YAML from ?
Vi diversos vídeos sobre traefik esse foi o mais didático.
I'm a little too late to this show, but you can block access with a ton of middlewares traefik is capable of. You need to tell your service to make use of it. For example "Errors" or IpWhitelist.
Middlewares are capable of redirect http to https aswell.
Can you give me a way how to block a certain path, cuz i tried to follow you (32:00) but this way is deprecated
Thanks. Nice for once to see someone presenting something while still retaining some critical sense. This is, IMHO, definitely not production ready. (And I *really* hate this megatrend, in general, away from strict behavior towards "best effort" and guesses and all the rest of the script-kiddie approach..!)
you know what...
you are amazing instructor...
thx a lot.. it's so useful...
Glad it was helpful! thanks!
@@hnasr what if add docker-compose version configuration...wow..amazing dude...cool man...thx a lot.
You helped me a lot man, Thank you.
Hi Hussein , i have a question regarding noip setup. Do we need to setup ddns in our router for the hostname from noip
This channel is a true gem
Is there any package for installing traefik on ubuntu? Or do I need to build traefik from source to use it on ubuntu?
Loved every second of the video..
Thank you... I start learn traefik
A crash course when you jump into traefik! Nice puns.
Great video, thanks for sharing :)
Thanks Ghassen
I think some configuration and abstractions in Traefik don't make sense in a normal environment because Traefik was designed for containerized environments (swarm, k8s, ecs,....etc) where backends are always-changing containers and that's why you struggled to make it work with TCP because it's not meant to be used like that
2 years later, do you now understand traefik with docker and will you make a crash course & tutorial about that?
Envoy proxy?
Роман Воловик yes that’s probably next
Linkerd maybe?
@@vim55k no, envoy exactly
Hi Hossein, Thanks so much for your useful researches.
Just as a suggestion, How do you think about adding some very simple benchmarks to some of your demos? For example, comparing your demos using these different Edge proxies for Request Per Second, Latency, and Error Ratio, using tools like *wrk*? I know benchmarks are not an absolute thing, but they can give viewers some hints in terms of performance.
Nice idea! Thanks Mahdi
These guy is Amazing!
I am curious about how all the letsencrypt stuff is automatic. It was to be renewed every 3 months. Is that automatic too? I assume you have to have letsencrypt already installed and run the update script?
Oh acme, now I get it.
@@colinm3130 midn explaining it
Good videos as always brother
49:22 The same name for routers. That is why HTTPS is resolved and HTTP is not resolved.
52:40 You have asked why HTTP doesn't work and found the answer. Ignore my comment, it doesn't make sense when I watched full video :-)
when will you do a tut on docker... I like it when you teach
Ismail Yushaw I might do a full tutorial on it. i have a playlist using docker
Docker
th-cam.com/play/PLQnljOFTspQWsD-rakNw1C20c1JI8UR1r.html
Is it just me or does all the gripes in this video actually point to advantages? I think Traefik is amazing.
Dan I have no doubt, A lot of people like traefik (see comments) so it actually might be just me 😅
besides autorenewing letsencrypt, traefik shines most in k8s environments which can me highly dynamic. i don't even want to start thinking about configuring nginx with 20+ services that go up and down and change ip and port constantly. you would need to have some script talking to the k8s api and grab the nodes and whatnot... traefik does that magic with a few lines of yaml.. and just like k8s lets you forget about the plumbing behind the scenes.
Any chance for traefik in docker?
does it support something like DNS
What do you mean by that?
Assumin I have 4 Authoritative DNS servers... Thats what I mean... use Traefik to load balance them
Thanks Hussein , I start knowing a lot of LB softwares not just nginx , all these knowledges because you! Thank you! By the way does Traefik and Caddy support automatic renew SSL?
J James thank you very happy I could help 🙏 and yes both Caddy and Traefik support that
thank you, i lov you
traefik on kubernetes as ingress controller video please :)
do u have patreon? please take my money
Can you please work on making the sound louder in the next episodes?
12:33 I have the same problem as you, it's a curse actually :-(
i did as he suggested and just jumped into traffic, did not end well
Thanks 😊
There's lots of things you didn't cover in the default configuration (debug, dashboard,...) Then there's no need to cover the round robin manually when you use labels, you must read the doc carefully.
8:30 Fuck I am toast if I don't figure this out
Nice one.
God bless you, but not for posting a nice tutorial from scratch, that's nice, but I'm happy about you sharing your opinions on garbage. As everything Google related or inspired, the documentation is lacky, confusing, incomplete and misleading, but still it gets popular. Another nasty thing is how they leak implementation details about their underlying language. Why can't you use single quotes like in any other place? Because GO uses that for single characters. Wtf? I don't care about your programming language syntax! do your homework! And the default behavior without no config is to yield no error and start a useless process? What a pile of garbage.
i'm already not using Traffic...err Traefic....Traefik.
13:12 I HATE YAML I am not alone
Yes their doc is so bad starting out- it skips a bunch of critical steps
"not" is not supported 😆🤣😂😁