From ca6c56c4d40e804bcc57a2f31250d1cad6543e54 Mon Sep 17 00:00:00 2001 From: Emanuel Almeida Date: Thu, 30 Jul 2026 22:58:47 +0100 Subject: [PATCH] =?UTF-8?q?infraestrutura:=20actualiza=20mapa=20de=20porta?= =?UTF-8?q?s=20do=20gateway=20e=20regras=20de=20opera=C3=A7=C3=A3o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Corrige a próxima porta livre (a 3188 documentada estava ocupada e causou um deploy falhado), regista o router youtube e o ssh-unified, e acrescenta três regras: backups do nginx nunca em sites-enabled/, cruzar sempre ss -tlnH com as portas roteadas, e contar ~40s de arranque nos MCPs Python/FastMCP. --- infraestrutura/skills/gateway-check/SKILL.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/infraestrutura/skills/gateway-check/SKILL.md b/infraestrutura/skills/gateway-check/SKILL.md index 1eb2e38..f6942dd 100644 --- a/infraestrutura/skills/gateway-check/SKILL.md +++ b/infraestrutura/skills/gateway-check/SKILL.md @@ -35,7 +35,6 @@ Gestao e health check dos MCPs no servidor gateway (VM 103, gateway.descomplicar | 2 | mcp-wikijs | 3152 | /v1/wikijs/mcp | P3 | | 5 | mcp-moloni | 3158 | /v1/moloni/mcp | P2 | | 6 | mcp-youtube-research | 3157 | /v1/youtube-research/mcp | P3 | -| 7 | mcp-youtube | 3187 | /v1/youtube/mcp | P3 | ### systemd (24 services) @@ -64,9 +63,15 @@ Gestao e health check dos MCPs no servidor gateway (VM 103, gateway.descomplicar | presenton-mcp | 3182 | /v1/presenton/mcp | supergateway | P3 | | cwp-mcp | 3183 | /v1/cwp/mcp | supergateway | P3 | | design-engine-mcp | 3184 | /v1/design-engine/mcp | supergateway | P3 | +| mcp-youtube-router | 3198 | /v1/youtube/mcp | Python/Starlette | P3 | +| mcp-youtube | 3187 | (nenhuma — upstream interno) | Python/FastMCP | P3 | +| mcp-youtube-desc | 3199 | (nenhuma — upstream interno) | Python/FastMCP | P3 | +| ssh-unified | 3192 | /v1/ssh-unified/mcp | Python/FastMCP | P3 | **Prioridades:** P1=critico (bloqueia trabalho) | P2=importante (degrada workflow) | P3=util -**Proxima porta livre:** 3188 +**Proxima porta livre:** 3185 (depois: 3186, 3201). **Verificar sempre** — este mapa +ficou desactualizado e a "3188" que aqui constava estava ocupada, causando um deploy falhado (30-07-2026): +`ss -tlnH` cruzado com `grep -oE "127.0.0.1:3[0-9]{3}" /etc/nginx/sites-enabled/mcp-gateway`. --- @@ -203,6 +208,13 @@ IP autorizado: `188.251.199.30`. Actualizar em `/etc/nginx/sites-enabled/` se mu - **Sempre** reportar estado mesmo que tudo OK - **Sempre** testar endpoint apos restart - **Sempre** actualizar mapa de portas ao adicionar/remover MCPs +- **Nunca** guardar backups do nginx dentro de `sites-enabled/` — o include e por + wildcard, o backup passa a ser carregado e `nginx -t` falha com `duplicate log_format`, + quebrando *todo* o gateway. Backups vao para `/root/`. +- **Nunca** confiar no "proxima porta livre" deste ficheiro sem cruzar `ss -tlnH` com as + portas roteadas no nginx. +- **Contar** ~40s de arranque nos MCPs Python/FastMCP no gateway (import lento, I/O de + disco). Um probe imediato apos `systemctl start` da falso negativo — aguardar o bind. --- @@ -215,7 +227,9 @@ IP autorizado: `188.251.199.30`. Actualizar em `/etc/nginx/sites-enabled/` se mu Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar. ```jsonl -{"date":"","issue":"","fix":"","source":"user|auto"} +{"date":"2026-07-30","issue":"Backup do nginx criado em sites-enabled/ -> duplicate log_format mcp_audit -> nginx -t falhou para todo o gateway","fix":"Backups para /root/. Verificar com nginx -t apos remover.","source":"auto"} +{"date":"2026-07-30","issue":"Skill anunciava 3188 como proxima porta livre; estava ocupada -> deploy abortou","fix":"Cruzar ss -tlnH com grep 127.0.0.1:3XXX no nginx antes de escolher porta","source":"auto"} +{"date":"2026-07-30","issue":"Probe tools/list imediatamente apos systemctl start deu falso negativo (FastMCP demora ~40s a bindar)","fix":"Poll da porta com timeout antes do probe HTTP","source":"auto"} ``` *Adicionar nova linha após cada erro corrigido.*