`runner traefik`

CLI para inspecionar e editar a configuracao do Traefik que o Runner gerencia. E o maior grupo do binario — 30 subcomandos.

A regra que vale para o grupo inteiro

Tudo e dry-run por padrao. Os 16 subcomandos que mutam so escrevem com --apply; sem ela mostram o diff e nao tocam na configuracao.

runner traefik domain-add meu-router novo.dominio.com         # mostra o diff
runner traefik domain-add meu-router novo.dominio.com --apply # escreve

Isso torna seguro explorar qualquer comando de edicao antes de decidir.

Inspecao (read-only)

Subcomando O que faz
info Instancia de Traefik descoberta + config resolvida
scan Snapshot de todos os providers ativos (file + api + docker labels)
schema JSON Schema de um recurso de saida
routers-list Lista routers, de arquivo e de label de container (provider docker; campo container no JSON). Desde a v2.174.0
services-list Lista services
middlewares-list Lista middlewares
domains-list Lista os dominios unicos. Desde a v2.174.0 inclui os de label; o campo providers (paralelo a routers) aparece so quando ha router de label
inspect Inspeciona um domain, router, service ou file. inspect domain lista os routers de arquivo e de label (nome@provider, com priority e container no JSON)
api Debug cru da API do Traefik (ping, overview, routers, services, certs)
diff Diff pendente entre o HEAD do journal e o disco

`scan` cobre os tres providers

Um sintoma comum — "o dominio responde mas nao esta no meu arquivo" — vem de a rota existir em outro provider. O scan olha os tres de uma vez: arquivo, API e labels de container.

Routers de label (v2.174.0+)

Quando o provider docker esta ativo na configuracao estatica, scan, inspect domain, routers-list e domains-list leem tambem os labels traefik.http.routers.* dos containers. O scan ganha o campo label_router_count. Sem docker, o comando segue so com o arquivo e avisa traefik_labels_indisponivel no stderr.

Limitacao: provider docker ligado por flag ou variavel de ambiente do Traefik, e nao pela estatica, nao e detectado.

Diagnostico

Subcomando O que faz
doctor Roda as checagens padrao, incluindo traefik_regra_duplicada (v2.174.0+)
history Inspeciona o historico (list, show, snapshot-show)
validate Valida um conjunto de ops e roda o preflight — com --apply, aplica

O check traefik_regra_duplicada acusa o mesmo Host() em router de arquivo e em router de label cujos entrypoints se cruzam e cuja priority efetiva empata (a explicita ou, sem ela, o tamanho da regra). A remediacao e dar uma --priority distinta a um dos dois, por exemplo no router-create:

runner traefik router-create meu-router --rule 'Host(`app.exemplo.com`)' \
  --service meu-service --file app.yml --priority 2000 --apply
runner traefik doctor
runner traefik doctor --check <nome>     # uma checagem so

Edicao de dominios

Subcomando O que faz
domain-add Acrescenta um dominio a regra de um router
domain-remove Remove um dominio da regra
domain-replace Troca um host literal por outro (--scope, --router)

Edicao de routers e services

Subcomando O que faz
router-create Cria um router via flags (--rule, --service, --file, --priority)
router-delete Remove um router
router-edit-rule Edita a regra de um router
service-target Aponta o service de um router para uma URL de backend
service-weight Define pesos explicitos num service ponderado
service-bluegreen-init Inicializa um service ponderado blue/green
service-promote Promove um slot blue/green a 100%
middleware-attach Anexa um middleware a um router
middleware-detach Remove um middleware de um router

Configuracao estatica e recuperacao

Subcomando O que faz
static Editor da config estatica (get, set-api, set-log-level, set-access-log, set-entry-point)
adopt Adota um arquivo nao gerenciado sob um id logico
rollback Volta para um snapshot anterior
failover-switch Chave de failover manual

`adopt` traz um arquivo para o controle do runner

Configuracao escrita a mao antes do Runner existir fica fora do journal — e portanto fora do diff, do history e do rollback. O adopt a registra sob um id logico, e a partir dai ela participa dos mesmos mecanismos.

Flags comuns

Flag Descricao
--apply Escreve a mudanca. Sem ela, dry-run: mostra o diff e nao toca na config
--json Output em JSON
-o, --output human | json | yaml

Ver tambem

By Borlot.com.br on 19/08/2026