`runner route`

Desde a v2.172.0. Mostra e ativa o certificado de cada domínio de uma app. O contexto completo está em Domínios e certificados.

`runner route status [--json] [-x]`

Mostra, por domínio da instância registrada:

Campo (JSON) O que é
domain o domínio
declared true com routing.tls no manifesto (o gatekeeper cuida); false = portão de DNS do deploy + tls-watch
strategy o routing.tls declarado
capability o par pedido (http-01, dns-01/cloudflare…)
mode direto · proxy · privado · pendente · nao_confirmado
state pronto · pendente · ignorado · falhou
reason o motivo, com código (dns_pendente: …, resolver_ausente: …)
resolver o resolver aplicado na rota
certificate o que o Traefik serve agora: emitido · padrao · desconhecido
certificate_issuer o emissor, quando emitido
certificate_note presente no certificado padrão, com o porquê
last_check · attempts a última conferência do gatekeeper e quantas tentativas
warnings ex.: o Traefik não declara forwardedHeaders.trustedIPs para domínio atrás de proxy
{
  "app": "loja",
  "instance": "production",
  "domains": [
    {
      "domain": "loja.exemplo.com",
      "declared": true,
      "strategy": "acme-http",
      "capability": "http-01",
      "mode": "pendente",
      "state": "pendente",
      "reason": "dns_pendente: o DNS ainda não aponta para este servidor — certificado padrão do Traefik (autoassinado) até apontar",
      "resolver": null,
      "certificate": "padrao",
      "certificate_note": "certificado padrão do Traefik (autoassinado): dns_pendente: … — o navegador vai avisar até o gatekeeper emitir",
      "last_check": "2026-10-25T12:00:00+00:00",
      "attempts": 2
    }
  ]
}

`runner route activate [--domain X] [--skip-dns-gate] [--json] [-x]`

Confere agora (DNS, NS da zona e sonda de origem) e aplica o resolver nos domínios prontos, sem deploy:

  • modo file: reescreve o route file da instância;
  • modo labels: escreve o router TLS no file provider.

Domínio que segue segurado sai com exit 3. Erros saem em JSON ({"error", "message"}):

Código Quando
dominio_desconhecido --domain não é da instância
sem_dominio a instância não publica domínio

--skip-dns-gate aplica sem conferir. Skip não inventa resolver que não existe, e acme-tls atrás de proxy continua sem emitir.

Em app sem routing.tls declarado, o activate confere com auto e aplica, mas não grava estado, porque o cron não o mantém para essa app.

Ver também

By Borlot.com.br on 25/10/2026