diff --git a/cmd.go b/cmd.go
index 81c804d27..5bfeb4851 100644
--- a/cmd.go
+++ b/cmd.go
@@ -77,7 +77,7 @@ func init() {
traefikCmd.PersistentFlags().StringP("graceTimeOut", "g", "10", "Timeout in seconds. Duration to give active requests a chance to finish during hot-reloads")
traefikCmd.PersistentFlags().String("accessLogsFile", "log/access.log", "Access logs file")
traefikCmd.PersistentFlags().String("traefikLogsFile", "log/traefik.log", "Traefik logs file")
- traefikCmd.PersistentFlags().Var(&arguments.Certificates, "certificates", "SSL certificates and keys. You may add several certificate/key pairs to terminate HTTPS for multiple domain names using TLS SNI")
+ traefikCmd.PersistentFlags().Var(&arguments.Certificates, "certificates", "SSL certificates and keys pair, ie 'tests/traefik.crt,tests/traefik.key'. You may add several certificate/key pairs to terminate HTTPS for multiple domain names using TLS SNI")
traefikCmd.PersistentFlags().StringP("logLevel", "l", "ERROR", "Log level")
traefikCmd.PersistentFlags().DurationVar(&arguments.ProvidersThrottleDuration, "providersThrottleDuration", time.Duration(2*time.Second), "Backends throttle duration: minimum duration between 2 events from providers before applying a new configuration. It avoids unnecessary reloads if multiples events are sent in a short amount of time.")
diff --git a/configuration.go b/configuration.go
index 14b74ae87..3bca90541 100644
--- a/configuration.go
+++ b/configuration.go
@@ -94,11 +94,11 @@ func LoadConfiguration() *GlobalConfiguration {
} else {
viper.SetConfigName("traefik") // name of config file (without extension)
}
- viper.AddConfigPath("/etc/traefik/") // path to look for the config file in
- viper.AddConfigPath("$HOME/.traefik") // call multiple times to add many search paths
- viper.AddConfigPath(".") // optionally look for config in the working directory
- err := viper.ReadInConfig() // Find and read the config file
- if err != nil { // Handle errors reading the config file
+ viper.AddConfigPath("/etc/traefik/") // path to look for the config file in
+ viper.AddConfigPath("$HOME/.traefik/") // call multiple times to add many search paths
+ viper.AddConfigPath(".") // optionally look for config in the working directory
+ err := viper.ReadInConfig() // Find and read the config file
+ if err != nil { // Handle errors reading the config file
fmtlog.Fatalf("Error reading file: %s", err)
}
if len(arguments.Certificates) > 0 {
diff --git a/docs/index.md b/docs/index.md
index 3473bd308..fab43ea2b 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -5,6 +5,7 @@ ___
# Documentation
- [Basics](#basics)
+- [Launch configuration](#launch)
- [Global configuration](#global)
- [File backend](#file)
- [API backend](#api)
@@ -38,7 +39,8 @@ Frontends can be defined using the following rules:
A frontend is a set of rules that forwards the incoming http traffic to a backend.
- You can optionally enable `passHostHeader` to forward client `Host` header to the backend.
+ You can optionally enable `passHostHeader` to
+- []forward client `Host` header to the backend.
### HTTP Backends
@@ -59,6 +61,101 @@ For example:
- `LatencyAtQuantileMS(50.0) > 50`
- `ResponseCodeRatio(500, 600, 0, 600) > 0.5`
+
+## Launch configuration
+
+Træfɪk can be configured using a TOML file configuration, arguments, or both.
+By default, Træfɪk will try to find a `traefik.toml` in the following places:
+- `/etc/traefik/`
+- `$HOME/.traefik/`
+- `.` the working directory
+
+You can override this by setting a `configFile` argument:
+
+```bash
+$ traefik --configFile=foo/bar/myconfigfile.toml
+```
+
+Træfɪk uses the following precedence order. Each item takes precedence over the item below it:
+
+- arguments
+- configuration file
+- default
+
+It means that arguments overrides configuration file.
+Each argument is described in the help section:
+```bash
+$ traefik --help
+traefik is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease.
+Complete documentation is available at http://traefik.io
+
+Usage:
+ traefik [flags]
+ traefik [command]
+
+Available Commands:
+ version Print version
+ help Help about any command
+
+Flags:
+ --accessLogsFile="log/access.log": Access logs file
+ --boltdb=false: Enable Boltdb backend
+ --boltdb.endpoint="127.0.0.1:4001": Boltdb server endpoint
+ --boltdb.filename="": Override default configuration template. For advanced users :)
+ --boltdb.prefix="/traefik": Prefix used for KV store
+ --boltdb.watch=true: Watch provider
+ --certificates=: SSL certificates and keys. You may add several certificate/key pairs to terminate HTTPS for multiple domain names using TLS SNI
+ -c, --configFile="": Configuration file to use (TOML, JSON, YAML, HCL).
+ --consul=false: Enable Consul backend
+ --consul.endpoint="127.0.0.1:8500": Consul server endpoint
+ --consul.filename="": Override default configuration template. For advanced users :)
+ --consul.prefix="/traefik": Prefix used for KV store
+ --consul.watch=true: Watch provider
+ --docker=false: Enable Docker backend
+ --docker.domain="": Default domain used
+ --docker.endpoint="unix:///var/run/docker.sock": Docker server endpoint. Can be a tcp or a unix socket endpoint
+ --docker.filename="": Override default configuration template. For advanced users :)
+ --docker.tls=false: Enable Docker TLS support
+ --docker.tls.ca="": TLS CA
+ --docker.tls.cert="": TLS cert
+ --docker.tls.insecureSkipVerify=false: TLS insecure skip verify
+ --docker.tls.key="": TLS key
+ --docker.watch=true: Watch provider
+ --etcd=false: Enable Etcd backend
+ --etcd.endpoint="127.0.0.1:4001": Etcd server endpoint
+ --etcd.filename="": Override default configuration template. For advanced users :)
+ --etcd.prefix="/traefik": Prefix used for KV store
+ --etcd.watch=true: Watch provider
+ --file=false: Enable File backend
+ --file.filename="": Override default configuration template. For advanced users :)
+ --file.watch=true: Watch provider
+ -g, --graceTimeOut="10": Timeout in seconds. Duration to give active requests a chance to finish during hot-reloads
+ -h, --help=false: help for traefik
+ -l, --logLevel="ERROR": Log level
+ --marathon=false: Enable Marathon backend
+ --marathon.domain="": Default domain used
+ --marathon.endpoint="http://127.0.0.1:8080": Marathon server endpoint. You can also specify multiple endpoint for Marathon
+ --marathon.filename="": Override default configuration template. For advanced users :)
+ --marathon.networkInterface="eth0": Network interface used to call Marathon web services. Needed in case of multiple network interfaces
+ --marathon.watch=true: Watch provider
+ -p, --port=":80": Reverse proxy port
+ --providersThrottleDuration=2s: Backends throttle duration: minimum duration between 2 events from providers before applying a new configuration. It avoids unnecessary reloads if multiples events are sent in a short amount of time.
+ --traefikLogsFile="log/traefik.log": Traefik logs file
+ --web=false: Enable Web backend
+ --web.address=":8080": Web administration port
+ --web.cerFile="": SSL certificate
+ --web.keyFile="": SSL certificate
+ --web.readOnly=false: Enable read only API
+ --zookeeper=false: Enable Zookeeper backend
+ --zookeeper.endpoint="127.0.0.1:2181": Zookeeper server endpoint
+ --zookeeper.filename="": Override default configuration template. For advanced users :)
+ --zookeeper.prefix="/traefik": Prefix used for KV store
+ --zookeeper.watch=true: Watch provider
+
+
+Use "traefik help [command]" for more information about a command.
+```
+
## Global configuration
```toml