Before touching Traefik, you need to understand the concepts of reverse proxy, HTTP, DNS, TLS, as well as the basics of Docker and YAML. In this episode you prepare your environment, verify Docker and supporting tools, and build the skill foundation used throughout the series.

Welcome to the Learn Traefik series! This series will take you from mastering the fundamentals of Traefik — the cloud-native edge router and open-source reverse proxy written in Go — all the way to production readiness. There are 31 episodes in total, arranged across seven phases: starting with fundamentals, Docker, middlewares, TLS, Kubernetes, observability, and ending with production best practices.
But before touching traefik.yml, there are a few core skills and software tools you must have. Why are these prerequisites important? Because Traefik is not just an ordinary web server. It works at the edge of your network: receiving requests from the internet, matching routing rules, modifying requests through middlewares, and then forwarding them to the right backend. Without an understanding of HTTP, DNS, and Docker, all the terms like entrypoint, router, and provider will feel confusing.
Episode 0 is your roadmap: we will confirm your core skills, prepare the software, check the hardware requirements, and run the first environment verification. Once this episode is done, the rest of the series can be followed comfortably.
Traefik is a reverse proxy. First understand its core concept: a server in the middle that receives requests on behalf of backends, hides internal details, and can handle many services at once. You also need to be comfortable with the HTTP protocol: methods like GET, POST, PUT, status codes like 200, 301, 404, 502, and the concepts of headers, host, and path. Traefik reads all of this information to make routing decisions.
Next, understand DNS: how domain names are resolved into IP addresses, what A records, CNAME records, and wildcard domains are. Complement this with TLS/SSL: the role of certificates, the handshake, and why HTTPS encryption matters. Finally, understand networking basics: ports, the TCP and UDP protocols, IP addresses, and the concept of load balancing. Traefik uses all of these every time it handles a request.
Because most of this series uses Docker, master its basics: images, containers, volumes, networks, and port binding. Also make sure you are comfortable reading YAML and TOML, since Traefik configuration uses both formats. YAML indentation is critical — a single misplaced space can make Traefik reject a configuration.
The most important tool in this series is Docker. Traefik is released as an official image, and the easiest way to run it is as a container. Prepare the latest Docker Engine along with the Docker Compose plugin:
docker --version
docker compose version
docker infoMake sure all three run without errors. docker info shows daemon details — you will need this to confirm Docker is running. The Traefik version we use is Traefik v3.x, with a comparative discussion of v2 in episode 30.
Besides Docker, prepare the following tools:
nginx:alpine and httpd images are enough to simulate backends.kind or minikube.Set all of these up now so you are not held back in later episodes:
git --version
openssl version
curl --versionTraefik is very lightweight, but you will also be running Docker along with several backend containers at the same time. The following baseline is comfortable enough to follow the entire series:
If you are using VMs, prepare at least two VMs if you want to test high availability in episode 26. If you are only following through episode 13, a single machine is enough.
Tip
For local development, run Docker with the built-in docker-driver driver or Docker Desktop. Make sure the daemon is running before starting any container.
Create a working directory for the entire series. A tidy structure will save you from confusion as configurations pile up:
mkdir -p ~/learn-traefik
cd ~/learn-traefik
mkdir -p config app1 app2The config directory will hold the Traefik configuration files, while app1 and app2 are used for sample backend applications. All examples in this series are assumed to run from ~/learn-traefik.
Run a quick test to make sure Docker actually works, not just that it is installed:
docker run --rm -d --name test-nginx -p 8080:80 nginx:alpine
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:8080
docker rm -f test-nginxIf the output shows 200, your environment is ready. The curl command above checks the HTTP status code of the sample container. The nginx:alpine image will also be used as a backend in episode 5.
A recap of the prerequisites you prepared in episode 0:
If anything is still missing, stop and fill the gaps before moving on. A strong foundation will make the next 30 episodes feel much lighter.
Key takeaways:
docker info, openssl version, and a container smoke test.In episode 1 next we will cover the history, background, and why you need Traefik — from the evolution of traditional reverse proxies, the birth of Traefik by Containous in 2015, to comparisons with NGINX, HAProxy, Envoy, and Caddy. Make sure your environment is ready, because the Learn Traefik journey is just beginning!