2016-02-29 17:27:09 +00:00
< p align = "center" >
2019-02-27 13:58:05 +00:00
< img src = "docs/content/assets/img/traefik.logo.png" alt = "Traefik" title = "Traefik" / >
2016-02-29 17:27:09 +00:00
< / p >
2015-09-13 17:34:05 +00:00
2017-05-18 20:36:10 +00:00
[![Build Status SemaphoreCI ](https://semaphoreci.com/api/v1/containous/traefik/branches/master/shields_badge.svg )](https://semaphoreci.com/containous/traefik)
2016-03-22 16:25:57 +00:00
[![Docs ](https://img.shields.io/badge/docs-current-brightgreen.svg )](https://docs.traefik.io)
2016-12-23 13:18:04 +00:00
[![Go Report Card ](https://goreportcard.com/badge/containous/traefik )](http://goreportcard.com/report/containous/traefik)
2016-09-30 13:04:37 +00:00
[![ ](https://images.microbadger.com/badges/image/traefik.svg )](https://microbadger.com/images/traefik)
2016-03-15 15:50:14 +00:00
[![License ](https://img.shields.io/badge/license-MIT-blue.svg )](https://github.com/containous/traefik/blob/master/LICENSE.md)
2019-06-25 08:08:04 +00:00
[![Join the community support forum at https://community.containo.us/ ](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse )](https://community.containo.us/)
2018-08-23 08:44:03 +00:00
[![Twitter ](https://img.shields.io/twitter/follow/traefik.svg?style=social )](https://twitter.com/intent/follow?screen_name=traefik)
2016-02-18 09:25:59 +00:00
2015-09-22 14:07:49 +00:00
2019-05-03 10:14:04 +00:00
Traefik (pronounced _traffic_ ) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy.
2018-10-17 14:24:04 +00:00
Traefik integrates with your existing infrastructure components ([Docker](https://www.docker.com/), [Swarm mode ](https://docs.docker.com/engine/swarm/ ), [Kubernetes ](https://kubernetes.io ), [Marathon ](https://mesosphere.github.io/marathon/ ), [Consul ](https://www.consul.io/ ), [Etcd ](https://coreos.com/etcd/ ), [Rancher ](https://rancher.com ), [Amazon ECS ](https://aws.amazon.com/ecs ), ...) and configures itself automatically and dynamically.
Pointing Traefik at your orchestrator should be the _only_ configuration step you need.
2016-03-22 16:25:57 +00:00
2017-08-10 15:29:32 +00:00
---
2017-09-11 17:10:04 +00:00
. ** [Overview ](#overview )** .
**[Features](#features)** .
**[Supported backends](#supported-backends)** .
**[Quickstart](#quickstart)** .
**[Web UI](#web-ui)** .
**[Documentation](#documentation)** .
. ** [Support ](#support )** .
**[Release cycle](#release-cycle)** .
**[Contributing](#contributing)** .
**[Maintainers](#maintainers)** .
**[Credits](#credits)** .
2017-08-10 15:29:32 +00:00
---
2019-09-18 13:08:05 +00:00
:warning: Please be aware that the old configurations for Traefik v1.X are NOT compatible with the v2.X config as of now. If you're running v2, please ensure you are using a [v2 configuration ](https://docs.traefik.io/ ).
2018-10-01 14:06:04 +00:00
2016-03-22 16:25:57 +00:00
## Overview
2018-03-22 11:34:03 +00:00
Imagine that you have deployed a bunch of microservices with the help of an orchestrator (like Swarm or Kubernetes) or a service registry (like etcd or consul).
Now you want users to access these microservices, and you need a reverse proxy.
2016-03-22 16:25:57 +00:00
2018-03-22 11:34:03 +00:00
Traditional reverse-proxies require that you configure _each_ route that will connect paths and subdomains to _each_ microservice.
In an environment where you add, remove, kill, upgrade, or scale your services _many_ times a day, the task of keeping the routes up to date becomes tedious.
2016-03-22 16:25:57 +00:00
2018-10-17 14:24:04 +00:00
**This is when Traefik can help you!**
2016-03-22 16:25:57 +00:00
2018-10-17 14:24:04 +00:00
Traefik listens to your service registry/orchestrator API and instantly generates the routes so your microservices are connected to the outside world -- without further intervention from your part.
2016-03-22 16:25:57 +00:00
2018-10-17 14:24:04 +00:00
**Run Traefik and let it do the work for you!**
_(But if you'd rather configure some of your routes manually, Traefik supports that too!)_
2016-03-22 16:25:57 +00:00
2019-02-28 15:44:03 +00:00
![Architecture ](docs/content/assets/img/traefik-architecture.png )
2016-03-22 16:25:57 +00:00
2015-10-05 21:22:12 +00:00
## Features
2018-03-22 11:34:03 +00:00
- Continuously updates its configuration (No restarts!)
- Supports multiple load balancing algorithms
2018-03-26 12:12:03 +00:00
- Provides HTTPS to your microservices by leveraging [Let's Encrypt ](https://letsencrypt.org ) (wildcard certificates support)
2017-08-25 18:40:03 +00:00
- Circuit breakers, retry
2018-03-22 11:34:03 +00:00
- See the magic through its clean web UI
- Websocket, HTTP/2, GRPC ready
- Provides metrics (Rest, Prometheus, Datadog, Statsd, InfluxDB)
- Keeps access logs (JSON, CLF)
2018-06-11 09:46:03 +00:00
- Fast
2018-03-22 11:34:03 +00:00
- Exposes a Rest API
- Packaged as a single binary file (made with :heart: with go) and available as a [tiny ](https://microbadger.com/images/traefik ) [official ](https://hub.docker.com/r/_/traefik/ ) docker image
## Supported Backends
2019-09-18 13:08:05 +00:00
- [Docker ](https://docs.traefik.io/providers/docker/ ) / [Swarm mode ](https://docs.traefik.io/providers/docker/ )
- [Kubernetes ](https://docs.traefik.io/providers/kubernetes-crd/ )
- [Marathon ](https://docs.traefik.io/providers/marathon/ )
- [Rancher ](https://docs.traefik.io/providers/rancher/ ) (Metadata)
2018-03-30 09:18:03 +00:00
- [File ](https://docs.traefik.io/configuration/backends/file )
2017-08-10 15:29:32 +00:00
2016-09-20 12:49:43 +00:00
## Quickstart
2015-09-28 16:25:41 +00:00
2018-10-17 14:24:04 +00:00
To get your hands on Traefik, you can use the [5-Minute Quickstart ](http://docs.traefik.io/#the-traefik-quickstart-using-docker ) in our documentation (you will need Docker).
2015-09-28 16:25:41 +00:00
2015-10-13 16:05:50 +00:00
## Web UI
2018-10-17 14:24:04 +00:00
You can access the simple HTML frontend of Traefik.
2015-10-13 16:05:50 +00:00
2019-09-10 12:40:05 +00:00
![Web UI Providers ](docs/content/assets/img/webui-dashboard.png )
2015-10-13 16:05:50 +00:00
2018-03-22 11:34:03 +00:00
## Documentation
You can find the complete documentation at [https://docs.traefik.io ](https://docs.traefik.io ).
2018-10-17 14:24:04 +00:00
A collection of contributions around Traefik can be found at [https://awesome.traefik.io ](https://awesome.traefik.io ).
2018-03-22 11:34:03 +00:00
2019-09-18 13:08:05 +00:00
:warning: If you're testing out v2, please ensure you are using the [v2 documentation ](https://docs.traefik.io/ ).
2019-04-01 15:14:03 +00:00
2018-03-22 11:34:03 +00:00
## Support
To get community support, you can:
2019-06-25 08:08:04 +00:00
- join the Traefik community forum: [![Join the chat at https://community.containo.us/ ](https://img.shields.io/badge/style-register-green.svg?style=social&label=Discourse )](https://community.containo.us/)
2018-03-22 11:34:03 +00:00
If you need commercial support, please contact [Containo.us ](https://containo.us ) by mail: < mailto:support @ containo . us > .
2015-09-13 17:34:05 +00:00
2018-03-22 11:34:03 +00:00
## Download
2015-09-13 17:34:05 +00:00
2018-03-22 11:34:03 +00:00
- Grab the latest binary from the [releases ](https://github.com/containous/traefik/releases ) page and run it with the [sample configuration file ](https://raw.githubusercontent.com/containous/traefik/master/traefik.sample.toml ):
2015-09-13 17:34:05 +00:00
2015-10-05 21:22:12 +00:00
```shell
2016-05-30 09:37:12 +00:00
./traefik --configFile=traefik.toml
2015-09-13 17:34:05 +00:00
```
2015-09-14 12:38:21 +00:00
2018-03-22 11:34:03 +00:00
- Or use the official tiny Docker image and run it with the [sample configuration file ](https://raw.githubusercontent.com/containous/traefik/master/traefik.sample.toml ):
2015-09-13 17:34:05 +00:00
2015-10-05 21:22:12 +00:00
```shell
2016-04-07 13:36:48 +00:00
docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/etc/traefik/traefik.toml traefik
2015-09-13 17:34:05 +00:00
```
2018-03-22 11:34:03 +00:00
- Or get the sources:
2015-09-22 08:50:33 +00:00
2015-10-05 21:22:12 +00:00
```shell
2016-02-24 15:43:39 +00:00
git clone https://github.com/containous/traefik
2015-09-22 08:50:33 +00:00
```
2018-03-22 11:34:03 +00:00
## Introductory Videos
2017-08-10 15:29:32 +00:00
2019-09-18 13:08:05 +00:00
:warning: Please be aware that these videos are for v1.X. The old configurations for Traefik v1.X are NOT compatible with Traefik v2. If you're running v2, please ensure you are using a [v2 configuration ](https://docs.traefik.io/ ).
2019-04-01 15:14:03 +00:00
2018-11-19 15:40:03 +00:00
Here is a talk given by [Emile Vauge ](https://github.com/emilevauge ) at GopherCon 2017.
2018-10-17 14:24:04 +00:00
You will learn Traefik basics in less than 10 minutes.
2017-08-10 15:29:32 +00:00
2018-03-22 11:34:03 +00:00
[![Traefik GopherCon 2017 ](https://img.youtube.com/vi/RgudiksfL-k/0.jpg )](https://www.youtube.com/watch?v=RgudiksfL-k)
2016-05-13 15:32:39 +00:00
2018-03-22 11:34:03 +00:00
Here is a talk given by [Ed Robinson ](https://github.com/errm ) at [ContainerCamp UK ](https://container.camp ) conference.
2018-10-17 14:24:04 +00:00
You will learn fundamental Traefik features and see some demos with Kubernetes.
2017-08-10 15:29:32 +00:00
2018-03-22 11:34:03 +00:00
[![Traefik ContainerCamp UK ](https://img.youtube.com/vi/aFtpIShV60I/0.jpg )](https://www.youtube.com/watch?v=aFtpIShV60I)
2017-06-30 15:35:26 +00:00
2018-03-22 11:34:03 +00:00
## Maintainers
2017-06-30 15:35:26 +00:00
2019-03-20 15:30:07 +00:00
[Information about process and maintainers ](docs/content/contributing/maintainers.md )
2017-06-30 15:35:26 +00:00
2017-08-10 15:29:32 +00:00
## Contributing
2018-03-22 11:34:03 +00:00
If you'd like to contribute to the project, refer to the [contributing documentation ](CONTRIBUTING.md ).
2017-08-10 15:29:32 +00:00
Please note that this project is released with a [Contributor Code of Conduct ](CODE_OF_CONDUCT.md ).
2018-03-22 11:34:03 +00:00
By participating in this project, you agree to abide by its terms.
2017-08-10 15:29:32 +00:00
2018-03-22 11:34:03 +00:00
## Release Cycle
2017-08-10 15:29:32 +00:00
2018-03-22 11:34:03 +00:00
- We release a new version (e.g. 1.1.0, 1.2.0, 1.3.0) every other month.
- Release Candidates are available before the release (e.g. 1.1.0-rc1, 1.1.0-rc2, 1.1.0-rc3, 1.1.0-rc4, before 1.1.0)
- Bug-fixes (e.g. 1.1.1, 1.1.2, 1.2.1, 1.2.3) are released as needed (no additional features are delivered in those versions, bug-fixes only)
2016-07-05 19:02:14 +00:00
2018-03-22 11:34:03 +00:00
Each version is supported until the next one is released (e.g. 1.1.x will be supported until 1.2.0 is out)
2017-08-10 15:29:32 +00:00
2018-03-22 11:34:03 +00:00
We use [Semantic Versioning ](http://semver.org/ )
2017-08-10 15:29:32 +00:00
2018-08-22 08:18:03 +00:00
## Mailing lists
2017-08-10 15:29:32 +00:00
2018-08-22 08:18:03 +00:00
- General announcements, new releases: mail at news+subscribe@traefik.io or on [the online viewer ](https://groups.google.com/a/traefik.io/forum/#!forum/news )
- Security announcements: mail at security+subscribe@traefik.io or on [the online viewer ](https://groups.google.com/a/traefik.io/forum/#!forum/security ).
2017-08-10 15:29:32 +00:00
2016-04-26 22:02:03 +00:00
## Credits
2019-02-27 13:58:05 +00:00
Kudos to [Peka ](http://peka.byethost11.com/photoblog/ ) for his awesome work on the logo ![logo ](docs/content/assets/img/traefik.icon.png ).
2018-03-22 11:34:03 +00:00
Traefik's logo is licensed under the Creative Commons 3.0 Attributions license.
2017-04-24 13:34:12 +00:00
Traefik's logo was inspired by the gopher stickers made by Takuya Ueda (https://twitter.com/tenntenn).
2018-10-01 14:06:04 +00:00
The original Go gopher was designed by Renee French (http://reneefrench.blogspot.com/).