Configuration

Complete list of configuration options.

Millau Environment Variables

  • LOGGING: logging level, optional, INFO by default.
  • HTTP: HTTP port for incoming traffic, optional, 80 by default.
  • HTTPS: HTTPS port for incoming traffic, optional, 443 by default.
  • LICENSE: Millau license key, optional.
  • ACME: ACME API of the Certificate Authority, optional, https://api.buypass.com/acme/directory by default.

Millau Logging Levels

  • FATAL: indicates an unrecoverable error; the process will exit.
  • ERROR: indicates a proxy failure; the process continues running.
  • WARN: indicates client or microservice misbehavior; the process continues running.
  • INFO: indicates normal functional behavior. Default level.
  • DEBUG: indicates step‑by‑step functional behavior.
services:
  proxy:
    image: codelev/millau:latest
     environment:
       - LOGGING=DEBUG
     ...

Millau HTTP and HTTPS Ports

By default, the HTTP and HTTPS ports are 80 and 443. You can change them as follows:

services:
  proxy:
    image: codelev/millau:latest
     environment:
       - HTTP=8080
       - HTTPS=8443
     ...

Automatic HTTPS

By default, ACME API is https://api.buypass.com/acme/directory (Buypass AS Certificate Authority, Norway). You can change is as follows:

services:
  proxy:
    image: codelev/millau:latest
     environment:
       - ACME=https://acme-v02.api.letsencrypt.org/directory
     ...

Service Labels

  • millau.enabled: enables proxying if set to true.
  • millau.port: service port, required.
  • millau.hosts: space-separated hostnames (domain names), optional, any * by default.
  • millau.path: path portion of the URL starting with /, optional, / by default.
  • millau.timeout: failover timeout in seconds, optional, 30 by default.
  • millau.retry: failover period in seconds, optional, 60 by default.
  • millau.key: TLS private key encoded in base64, optional.
  • millau.cert: TLS public key encoded in base64, optional.

Host Matching

The matching logic selects the services whose millau.hosts label matches the domain hierarchy. It prioritizes:

  • exact matches,
  • longest suffix.

Examples

ConfiguredRequestedSelected
one.com two.comone.comone.com
one.com two.comwww.two.comtwo.com
one.com two.comthree.two.comtwo.com
one.com localblue.locallocal
* two.comtwo.comtwo.com
* two.comone.com*
* *one.com* *

Path Matching

The matching logic selects the services whose millau.path label matches the beginning of the request path. It prioritizes:

  • exact matches,
  • longest prefix.

Examples

ConfiguredRequestedSelected
/api/ //api//api/
/api/ //api/
/api/ //file.html/
/api/ //api/x/api/
/api/ //api/x//api/
/api/ //api/x/file.html/api/
/api/ / /file.html/file.html/file.html
/file /api/ / /file/file.html/file /file
/api/ / /file /file.html/file.html/file.html
/api/ / /api//api//api/ /api/