diff --git a/README.md b/README.md index 03d1b96f8..37867b00a 100644 --- a/README.md +++ b/README.md @@ -30,18 +30,19 @@ It supports several backends (Docker, Mesos/Marathon, Consul, Etcd, Rest API, fi # Quick start -* The simple way: go to the [releases](https://github.com/emilevauge/traefik/releases) page and get a binary. -* Or simply execute: - -``` -go get github.com/emilevauge/traefik -``` -* Just run it! +* The simple way: go to the [releases](https://github.com/emilevauge/traefik/releases) page and get a binary for your platform. +Just run it! ``` ./traefik traefik.toml ``` +* Use the tiny Docker image: + +``` +docker run -t -p 8081:8080 -p 80:80 -v $PWD/traefik.toml:/traefik.toml emilevauge/traefik +``` + # Configuration ## Global configuration diff --git a/circle.yml b/circle.yml index d4103c8ce..f27db9819 100644 --- a/circle.yml +++ b/circle.yml @@ -10,7 +10,7 @@ dependencies: - CGO_ENABLED=0 go build -a -installsuffix nocgo . - go get github.com/mitchellh/gox - go get github.com/tcnksm/ghr - - gox -verbose -os "linux darwin windows" -output "dist/$CIRCLE_PROJECT_REPONAME_{{.OS}}_{{.Arch}}" + - gox -verbose -os "linux darwin windows" override: - echo $REPO diff --git a/configuration.go b/configuration.go index 2b00d8e8d..bb0921218 100644 --- a/configuration.go +++ b/configuration.go @@ -17,7 +17,7 @@ type GlobalConfiguration struct { func NewGlobalConfiguration() *GlobalConfiguration { globalConfiguration := new(GlobalConfiguration) // default values - globalConfiguration.Port = ":8080" + globalConfiguration.Port = ":80" globalConfiguration.GraceTimeOut = 10 globalConfiguration.LogLevel = "ERROR" globalConfiguration.TraefikLogsStdout = true diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 50d1e25e4..a288c3593 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -1,4 +1,4 @@ -# Træfɪk +# Træfɪk Roadmap * Add traefik.protocol label * Providers recovery @@ -7,7 +7,6 @@ * Retry with streams * Licence * Add traefik.indlude all/enabled policy -* SSL backends support * Consul support * README * API enhancements @@ -26,6 +25,7 @@ * ~~Filter no exposed port apps~~ * ~~Logs~~ * ~~SSL frontend support~~ +* ~~SSL backends support~~ * ~~Static files~~ * ~~Metrics~~ * ~~Dockerfile~~ diff --git a/traefik.toml b/traefik.toml index 84fc95dfd..d3726ba4e 100644 --- a/traefik.toml +++ b/traefik.toml @@ -1,56 +1,205 @@ -port = ":8001" -graceTimeOut = 10 +################################################################ +# Global configuration +################################################################ + +# Reverse proxy port +# +# Optional +# Default: ":80" +# +# port = ":80" + +# Timeout in seconds. +# Duration to give active requests a chance to finish during hot-reloads +# +# Optional +# Default: 10 +# +# graceTimeOut = 10 + +# Traefik logs file +# +# Optional +# # traefikLogsFile = "log/traefik.log" -traefikLogsStdout = true -accessLogsFile = "log/access.log" -logLevel = "DEBUG" + +# Traefik log to standard output +# +# Optional +# Default: true +# +# traefikLogsStdout = true + +# Access logs file +# +# Optional +# +# accessLogsFile = "log/access.log" + +# Log level +# +# Optional +# Default: "ERROR" +# +# logLevel = "ERROR" + +# SSL certificate and key used +# +# Optional +# # CertFile = "traefik.crt" # KeyFile = "traefik.key" -[docker] -endpoint = "unix:///var/run/docker.sock" -watch = true -domain = "localhost" +################################################################ +# Web configuration backend +################################################################ + +# Enable web configuration backend +# +# Optional +# +# [web] + +# Web administration port +# +# Required +# +# address = ":8080" + + +################################################################ +# File configuration backend +################################################################ + +# Enable file configuration backend +# +# Optional +# +# [file] + +# Rules file +# If defined, traefik will load rules from this file, +# otherwise, it will load rules from current file (cf Sample rules below). +# +# Optional +# +# filename = "rules.toml" + +# Enable watch file changes +# +# Optional +# +# watch = true + + +################################################################ +# Docker configuration backend +################################################################ + +# Enable Docker configuration backend +# +# Optional +# +# [docker] + +# Docker server endpoint. Can be a tcp or a unix socket endpoint. +# +# Required +# +# endpoint = "unix:///var/run/docker.sock" + +# Enable watch docker changes +# +# Optional +# +# watch = true + +# Default domain used. +# Can be overridden by setting the "traefik.domain" label on a container. +# +# Required +# +# domain = "docker.localhost" + +# Override default configuration template. For advanced users :) +# +# Optional +# # filename = "docker.tmpl" + +################################################################ +# Mesos/Marathon configuration backend +################################################################ + +# Enable Marathon configuration backend +# +# Optional +# # [marathon] + +# Marathon server endpoint. +# You can also specify multiple endpoint for Marathon: +# endpoint := "http://10.241.1.71:8080,10.241.1.72:8080,10.241.1.73:8080" +# +# Required +# # endpoint = "http://127.0.0.1:8080" + +# Network interface used to call Marathon web services +# Optional +# Default: "eth0" +# # networkInterface = "eth0" + +# Enable watch Marathon changes +# +# Optional +# # watch = true -# domain = "toto.fr" + +# Default domain used. +# Can be overridden by setting the "traefik.domain" label on an application. +# +# Required +# +# domain = "marathon.localhost" + +# Override default configuration template. For advanced users :) +# +# Optional +# # filename = "marathon.tmpl" -[web] -address = ":8010" -#[file] -# filename = "rules.toml" -watch = true -[backends] - [backends.backend1] - [backends.backend1.servers.server1] - url = "http://172.17.0.2:80" - weight = 10 - [backends.backend1.servers.server2] - url = "http://172.17.0.3:80" - weight = 1 - [backends.backend2] - [backends.backend2.servers.server1] - url = "https://www.google.fr" - weight = 1 - [backends.backend2.servers.server2] - url = "http://www.wikipedia.fr" - weight = 2 - -[routes] - [routes.route1] - backend = "backend2" - [routes.route1.rules.test_zenika_1] - category = "Host" - value = "test.localhost" - [routes.route2] - backend = "backend1" - [routes.route2.rules.test_zenika_2] - category = "Path" - value = "/test" +################################################################ +# Sample rules +################################################################ +# [backends] +# [backends.backend1] +# [backends.backend1.servers.server1] +# url = "http://172.17.0.2:80" +# weight = 10 +# [backends.backend1.servers.server2] +# url = "http://172.17.0.3:80" +# weight = 1 +# [backends.backend2] +# [backends.backend2.servers.server1] +# url = "http://172.17.0.4:80" +# weight = 1 +# [backends.backend2.servers.server2] +# url = "http://172.17.0.5:80" +# weight = 2 +# +# [routes] +# [routes.route1] +# backend = "backend2" +# [routes.route1.rules.test_1] +# category = "Host" +# value = "test.localhost" +# [routes.route2] +# backend = "backend1" +# [routes.route2.rules.test_2] +# category = "Path" +# value = "/test"