From f92337db5225ff6af806172af8c1743c2440ace7 Mon Sep 17 00:00:00 2001 From: emile Date: Mon, 14 Sep 2015 11:14:37 +0200 Subject: [PATCH] README --- README.md | 8 ++++---- docs/ROADMAP.md | 2 +- docs/img/traefik.logo.png | Bin 8127 -> 8394 bytes 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 0aafdee6a..2644995b3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -![/Træfɪk/](docs/img/traefik.logo.png "/Træfɪk/") +![Træfɪk](docs/img/traefik.logo.png "Træfɪk") -/Træfɪk/ is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. +Træfɪk is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. It supports several backends (Docker, Mesos/Marathon, Consul, Etcd, Rest API, file...) to manage its configuration automatically and dynamically (hot-reload). ![Backends](docs/img/backends.png "Backends") @@ -58,7 +58,7 @@ traefikLogsStdout = true ## File backend -Like any other reverse proxy, /Træfɪk/ can be configured with a file. You have two choices: +Like any other reverse proxy, Træfɪk can be configured with a file. You have two choices: * simply add your configuration at the end of the global configuration file ```traefik.tml``` : @@ -147,7 +147,7 @@ filename = "rules.toml" value = "/test" ``` -If you want /Træfɪk/ to watch file changes automatically, just add: +If you want Træfɪk to watch file changes automatically, just add: ```toml [file] diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 8b2f54167..50d1e25e4 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -1,4 +1,4 @@ -# /Træfɪk/ +# Træfɪk * Add traefik.protocol label * Providers recovery diff --git a/docs/img/traefik.logo.png b/docs/img/traefik.logo.png index 9e5c88252ec0208a5de6adb9c98761bbf1725743..38205aa69b70e10849db55e9252e9feeb6edef64 100644 GIT binary patch literal 8394 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 literal 8127 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