Instrumento de plantão

A stack inteira, na ordem em que o tráfego a atravessa

Quando algo cai, você desce esta página de cima para baixo até encontrar a camada que parou. Mais abaixo: o inventário completo comparado contra o contrato — o que a máquina tem de verdade, hoje, não o que a documentação acha que ela tem.

21 esperados · 23 na máquina · 2 não catalogados 10 workflows ativos 13 apps Dify 2 vermelhos agora
calculando frescor…
B2B · fala de negócio com a dona da clínica
B2C · fala de estética com a paciente, invisível como SafeFlowAI

Se você só tem 30 segundos

  1. Sandbox do Dify em crash-loop ha 104 dias. 104 dias em crash-loop, 149644 restarts. Nenhum code node encontrado — gatilho inativo.
  2. 2 container(s) rodando fora do contrato. Ver secao "nao catalogado".
  3. O proxy e ponto unico de falha. E o unico container nas tres redes. Se cair, o n8n perde o Dify.

Infraestrutura Estavel

a máquina por baixo de tudo — o mapa cobre o que roda DENTRO dela; isto é sobre ela mesma
ItemDetalhe
VM Oracle — disco/memória/uptimedisco 74.3% livre (143.8GB de 193.6GB) · memoria 80% livre (18.8GB de 23.4GB) · uptime 105.6 dias
Oracle ADB — SafeFlowAIDB (prod)ping OK (HTTP 200)
Oracle ADB — SAFEFLOWAIBSTG (staging)ping OK (HTTP 200)

As camadas — fluxo do tráfego (micro)

Clique para abrir. A ordem é a do tráfego: paciente no topo, dado no fundo. Layout fixo — o que muda é só o semáforo.

01 Cloudflare DNSResolve o nome antes de qualquer coisa acontecer Estavel

O que roda aqui

Todos os subdomínios em modo cinza (DNS-only).

A regra que não se quebra

Nuvem laranja (proxy) quebra webhook e SSL do Dify, n8n e Evolution. Nunca ligar.

Sintoma quando quebra

  • Domínio não resolve
  • Erro 525 no handshake SSL

O comando

dig safeflowai.com.br +short
02 Nginx Proxy ManagerO gargalo de tudo — e o único ponto único de falha Estavel

Por que ele é crítico

É o único container nas três redes. O n8n-app vive isolado em safeflow-n8n_default; o Evolution em evolution-api-claude_default. Eles só se alcançam através dele.

O que isso significa

Se o NPM cair, o n8n perde o Dify. Os agentes param de responder mesmo estando de pé.

A armadilha conhecida

O NPM cacheia DNS interno. Depois de todo redeploy do Dify, o IP muda e o NPM continua batendo no velho — 502 em tudo.

A correção

Reiniciar o safeflow-nginx depois de qualquer redeploy do Dify. Sempre.

curl -I https://dify.safeflowai.com.br
03 DifyOnde os agentes pensam. 13 apps, um container doente Atencao

O que roda aqui

  • dify-api · dify-web · dify-worker
  • postgres · redis · weaviate (vetores do RAG)
  • plugin_daemon · sandbox

O sandbox (dívida vigiada, não crítica)

104 dias em crash-loop (149644 reinícios). Nenhum agente publicado usa Code node — verificado direto no Postgres, não por suposição. Fica amarelo permanente: se algum dia isso mudar, vira crítico sozinho.

A regra do RAG

Refragmentar base existente corrompe os vetores em silêncio. Sempre deletar e recriar.

Sintoma quando quebra

  • 401 persistente após login
  • 502 — cache DNS do NPM (camada 02)
  • Agente responde vazio — sandbox
04 n8nA orquestração. 10 workflows publicados Estavel

Os dois bugs que sempre voltam

  • Objeto inteiro no specifyBody:"json" — vai como string literal
  • Texto multilinha do agente sem JSON.stringify — quebra o JSON

A guerra UI × PATCH

PATCH via REST grava no banco mas não recarrega o runner. Salvar pela UI aberta reverte o PATCH. Fechar a aba — aplicar — reabrir — publicar.

05 Evolution APIA ponte com o WhatsApp. E o maior risco de produto Estavel

O que ele é

Baileys — biblioteca não-oficial. Não é a API oficial da Meta.

Por que isso importa mais que técnica

O número de WhatsApp da clínica é a base de pacientes dela. É risco de reputação, não de infra.

06 DadosOnde tudo vive — e o que hoje é copiado pra fora Estavel

O que está guardado onde

  • Notion — leads, onboarding, pacientes, histórico
  • Postgres (Dify) — agentes, prompts, bases RAG
  • Postgres (n8n) — os workflows

Backup — 2026-09-11 03:00

local: /backups/20260911-030001 · R2: 20260911-030001

07 PortainerA única porta. SSH está fechada em definitivo Estavel

A regra permanente

A porta 22 da Oracle está bloqueada. Tudo passa pela API do Portainer, endpoint /api/endpoints/3/.

A regra que nasceu de um erro

Nunca editar arquivo à mão dentro de container servido por repo versionado.

Quando a dona liga reclamando

A queixa nunca chega em linguagem de container. Chega assim.

A paciente WhatsApp da clínica

"Mandei mensagem e ninguém respondeu."

Evolutionn8nDifyNotion
Quem atende

Vendedor, Pré e Pós-procedimento (Haiku) · Luna no D7

Onde olhar primeiro

Evolution. Se o chip desconectou ou foi banido, nenhum agente alcança ninguém.

A dona WhatsApp dela, chip próprio

"A Íris não me respondeu."

Evolutionn8nNotionDify
Quem atende

Íris (clínico) e Cora (regulatório), ambas Sonnet · Expert e Elite

Onde olhar primeiro

O roteador exige estagio=ativo. Se mudou, ela cai no canal restrito — e o silêncio parece falha, mas é a regra funcionando.

A dona Navegador

"O painel não abre."

ProxyDashboardn8nNotion
O que ela vê

Login por CNPJ e senha, validado no servidor.

Onde olhar primeiro

É o único ponto que não passa pelo Evolution.

A conta que o mapa não fazia

O Evolution é, ao mesmo tempo, o ponto de contato mais crítico e o componente mais frágil.

Se o Evolution cair, a clínica inteira fica muda e a dona vai atribuir isso à SafeFlowAI, esteja a culpa onde estiver.

O inventário completo (macro) — doc × máquina

Aqui não é sobre fluxo de request. É sobre o que existe versus o que o contrato (esperado.json) diz que deveria existir. Inclui tudo — mesmo o que nunca aparece no caminho do tráfego.

Containers

21 esperados no contrato — comparados contra o inventário lido agora
NomeImagemEstado realNota
dify-api-1langgenius/dify-api:1.14.1running · sha256:cd8e96cab6b5c784b33a50bfe77d8d2f61343a91f1be753ec490a8ed802d32b1
dify-web-1langgenius/dify-web:1.14.1running · sha256:62658ad010ac42a443ea4ac052d57538efd54a502e069d4da183f1f9e302f968
dify-db_postgres-1postgres:15-alpinerunning · sha256:1c52f5ad23db5d7648a63634444af76de48e63b860fccbe3e3a5458b2812eaed
dify-redis-1redis:6-alpinerunning · sha256:5cb97148754ce2ad8a8364a1c0fb266d355d203dde69a75656129fee4d9b73da
dify-weaviate-1semitechnologies/weaviate:1.27.0running · sha256:53fa576934f8e2c9130dc3a61a0f9b7d9330fe0ff456ccb37db05d03b700abc9
dify-worker-1langgenius/dify-api:1.14.1running · sha256:cd8e96cab6b5c784b33a50bfe77d8d2f61343a91f1be753ec490a8ed802d32b1
dify-worker_beat-1langgenius/dify-api:1.14.1running · sha256:cd8e96cab6b5c784b33a50bfe77d8d2f61343a91f1be753ec490a8ed802d32b1
dify-plugin_daemon-1langgenius/dify-plugin-daemon:0.6.0-localrunning · sha256:f200b00544f83ed69ea11d82996819be43415ad33e5c2b37436667df152ef6c8
safeflow-nginxjc21/nginx-proxy-manager:latestrunning · sha256:2aa69b382a384b676c0d4f1d6f2eac40ecd478fcf7af1cfb3f9f1d3cd0c81e12SPOF
portainerportainer/portainer-ce:latestrunning · sha256:1ae8e65d50ca5498cb2c33e617495a1e3ef245b0d2392b4a44c70ae09b822891
ollamaollama/ollama:latestrunning · sha256:99262b6b2898e1d40907883e316f31e350e0ee6316ccae6127ac5a9feeacade2
safeflow-sitenginx:alpinerunning · sha256:54f2a904c251d5a34adf545a72d32515a15e08418dae0266e23be2e18c66fefa
safeflow-dashboardnginx:alpinerunning · sha256:54f2a904c251d5a34adf545a72d32515a15e08418dae0266e23be2e18c66fefa
safeflow-mapanginx:alpinerunning · sha256:54f2a904c251d5a34adf545a72d32515a15e08418dae0266e23be2e18c66fefa
safeflow-experiencianginx:alpinerunning · sha256:54f2a904c251d5a34adf545a72d32515a15e08418dae0266e23be2e18c66fefa
n8n-appdocker.n8n.io/n8nio/n8n:latestrunning · sha256:1872cce3548bf4dcfe5aceaf3d9293f4499635823fbdea0ee726bd222d2e44b8
n8n-dbpostgres:16running · sha256:5a65324fe84dc41709ff914e90b07f3e2f577073ed27bf917d4873aca0c9ec51
safeflow_ferrari_8081atendai/evolution-api:v1.8.6running · sha256:fc4a1873d2c0ceedb67641e5b11986c82c3dbb363343f74857f2e5f4a5a708fe
radar-governancapython:3.12-alpinerunning · sha256:6d43704baacd1bfbe7c295d7f13079d5d8104ed33568873133f8fc69980419df
uptime-kumalouislam/uptime-kuma:1running · sha256:3d632903e6af34139a37f18055c4f1bfd9b7205ae1138f1e5e8940ddc1d176f9
dify-sandbox-1langgenius/dify-sandbox:0.2.15104 dias em crash-loop, 149644 restarts. Nenhum code node encontrado — gatilho inativo.
Nao catalogado — rodando na maquina, fora do esperado.json, fora das exclusoes:
  • safeflow-esteira
  • safeflow-previa

Volumes

13 esperados
NomeTipo
evolution-api-claude_evolution_instances_finalvolume
evolution-api-claude_evolution_store_finalvolume
ollama_datavolume
portainer_datavolume
safeflow-n8n_n8n_db_storagevolume
safeflow-n8n_n8n_storagevolume
safeflow-nginx_npm_datavolume
safeflow-nginx_npm_letsencryptvolume
vol_dashboard_htmlvolume
vol_experiencia_htmlvolume
vol_mapa_htmlvolume
vol_site_htmlvolume
bind_mount_difybind_mount

Subdomínios · SSL

aviso se validade < 15 dias
HostExpira emDias restantes
safeflowai.com.brDec 4 12:29:10 2026 GMT84
dashboard.safeflowai.com.brNov 22 12:29:09 2026 GMT72
mapa.safeflowai.com.brOct 11 19:06:08 2026 GMT30
experiencia.safeflowai.com.brDec 6 16:29:09 2026 GMT86
n8n.safeflowai.com.brNov 10 12:29:15 2026 GMT60
dify.safeflowai.com.brOct 27 15:29:05 2026 GMT46
evolution.safeflowai.com.brNov 13 11:29:09 2026 GMT63

Apps Dify — 13

produção (verde/vermelho) e incompleto (círculo vazio, não alarma)
NomeEixoID
Sofia - Consultora Comercial SFAIB2Bb1915426-25d5-4017-9f7e-d3bf9f5c02ec
Bella - Onboarding - ImplementaçãoB2B00a6595a-58ba-4cd4-b15e-69bca069fce3
Bella - Qualifica - ImplementaçãoB2Bcb0e43ae-b56b-403a-95b8-ecef489ae5e5
Zoe - Gerente de SucessoB2Bf42ffffc-1977-41c2-923d-f2965caa0495
Vendedor IAB2Cb626bbe9-47af-455d-9f57-5e857ae7bd92
Pré-Procedimento IAB2C347b6640-1356-4607-89ac-d1b78d212f27
Pós-Procedimento IAB2C0f8d1c06-b664-48df-9996-d541cbcdd6e2
Íris - Segunda Opinião TécnicaB2B-clinico31a9b8ac-b57a-44ae-b3cf-18f77b769dd2
Luna - Pós-ProcedimentoB2Cc3af0a51-46e6-4c3b-9f08-83c3f4873c3e
Cora - Conformidade RegulatóriaB2B77c3ae99-23e1-4ce9-9a89-53e0fea25af4
Caixa IAindefinido32b7ac11-5209-4dac-b588-214d725327c2
Conteúdo Estático IAindefinidoa12cad9a-37c1-4a22-9b71-cdd77c04ffbd
Conteúdo Vídeo IAindefinido4c0418ea-a18a-4ca0-b858-fb798d03e839

Workflows n8n ativos — 10

contrato por identidade (ID) — troca de conteúdo com contagem igual também acende
NomeID
qualifica-completoKLPLu9e7jfDExn1F
Iris WebApp Proxy (Experiencia Parceiras)00f4QV3YPpbkFjYW
Íris Roteador — canal profissional SFAIzF7voynJsUlVkrtd
valida-dashboardngswIxAc6SnOWM3w
Roteador B2C — trio (Vendedor/Pré/Pós)8cVE18NYZsIDzhrg
bella-handoffjwiEF6jY1Pc4XDYK
notion-gravar8FWajpGTuwv1zvR5
Oracle ADB Keep-Alive (prod + staging) + AlertacHnxsrMvswZP4pSC
Sofia WebApp ProxyXaL3anyq7gMr7V3Z
Cora Roteador — canal compliance SFAIvIIRTQiAgW4YQphe

Backup — 2026-09-11 03:00

local: /backups/20260911-030001 · R2: 20260911-030001

A arquitetura por trás

O mesmo sistema, visto de cima. Tudo orbita o proxy — porque é o único container que alcança as três redes.

Proxy
reverso
O centro. Nas três redes
DNS
Cloudflare, sempre cinza
Dify
Onde os agentes pensam
Dados
Notion, Postgres, vetores
Ollama
Llama local
n8n
Rede isolada
Evolution
Rede isolada
Portainer

Por fora de tudo

O Portainer não orbita o proxy — é a porta de manutenção, e a única. Não existe SSH.

Toque em qualquer orbe.