[{"data":1,"prerenderedAt":138},["ShallowReactive",2],{"seo-verification":3,"blog-desplegar-aplicacion-go-gin-en-un-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-desplegar-aplicacion-go-gin-en-un-vps-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":82,"ctaBody":83,"ctaButton":84,"ctaUrl":85,"relatedPosts":86},51,"desplegar-aplicacion-go-gin-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"deployer-golang-vps","deploying-a-go-gin-application-on-a-vps","نشر-تطبيق-go-gin-على-خادم-vps","Desplegar una aplicación Go (Gin) en un VPS","Despliegue una API Go (Gin) en un VPS Cloud: binario estático, Docker scratch, reverse proxy y SSL. Tutorial para desarrolladores Go.",4,0,false,"2026-04-30T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},"Desarrollo","developpement","bg-warning\u002F10 text-warning","dev",[28],{"id":17,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-golang-vps-poster.svg",{"categorySlug":33,"appSlug":34},"desarrollo","golang","Go compila en un único binario estático sin dependencias: es el lenguaje ideal para el self-hosting. Una API Gin cabe en unos pocos megabytes de RAM y arranca al instante. Veamos cómo ponerla en producción en un VPS, del binario al certificado SSL.",[37,41,51,54,76,79],{"type":38,"title":39,"body":40},"h2","Por qué autoalojar una API Go en un VPS","A diferencia de Java o Node, una aplicación Go (con el framework Gin) se compila en un único binario estático que no necesita ni intérprete, ni runtime, ni biblioteca compartida. Puede literalmente dejar el binario en un VPS y ejecutarlo. Esta ligereza lo cambia todo para el autoalojamiento: una API Gin funciona con 15 a 30 MB de RAM y arranca en unos milisegundos; el rendimiento que sostiene depende de lo que haga su handler, y se mide sobre su propia carga. En un VPS, aprovecha al máximo esta eficiencia: un servidor de gama de entrada basta para servir una carga que los lenguajes interpretados exigirían en una máquina mucho más grande. También evita la complejidad de las imágenes Docker voluminosas: una imagen `scratch` de 10 MB es suficiente.",{"type":42,"title":43,"items":44},"ul","Beneficios concretos",[45,46,47,48,49,50],"Binario estático único: ningún runtime que instalar, despliegue mediante una simple copia de archivo","Huella de memoria mínima (15-30 MB) que permite saturar de peticiones un VPS pequeño","Imagen Docker `scratch` o `distroless` de 10-15 MB: builds y pulls casi instantáneos","Arranque en milisegundos: redespliegues y reinicios sin interrupción perceptible","Concurrencia nativa mediante goroutines: un solo vCPU gestiona miles de conexiones simultáneas","Superficie de ataque reducida: sin intérprete ni paquetes de sistema que parchear",{"type":38,"title":52,"body":53},"Requisitos de hardware y software","Aquí es donde Go brilla: una API Gin sin base de datos cabe en un VPS de 1 vCPU y 1 GB de RAM, y se mantiene holgada. Con PostgreSQL en la misma máquina, apunte a 2 GB para estar cómodo. Ni siquiera necesita Go en el servidor si compila en CI o mediante compilación cruzada local (`GOOS=linux GOARCH=amd64 go build`). Instale Docker si lo contenedoriza, o nada en absoluto si lanza el binario directamente bajo systemd. Apunte un dominio `api.mondomaine.com` a la IP del VPS mediante un registro A. 5 GB de disco bastan de sobra.",{"type":55,"title":56,"steps":57},"steps","Despliegue paso a paso",[58,61,64,67,70,73],{"title":59,"body":60},"Compilar el binario para Linux (compilación cruzada)","Desde su equipo, ejecute `CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app .`. El flag `CGO_ENABLED=0` garantiza un binario 100 % estático, imprescindible para una imagen `scratch`. Obtiene un ejecutable `app` listo para funcionar en cualquier Linux.",{"title":62,"body":63},"Construir una imagen Docker mínima","Redacte un Dockerfile multi-stage: una etapa `golang:1.22-alpine` para compilar, y después `FROM scratch`, que copia únicamente el binario y los certificados CA (`COPY --from=builder \u002Fetc\u002Fssl\u002Fcerts ...`). La imagen final pesa una decena de MB. Exponga el puerto 8080.",{"title":65,"body":66},"Configurar Gin para producción","Ponga Gin en modo release con `gin.SetMode(gin.ReleaseMode)` o la variable `GIN_MODE=release` para desactivar los registros detallados de depuración. Lea el puerto y los secretos desde el entorno (`os.Getenv`), nunca escritos en duro en el código.",{"title":68,"body":69},"Lanzar el contenedor","Arranque con `docker run -d --restart unless-stopped -p 127.0.0.1:8080:8080 -e GIN_MODE=release monapp:latest`. Al enlazar en `127.0.0.1`, solo expone Gin al reverse proxy local, no directamente a Internet.",{"title":71,"body":72},"Poner Nginx o Caddy como frontal","Configure un reverse proxy hacia `http:\u002F\u002F127.0.0.1:8080`. Caddy resulta especialmente adecuado aquí: con una simple directiva `reverse_proxy localhost:8080`, provisiona automáticamente el certificado HTTPS sin Certbot.",{"title":74,"body":75},"Asegurar con TLS","Con Caddy, el HTTPS es automático en cuanto el dominio apunta al VPS. Con Nginx, ejecute `certbot --nginx -d api.mondomaine.com`. Compruebe después la cadena TLS con `curl -I https:\u002F\u002Fapi.mondomaine.com`.",{"type":77,"body":78},"tip","Active el profiling `pprof` de Go detrás de un endpoint protegido: `import _ \"net\u002Fhttp\u002Fpprof\"` expuesto en un puerto interno accesible únicamente mediante un túnel SSH. Obtiene flame graphs de CPU y de memoria en producción real sin sobrecarga apreciable. Piense también en compilar con `-ldflags=\"-s -w\"` para reducir un 30 % el tamaño del binario eliminando las tablas de depuración.",{"type":38,"title":80,"body":81},"Desplegar Go (Gin) en un clic desde el Marketplace ServOrbit","El Marketplace ServOrbit ofrece una plantilla Go (Gin) Stack preconfigurada: Go 1.22+ desde el binario oficial go.dev, Nginx y PostgreSQL 16 se instalan automáticamente en su VPS desde el pedido. Sin sesión SSH para la instalación de base — llega directamente a la etapa de compilar su proyecto y subir el binario. La ficha del marketplace contiene las especificaciones exactas, los casos de uso y una guía de primera conexión.","Despliegue su Go (Gin) Stack en unos minutos","La plantilla Go (Gin) Stack de ServOrbit instala Go 1.22+, Nginx y PostgreSQL 16 en su VPS. Haga la compilación cruzada de su proyecto y despliegue el binario de inmediato.","Desplegar Go (Gin) Stack","\u002Fmarketplace\u002Fdesarrollo\u002Fgolang",[87,105,122],{"id":88,"slug":89,"slugs":90,"title":94,"excerpt":95,"readTime":96,"views":97,"isPinned":19,"publishedAt":98,"updatedAt":21,"category":99,"categories":100,"featuredImage":29,"bgImage":30,"posterImage":102,"relatedSolution":103},45,"desplegar-una-aplicacion-fastapi-en-un-vps",{"fr":91,"en":92,"ar":93,"es":89},"deployer-fastapi-vps","deploy-a-fastapi-application-on-a-vps","نشر-تطبيق-fastapi-على-vps","Desplegar una aplicación FastAPI en un VPS","Despliegue FastAPI en un VPS con Uvicorn, Gunicorn, Nginx y SSL. Guía para desarrolladores Python que quieren una API async autoalojada.",3,1,"2026-05-06T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[101],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fdeployer-fastapi-vps-poster.svg",{"categorySlug":33,"appSlug":104},"fastapi",{"id":106,"slug":107,"slugs":108,"title":112,"excerpt":113,"readTime":96,"views":114,"isPinned":19,"publishedAt":115,"updatedAt":21,"category":116,"categories":117,"featuredImage":29,"bgImage":30,"posterImage":119,"relatedSolution":120},44,"desplegar-una-aplicacion-django-en-un-vps",{"fr":109,"en":110,"ar":111,"es":107},"deployer-django-vps","deploy-a-django-application-on-a-vps","نشر-تطبيق-django-على-vps","Desplegar una aplicación Django en un VPS","Despliegue Django en un VPS: Gunicorn, Nginx, PostgreSQL, Docker y SSL. Guía completa para desarrolladores Python que quieren autoalojar.",5,"2026-05-07T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[118],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":33,"appSlug":121},"django",{"id":123,"slug":124,"slugs":125,"title":129,"excerpt":130,"readTime":96,"views":18,"isPinned":19,"publishedAt":131,"updatedAt":21,"category":132,"categories":133,"featuredImage":29,"bgImage":30,"posterImage":135,"relatedSolution":136},43,"desplegar-una-aplicacion-nodejs-en-un-vps",{"fr":126,"en":127,"ar":128,"es":124},"deployer-nodejs-vps","deploy-a-nodejs-application-on-a-vps","نشر-تطبيق-nodejs-على-vps","Desplegar una aplicación Node.js en un VPS","Despliegue una aplicación Node.js en producción en un VPS: PM2, reverse proxy Nginx, SSL Let's Encrypt y arranque automático con el sistema.","2026-05-08T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[134],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":33,"appSlug":137},"nodejs-stack",1789665015007]