traefik/traefik

The Cloud Native Application Proxy

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 43 minutes ago
Added to GitGenius on June 10th, 2024
Created on September 13th, 2015
Open Issues & Pull Requests: 894 (+0)
Number of forks: 6,136
Total Stargazers: 64,427 (+0)
Total Subscribers: 674 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.7 days
Mean response time: 327.6 days
90th percentile: 1646.6 days
Tracked items: 1,380

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 97% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "kind/question" is answered fastest, typically in about 17 hours, while "kind/proposal" waits about 7 months. 49% of tracked open issues have had no activity in three months. Only 3% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 683
New in 7 days: 4
Closed in 7 days: 4
Avg open age: 1,322 days
Stale 30+ days: 632
Stale 90+ days: 555

Recent activity

Opened in 7 days: 4
Closed in 7 days: 4
Comments in 7 days: 24
Events in 7 days: 90

Top labels

  • status/5-frozen-due-to-age (5,272)
  • kind/question (2,144)
  • kind/enhancement (1,041)
  • kind/bug/confirmed (783)
  • kind/bug/possible (552)
  • contributor/wanted (551)
  • resolution/duplicate (477)
  • priority/P2 (465)

Detailed Description

Traefik is a modern HTTP reverse proxy and load balancer written in Go that automates routing configuration for microservices deployed in dynamic infrastructure environments. The project integrates directly with container orchestrators and service registries including Docker, Kubernetes, Consul, Etcd, Amazon ECS, and Rancher, automatically discovering services and generating routes without requiring manual configuration updates. This dynamic configuration capability addresses a core pain point in microservice architectures where services are frequently added, removed, scaled, or upgraded throughout the day.

The core functionality centers on eliminating the traditional reverse proxy workflow where operators must manually maintain route mappings between paths, subdomains, and backend services. Instead, Traefik listens to the orchestrator or service registry API and instantly generates appropriate routes, allowing microservices to be accessible to external users without further intervention. The system supports manual route configuration as an alternative for users who prefer explicit control over specific routes.

Key features include continuous configuration updates without requiring restarts, multiple load balancing algorithms, automatic HTTPS provisioning through Let's Encrypt with wildcard certificate support, circuit breakers and retry logic, and a clean web UI for visibility into routing and service status. The proxy handles modern protocols including WebSocket, HTTP/2, and gRPC. Traefik exposes metrics through multiple backends including Prometheus, Datadog, Statsd, and InfluxDB 2.X, maintains access logs in JSON and CLF formats, and provides a REST API for programmatic interaction. The entire application is packaged as a single Go binary and distributed as an official Docker image.

The release cycle follows a predictable schedule with three to four new versions released annually, each preceded by release candidates. Bug fix versions are released as needed between feature releases. Each version receives support until the next version is released, and the project adheres to semantic versioning. The maintainers emphasize an open philosophy for team membership, documenting how motivated contributors can join the core team and participate in the project's governance and review processes.