Plataforma de deploy para servidores MCP e sites integrada ao catálogo
O autor do Unyly, um catálogo de servidores MCP, adicionou a ele uma plataforma completa de deploy, permitindo que usuários implantem repositórios GitHub como sites ou servidores MCP em um subdomínio. O sistema gera automaticamente Dockerfiles, executa contêineres com limitações e lida com roteamento, healthchecks e auto-deploys via webhooks. O artigo detalha a arquitetura e compartilha armadilhas encontradas durante o desenvolvimento.
O autor construiu anteriormente um catálogo de servidores MCP no Habr, agregando 80 mil entradas de nove fontes. Os usuários perguntaram onde executar os servidores, já que muitos são repositórios do GitHub que exigem configuração e hospedagem. Para resolver isso, o autor adicionou uma seção de deploy ao Unyly, permitindo que os usuários conectem um repositório do GitHub e obtenham um projeto ativo em slug.unyly.org com rebuild automático a cada push. Suporta sites estáticos, builds de frontend, Next.js e servidores MCP em Node e Python. O fluxo de deploy envolve um webhook do GitHub para uma API Next.js com verificação HMAC, enfileiramento no SQLite, um worker que clona o repositório, gera um Dockerfile baseado no tipo de projeto, constrói e executa o contêiner com limites de recursos, e um proxy reverso na porta 3900 roteando pelo cabeçalho Host. O proxy e o worker são processos separados sob pm2 para evitar bloqueios. A geração de Dockerfile inclui receitas para servidores MCP Node (envolvidos em supergateway para HTTP), servidores MCP Python, sites estáticos, builds de frontend e Next.js. Os contêineres são executados com limites de memória, CPU e processos, e as capabilities são removidas, exceto para sites nginx. Healthchecks verificam o status HTTP para sites e realizam um initialize JSON-RPC real para servidores MCP. O roteamento usa um server_name regex com lookahead negativo para excluir subdomínios de serviço. O auto-deploy inclui previews de pull requests que são construídos e limpos automaticamente. O console de gerenciamento está em deploy.unyly.org, com plano gratuito permitindo um projeto e Pro dez. O autor compartilha armadilhas: o docker build síncrono bloqueando o event loop, printf no Dockerfile quebrando o nginx, subdomínio curinga capturando subdomínios de administração, problemas de cookies entre subdomínios resolvidos com uma ponte SSO, e a necessidade de envolver servidores stdio, pois eles não podem ser acessados via HTTP sem isso.
Fonte: Habr — хаб ИИ —
original
