2015-09-14 22:03:53 +00:00
![Træfɪ k ](http://traefik.github.io/traefik.logo.svg "Træfɪ k" )
2015-09-13 17:34:05 +00:00
2015-09-14 22:03:53 +00:00
[![Circle CI ](https://img.shields.io/circleci/project/EmileVauge/traefik.svg )](https://circleci.com/gh/EmileVauge/traefik)
[![Forks ](https://img.shields.io/github/forks/EmileVauge/traefik.svg )](https://github.com/EmileVauge/traefik)
[![Stars ](https://img.shields.io/github/stars/EmileVauge/traefik.svg )](https://github.com/EmileVauge/traefik)
[![License ](https://img.shields.io/badge/license-MIT-blue.svg )](https://github.com/EmileVauge/traefik/blob/master/LICENSE.md)
2015-09-14 09:41:50 +00:00
2015-09-14 09:14:37 +00:00
Træfɪ k is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease.
2015-09-13 17:34:05 +00:00
It supports several backends (Docker, Mesos/Marathon, Consul, Etcd, Rest API, file...) to manage its configuration automatically and dynamically (hot-reload).
2015-09-14 09:01:47 +00:00
![Backends ](docs/img/backends.png "Backends" )
# Features
2015-09-13 17:34:05 +00:00
* No dependency hell, single binary made with go
* Simple json Rest API
* Simple TOML file configuration
* Multiple backends supported: Docker, Mesos/Marathon, Consul, Etcd, and more to come
* Watchers for backends, can listen change in backends to apply a new configuration automatically
* Hot-reloading of configuration. No need to restart the process
* Graceful shutdown http connections during hot-reloads
* Rest Metrics
* Tiny docker image included
* SSL backends support
* SSL frontend support
2015-09-14 09:01:47 +00:00
# Plumbing
2015-09-13 17:34:05 +00:00
2015-09-14 09:01:47 +00:00
* [Oxy ](https://github.com/mailgun/oxy/ ): an awsome proxy library made by Mailgun guys
2015-09-13 19:12:24 +00:00
* [Gorilla mux ](https://github.com/gorilla/mux ): famous request router
* [Negroni ](https://github.com/codegangsta/negroni ): web middlewares made simple
* [Graceful ](https://github.com/tylerb/graceful ): graceful shutdown of http.Handler servers
2015-09-13 17:34:05 +00:00
2015-09-14 09:01:47 +00:00
# Quick start
2015-09-13 17:34:05 +00:00
2015-09-14 22:03:53 +00:00
* The simple way: grab the latest binary from [![the Github releases page ](https://img.shields.io/github/downloads/EmileVauge/traefik/latest/total.svg )](https://github.com/emilevauge/traefik/releases) and just run it with the sample configuration file:
2015-09-13 17:34:05 +00:00
```
2015-09-14 12:38:21 +00:00
./traefik traefik.toml
2015-09-13 17:34:05 +00:00
```
2015-09-14 12:38:21 +00:00
* Use the tiny Docker image:
2015-09-13 17:34:05 +00:00
```
2015-09-14 22:03:53 +00:00
docker run -d -p 8080:8080 -p 80:80 -v $PWD/traefik.toml:/traefik.toml emilevauge/traefik
2015-09-13 17:34:05 +00:00
```
2015-09-14 09:01:47 +00:00
# Configuration