Quando algo cai, você desce esta página de cima para baixo até encontrar a camada que parou. Cada uma diz o que faz, como está agora, e o comando exato que revela o problema. Mais abaixo: o que a clínica sente quando cada uma delas falha.
Clique para abrir. A ordem é a do tráfego: paciente no topo, dado no fundo.
Todos os subdomínios: site, dashboard, experiencia, dify, n8n, evolution. Todos em modo cinza (DNS-only).
Nuvem laranja (proxy) quebra webhook e SSL do Dify, n8n e Evolution. Já foi testado. Nunca ligar.
É 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.
Se o NPM cair, não é só o site que sai do ar. O n8n perde o Dify. Os agentes param de responder mesmo estando de pé.
O NPM cacheia DNS interno. Depois de todo redeploy do Dify, o IP do container muda e o NPM continua batendo no velho — 502 em tudo.
Reiniciar o safeflow-nginx depois de qualquer redeploy do Dify. Sempre.
dify-api · dify-web · dify-workerpostgres · redis · weaviate (vetores do RAG)plugin_daemon · sandboxO dify-sandbox-1 está em restart loop. É o container que executa nó de código dentro de um agente. Se algum agente publicado usar Code node, ele quebra silenciosamente.
Refragmentar base existente corrompe os vetores em silêncio. Sempre deletar e recriar. Config: separador \n\n, chunk 1024, overlap 200, nomic-embed-text, Top-K 3.
__Host-8cVE18NY · Roteador B2C (trio)zF7voynJ · ÍrisvIIRTQiA · CoraKLPLu9e7 · qualifica-completo (Bella)ngswIxAc · valida-dashboard (login)XaL3anyq / 00f4QV3Y · proxies Sofia e Íris webcHnxsrMv · keep-alive do Oracle ATPspecifyBody:"json" — vai como string literalJSON.stringify — quebra o JSONPATCH via REST grava no banco mas não recarrega o runner. Salvar pela UI aberta reverte o PATCH. Fechar a aba — aplicar — reabrir — publicar.
Baileys — biblioteca não-oficial, versão v1.8.6. Não é a API oficial da Meta.
O número de WhatsApp da clínica é a base de pacientes dela. Se o Baileys causar banimento, a culpa recai na SafeFlowAI. É risco de reputação, não de infra.
Verificação Meta Business — Cloud API oficial (que protege o número). Reenviada em 13/07, aguardando re-crawl.
sendText exige number + textMessage.text aninhado. Campo text plano retorna "instance requires textMessage".
Nenhum deles tem backup automatizado. O script safeflow-backup.sh foi escrito em 09/05 — com runbook de restauração completo — e nunca foi instalado no cron.
Os 10 workflows, os 9 agentes e todas as bases RAG somem. Reconstrução do zero. Com cliente pagante, isso não é aceitável.
CNPJ é a chave de tenant em toda tabela lida em runtime. Tipo texto, 14 dígitos, sem máscara. Relation nunca serve como filtro de automação.
Como se entra na máquina — e como não se entra.
A porta 22 da Oracle está bloqueada. Não existe SSH. Não existe docker CLI no ambiente do Code. Tudo passa pela API do Portainer.
É /api/endpoints/3/, não /1/. O endpoint 1 não existe nesta instalação.
O volume monta read-only. Método: container auxiliar temporário montando o mesmo volume em RW — grava — destrói o auxiliar.
Nunca editar arquivo à mão dentro de container servido por repo versionado. Em 09/07 isso deixou o container divergente do git. Deploy = build do main sobrescrevendo o arquivo inteiro.
A queixa nunca chega em linguagem de container. Chega assim. Estas são as três únicas superfícies onde a clínica encosta na stack — tudo o mais é invisível para ela.
"Mandei mensagem e ninguém respondeu."
Vendedor, Pré e Pós-procedimento (Haiku) · Luna no D7
Evolution. Se o chip desconectou ou foi banido, nenhum agente alcança ninguém — a clínica fica muda e você não vê erro em lugar nenhum.
"A Íris não me respondeu."
Íris (clínico) e Cora (regulatório), ambas Sonnet · Expert e Elite
O roteador cruza o telefone dela com profissionais_iris e exige estagio=ativo. Se o estágio mudou, ela cai no canal restrito — e o silêncio parece falha, mas é a regra funcionando.
"O painel não abre."
Login por CNPJ e senha, validado no servidor. Depois, a ficha viva da clínica dela.
É o único ponto que não passa pelo Evolution. Se o WhatsApp caiu mas o painel abre, o problema está isolado no Evolution.
O Evolution é, ao mesmo tempo, o ponto de contato mais crítico e o componente mais frágil. Duas das três superfícies passam por ele — e ele é Baileys, sem failover, com risco de banimento do número.
Traduzindo para o telefone tocando: se o Evolution cair, a clínica inteira fica muda e a dona vai atribuir isso à SafeFlowAI, esteja a culpa onde estiver. Nenhum outro container tem esse alcance.
O mesmo sistema, visto de cima. Tudo orbita o proxy — porque é o único container que alcança as três redes. As linhas vermelhas tracejadas são as redes isoladas: elas só se falam pelo centro.
O Portainer não orbita o proxy — ele não faz parte do fluxo. É a porta de manutenção, e a única: a porta 22 da Oracle está fechada em definitivo. Não existe SSH.
Toque em qualquer orbe.