Deployplatform voor MCP-servers en sites ingebouwd in de catalogus
De auteur van Unyly, een catalogus van MCP-servers, heeft er een volledig deployplatform aan toegevoegd, waarmee gebruikers GitHub-repositories kunnen deployen als websites of MCP-servers op een subdomein. Het systeem genereert automatisch Dockerfiles, draait containers met beperkingen en handelt routing, healthchecks en auto-deploys via webhooks af. Het artikel beschrijft de architectuur en deelt valkuilen die tijdens de ontwikkeling zijn tegengekomen.
De auteur bouwde eerder een catalogus van MCP-servers op Habr, met daarin 80 duizend items afkomstig uit negen bronnen. Gebruikers vroegen zich af waar ze de servers konden draaien, aangezien veel ervan GitHub-repositories zijn die configuratie en hosting vereisen. Om dit aan te pakken voegde de auteur een deploy-sectie toe aan Unyly, waarmee gebruikers een GitHub-repository kunnen koppelen en een live project krijgen op slug.unyly.org, met automatische rebuild bij elke push. Het ondersteunt statische sites, frontend-builds, Next.js en MCP-servers op Node en Python. Het deploy-proces omvat een GitHub-webhook naar een Next.js API met HMAC-verificatie, die in SQLite in de wachtrij plaatst, een worker die de repo kloont, een Dockerfile genereert op basis van het projecttype, het bouwt en draait in een container met resource-limieten, en een reverse proxy op poort 3900 die routeert op basis van de Host-header. De proxy en worker zijn aparte processen onder pm2 om blokkering te voorkomen. Dockerfile-generatie bevat recepten voor Node MCP-servers (verpakt in supergateway voor HTTP), Python MCP-servers, statische sites, frontend-builds en Next.js. Containers draaien met beperkingen op geheugen, CPU en processen, en capabilities worden verwijderd behalve voor nginx-sites. Healthchecks controleren de HTTP-status voor sites en voeren een echte JSON-RPC-initialisatie uit voor MCP-servers. Routing gebruikt een regex-server_name met negatieve lookahead om service-subdomeinen uit te sluiten. Automatische deploy omvat previews van pull requests die automatisch worden gebouwd en opgeruimd. De beheerconsole is te vinden op deploy.unyly.org, met een gratis tier voor één project en Pro voor tien. De auteur deelt valkuilen: synchrone docker-build die de event loop blokkeert, printf in Dockerfile dat nginx breekt, wildcard-subdomein dat admin-subdomeinen onderschept, cross-subdomain cookie-problemen opgelost met een SSO-bridge, en de noodzaak om stdio-servers te wrappen omdat ze anders niet via HTTP toegankelijk zijn.
Bron: Habr — хаб ИИ —
origineel
