
Traefik
A reverse proxy and load balancer that configures itself from your container or orchestrator.
- Stars
- 65.4k
- Forks
- 6.3k
- Licence
- MIT
- Language
- Go
- Last update
- 4 days ago
- Type
- App
What it is
Traefik is an HTTP reverse proxy and load balancer. It sits in front of your web services and sends incoming traffic to the right one. Instead of writing routes by hand, it reads information from systems like Docker, Kubernetes, or Consul and updates its routing automatically as services start, stop, or scale.
- Route paths and subdomains to several microservices behind one address
- Get HTTPS certificates for services automatically through Let's Encrypt
- Balance traffic across service instances and add retries or circuit breakers
- Collect metrics and access logs from incoming traffic
Great for
- Teams running many microservices in Docker, Swarm, or Kubernetes
- Operators who change services often and do not want to edit proxy routes each time
- People who want automatic HTTPS certificates via Let's Encrypt
- Projects that need built-in metrics, access logs, or a REST API for the proxy
Not ideal for
- A single static website or one app on one server, where a simpler web server may be enough (the README is aimed at dynamic microservice setups)
- People who want a fully managed service with no configuration (the README describes it as configured by pointing it at an orchestrator, but you still need to set it up)
How to get it
- 1
Run with Docker
You'll need: Docker
Run the official Docker image with a sample config
docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefikGet the sources
git clone https://github.com/traefik/traefik - 2
Run it
- Download the sample configuration file linked in the README
- Run the Docker command with your traefik.toml mounted
- Follow the 5-Minute Quickstart in the documentation to route a first service
- Open the web UI to check the providers and routes
- 3
Get the most out of it
- Use the Docker, Kubernetes, or ECS provider so routes are generated from your services automatically
- Use Let's Encrypt for HTTPS, including wildcard certificates as the README notes
- Turn on Prometheus or other metrics and JSON access logs to watch traffic
- Use the REST API to inspect the proxy's state
Downloads
Strengths
- Updates its configuration automatically without restarts, according to the README
- Ships as a single binary or an official Docker image
- Supports many backends including Docker, Kubernetes, Consul, and ECS
Trade-offs
- Its many options and providers mean a real setup takes time to learn, and the README points to external docs for detail
- The README is truncated here, so specifics of performance or limits are not covered
- Major version upgrades can include breaking changes, so the migration guide must be read
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| traefik (this) | 65.4k | App | intermediate | 4 days ago | Teams running many microservices in Docker, Swarm, or Kubernetes |
| gf | 13.3k | Framework | intermediate | 7 days ago | Go developers looking for a full-featured framework |
| dokku | 32.2k | App | intermediate | 4 days ago | Developers who want Heroku-style deployment on a server they control |
| nginx-proxy | 19.9k | Dev tool | intermediate | 4 days ago | People running several web apps on one Docker host who want one public port 80 entry point |
| verdaccio | 18k | App | beginner | 4 days ago | Teams that want to share private npm packages inside a company |
| gluetun | 16k | App | intermediate | 8 days ago | People who want one Docker container to run traffic through a VPN for other containers |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.