[{"data":1,"prerenderedAt":214},["ShallowReactive",2],{"seo-verification":3,"blog-desplegar-aplicaciones-con-dokku-en-un-vps-ma-es":6,"promo-bar-likely":213},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-desplegar-aplicaciones-con-dokku-en-un-vps-ma-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":29,"intro":32,"sections":33,"ctaTitle":156,"ctaBody":157,"ctaButton":158,"ctaUrl":159,"relatedPosts":160},34,"desplegar-aplicaciones-con-dokku-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"deployer-avec-dokku","deploy-your-applications-with-dokku-on-a-vps","انشر-تطبيقاتك-باستخدام-dokku-على-خادم-vps","Desplegar sus aplicaciones con Dokku en un VPS","Guía completa de Dokku v0.35: instalación, buildpacks, variables de entorno, rollback, plugins postgres\u002Fredis\u002Fletsencrypt y resolución de errores frecuentes.",11,1,false,"2026-05-17T00:00:00+00:00","2026-10-18T21:57:59+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},3,"Despliegue","deploiement","bg-success\u002F10 text-success",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-avec-dokku-poster.svg","Dokku se presenta como «el PaaS más pequeño del mundo». Construido en torno a Docker y a los buildpacks de Heroku, ofrece una experiencia de despliegue por `git push` en un VPS modesto, sin interfaz pesada ni orquestador integrado. Esta guía va más allá de la instalación básica: cubre las variables de entorno, el rollback zero-downtime, los plugins esenciales y la resolución de los errores más frecuentes.",[34,38,50,53,75,78,81,84,147,150,153],{"type":35,"title":36,"body":37},"h2","Por qué elegir Dokku para su VPS","Donde otros PaaS incorporan una interfaz web y un orquestador completo, Dokku sigue siendo deliberadamente minimalista: se trata de un conjunto de scripts de shell que pilotan Docker. Usted envía su código con `git push dokku main`, Dokku detecta el lenguaje mediante los buildpacks de Heroku o un Dockerfile, construye la imagen y publica la aplicación. Todo se gestiona por línea de comandos, lo que lo hace extremadamente ligero y previsible.\n\nCapRover, Coolify y Easypanel ofrecen todos una interfaz gráfica, pero a un coste de memoria muy superior. CapRover recomienda 2 GB de RAM como mínimo; Coolify 4 también requiere 2 GB por su PostgreSQL integrado; Easypanel necesita 2 GB en cuanto hay un build activo. Dokku, en cambio, funciona desde 512 MB de RAM para una aplicación ligera y no añade ningún componente de control permanente.",{"type":39,"title":40,"items":41},"ul","Las ventajas concretas de Dokku",[42,43,44,45,46,47,48,49],"Huella de memoria mínima: funciona desde 512 MB de RAM para una app ligera, 1 GB con comodidad.","Despliegue por `git push`, como en Heroku, con detección automática del lenguaje mediante buildpacks.","Soporte nativo de buildpacks de Heroku (Node, Python, Ruby, Go, PHP…) y de Dockerfiles.","Plugins oficiales para PostgreSQL, MySQL, Redis y MongoDB, gestionados íntegramente por CLI.","Plugin Let's Encrypt para HTTPS automático con renovación integrada vía cron.","Zero-downtime deploys gracias a health checks configurables antes de la conmutación del contenedor.","Rollback instantáneo mediante `dokku tags` y `dokku deploy` sobre una imagen anterior.","Inyección automática de variables de conexión (DATABASE_URL, REDIS_URL) en el `plugin:link`.",{"type":35,"title":51,"body":52},"Requisitos dimensionados para Dokku","Dokku es el PaaS más económico en recursos de esta serie.\n\n**RAM.** 512 MB es suficiente para una aplicación ligera. Prevea 1 GB para un uso habitual y 2 GB en cuanto sus builds usen buildpacks (Node, Ruby, Python compilan en memoria) o aloje una base de datos en el mismo VPS. Para varias aplicaciones en paralelo con PostgreSQL, apunte a 4 GB.\n\n**CPU.** 1 vCPU es suficiente para aplicaciones ligeras. Las fases de build de buildpack son intensivas en CPU pero no bloquean el despliegue.\n\n**Disco.** Cuente con 20 GB de SSD mínimo.\n\n**Swap.** En un VPS de 1 o 2 GB de RAM, añada siempre 2 GB de swap para evitar que el OOM killer del kernel mate un build de Node o Ruby.\n\n**Sistema.** Ubuntu 22.04 LTS o 24.04 LTS recién instalado, sin Docker ni Nginx preinstalados. Los puertos 22 (SSH), 80 y 443 deben estar abiertos.\n\n**DNS.** Configure un dominio por aplicación o un dominio wildcard `*.your-domain.com` apuntando a la IP del VPS.",{"type":54,"title":55,"steps":56},"steps","Instalar Dokku v0.38.x y desplegar una primera aplicación",[57,60,63,66,69,72],{"title":58,"body":59},"Descargar y ejecutar el script oficial de arranque","En un Ubuntu 22.04 o 24.04 LTS recién instalado, descargue el script de instalación y ejecútelo:\n\n```\nwget -NP . https:\u002F\u002Fdokku.com\u002Fbootstrap.sh\nsudo DOKKU_TAG=v0.38.x bash bootstrap.sh\n```\n\nEl script instala Docker (si está ausente), Nginx y Dokku. La operación dura de dos a cinco minutos.",{"title":61,"body":62},"Configurar el dominio global y añadir su clave SSH","Defina el dominio raíz que Dokku usará para construir los subdominios de las aplicaciones:\n\n```\ndokku domains:set-global your-domain.com\n```\n\nA continuación, añada su clave SSH pública para autorizar los despliegues:\n\n```\ncat ~\u002F.ssh\u002Fid_ed25519.pub | ssh root@your-domain.com \"dokku ssh-keys:add admin\"\n```",{"title":64,"body":65},"Crear una aplicación y configurar el remote de Git","En el servidor, cree la aplicación objetivo:\n\n```\ndokku apps:create my-app\n```\n\nEn su equipo local, añada Dokku como remote de Git:\n\n```\ngit remote add dokku dokku@your-domain.com:my-app\n```\n\nDokku creará automáticamente el subdominio `my-app.your-domain.com`.",{"title":67,"body":68},"Aprovisionar una base de datos PostgreSQL","Instale el plugin oficial de PostgreSQL (una vez por servidor):\n\n```\ndokku plugin:install https:\u002F\u002Fgithub.com\u002Fdokku\u002Fdokku-postgres.git\n```\n\nCree una base de datos y enlácela con la aplicación:\n\n```\ndokku postgres:create my-db\ndokku postgres:link my-db my-app\n```\n\nEl `link` inyecta automáticamente la variable `DATABASE_URL` en el contenedor de la aplicación.",{"title":70,"body":71},"Desplegar la aplicación por primera vez","Desde su repositorio local, envíe a Dokku:\n\n```\ngit push dokku main\n```\n\nDokku detecta el lenguaje, descarga el buildpack correspondiente, construye la imagen Docker y arranca el contenedor. El proceso se muestra en tiempo real en el terminal.",{"title":73,"body":74},"Activar HTTPS con Let's Encrypt","Instale el plugin Let's Encrypt (una vez por servidor):\n\n```\ndokku plugin:install https:\u002F\u002Fgithub.com\u002Fdokku\u002Fdokku-letsencrypt.git\n```\n\nDefina el correo para las notificaciones y active el certificado:\n\n```\ndokku letsencrypt:set my-app email admin@your-domain.com\ndokku letsencrypt:enable my-app\n```\n\nActive la renovación automática:\n\n```\ndokku letsencrypt:cron-job --add\n```",{"type":35,"title":76,"body":77},"Gestionar varias aplicaciones y variables de entorno","Dokku gestiona cada aplicación en un contenedor aislado. Puede alojar tantas aplicaciones como soporte su VPS.\n\n**Variables de entorno.** Use `dokku config:set` para inyectar secretos o parámetros de configuración:\n\n```\ndokku config:set my-app NODE_ENV=production \\\n  SECRET_KEY=changeme\n```\n\n**Staging vs producción.** La práctica habitual es crear dos aplicaciones en el mismo servidor:\n\n```\ndokku apps:create my-app-staging\ndokku apps:create my-app-production\n```\n\n**Dominios personalizados.** Para asociar un dominio existente:\n\n```\ndokku domains:add my-app your-domain.com\n```",{"type":35,"title":79,"body":80},"Actualizaciones zero-downtime y rollback","Dokku gestiona el zero-downtime mediante checks de salud antes de la conmutación. Configure un fichero `CHECKS` en la raíz de su proyecto:\n\n```\nWAIT=10\nTIMEOUT=60\n\u002Fhealthz Application is up\n```\n\n**Tags y rollback.** Dokku conserva las imágenes Docker de despliegues anteriores como tags. Para revertir:\n\n```\ndokku tags:list my-app\ndokku tags:deploy my-app v3\n```\n\nPara crear un tag de seguridad antes de un despliegue arriesgado:\n\n```\ndokku tags:create my-app stable-before-migration\n```",{"type":35,"title":82,"body":83},"Plugins esenciales","**PostgreSQL.** El más utilizado. Comandos adicionales útiles: `dokku postgres:backup my-db` para un volcado manual, `dokku postgres:connect my-db` para acceso psql interactivo.\n\n**Redis.**\n\n```\ndokku plugin:install https:\u002F\u002Fgithub.com\u002Fdokku\u002Fdokku-redis.git\ndokku redis:create my-cache\ndokku redis:link my-cache my-app\n```\n\nInyecta la variable `REDIS_URL` en el contenedor.\n\n**Cron (planificador).** Cree un fichero `app.json` en la raíz de su proyecto:\n\n```json\n{\n  \"cron\": [\n    { \"command\": \"php artisan schedule:run\", \"schedule\": \"* * * * *\" }\n  ]\n}\n```",{"type":85,"title":86,"headers":87,"rows":92},"comparison","Dokku vs CapRover vs Easypanel — comparativa 2026",[88,89,90,91],"Criterio","Dokku 0.35","CapRover 1.x","Easypanel 2.x",[93,98,103,108,113,118,123,128,133,137,142],[94,95,96,97],"RAM en reposo","~100 MB (Nginx + daemon)","~400 MB (Swarm + supervisor)","~350 MB (Traefik + API)",[99,100,101,102],"Interfaz gráfica","No — solo CLI","Sí (panel web)","Sí (panel moderno)",[104,105,106,107],"Buildpacks","Heroku buildpacks (CNB)","captain-definition \u002F Docker","Nixpacks o Dockerfile",[109,110,111,112],"Despliegue Git","git push nativo","CLI caprover + webhook","Webhook GitHub \u002F GitLab",[114,115,116,117],"Plugins \u002F marketplace","~100 plugins oficiales","Catálogo One-Click (~150 apps)","Marketplace integrada (~200 apps)",[119,120,121,122],"Zero-downtime","Sí (fichero CHECKS)","Sí (rolling Docker Swarm)","Sí (Traefik labels)",[124,125,126,127],"Rollback","dokku tags:deploy","Reconstrucción desde imagen","Redespliegue desde Git",[129,130,131,132],"Multi-servidor","No nativo","Sí (Docker Swarm multi-nodo)","Sí (agentes remotos)",[134,135,136,135],"Kubernetes","No","No (solo Docker Swarm)",[138,139,140,141],"Licencia","MIT","Apache 2.0","Propietaria (plan gratuito)",[143,144,145,146],"Curva de aprendizaje","Baja (CLI sencilla)","Moderada","Baja (interfaz intuitiva)",{"type":148,"body":149},"tip","**Swap recomendado desde 1 GB de RAM.** En un VPS ligero, añada 2 GB de swap antes de cualquier otra cosa: un build de Node o Python sin swap es eliminado regularmente por el OOM killer.\n\n**Fichero CHECKS.** Sin este fichero, Dokku conmuta en cuanto arranca el contenedor, antes de que la aplicación esté lista para responder.\n\n**Rotación de logs.** Los logs de Docker crecen sin límite por defecto. Configure la rotación en `\u002Fetc\u002Fdocker\u002Fdaemon.json`:\n\n```json\n{\n  \"log-driver\": \"json-file\",\n  \"log-opts\": { \"max-size\": \"50m\", \"max-file\": \"3\" }\n}\n```",{"type":35,"title":151,"body":152},"Resolución de errores frecuentes","**`error: failed to push some refs` — permiso denegado.**\nCompruebe que su clave SSH está registrada: `dokku ssh-keys:list`. Si está ausente, añádala con `dokku ssh-keys:add admin \u003C ~\u002F.ssh\u002Fid_ed25519.pub`.\n\n**`! [remote rejected]` — hook pre-receive rechazado.**\nEste error indica un fallo de build en el lado de Dokku. Consulte los logs detallados con `dokku logs my-app`.\n\n**La aplicación devuelve 502 Bad Gateway.**\nCompruebe el estado del proceso: `dokku ps:report my-app`. Causa frecuente: la aplicación no escucha en el puerto declarado en el `Procfile`.\n\n**`letsencrypt:enable` falla — timeout del challenge HTTP-01.**\nEl desafío ACME requiere que el dominio resuelva a la IP del VPS antes de la activación. Verifique la propagación DNS: `dig +short my-app.your-domain.com`.\n\n**El build es eliminado por el kernel (OOM) — `Killed`.**\nEl OOM killer intervino por falta de memoria. Añada swap o migre a un VPS con 2 GB de RAM.",{"type":35,"title":154,"body":155},"Para ir más lejos","Dokku cubre el despliegue de aplicaciones de contenedor único en un VPS. Si su arquitectura evoluciona hacia varios servicios interdependientes, varias alternativas de la misma familia complementan este enfoque: CapRover añade una interfaz gráfica y un modo clúster Docker Swarm. Easypanel simplifica la gestión multi-servicio con Nixpacks y un marketplace de aplicaciones. Todas estas herramientas funcionan en un VPS Cloud de ServOrbit con Ubuntu LTS.","Ponga Dokku en producción en su VPS","Un VPS Cloud de ServOrbit con Ubuntu LTS, ligero y asequible, es el terreno ideal para Dokku y su flujo de despliegue por git push.","Empezar con un VPS Cloud","\u002Fvps-cloud",[161,181,197],{"id":162,"slug":163,"slugs":164,"title":168,"excerpt":169,"readTime":170,"views":171,"isPinned":19,"noindex":19,"publishedAt":172,"updatedAt":173,"category":174,"categories":175,"featuredImage":29,"bgImage":30,"posterImage":177,"relatedSolution":178},33,"desplegar-aplicaciones-con-caprover-en-un-vps",{"fr":165,"en":166,"ar":167,"es":163},"deployer-avec-caprover","deploy-your-applications-with-caprover-on-a-vps","انشر-تطبيقاتك-باستخدام-caprover-على-خادم-vps","Desplegar sus aplicaciones con CapRover en un VPS","Guía completa de CapRover: instalación, captain-definition, CI\u002FCD con GitHub Actions, clúster multinodo, copias de seguridad y resolución de problemas.",10,2,"2026-05-18T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[176],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caprover-poster.svg",{"categorySlug":179,"appSlug":180},"despliegue-de-aplicaciones-devops","caprover",{"id":182,"slug":183,"slugs":184,"title":188,"excerpt":189,"readTime":170,"views":18,"isPinned":19,"noindex":19,"publishedAt":190,"updatedAt":173,"category":191,"categories":192,"featuredImage":29,"bgImage":30,"posterImage":194,"relatedSolution":195},35,"desplegar-aplicaciones-con-portainer-en-un-vps",{"fr":185,"en":186,"ar":187,"es":183},"deployer-avec-portainer","deploy-your-applications-with-portainer-on-a-vps","انشر-تطبيقاتك-باستخدام-portainer-على-خادم-vps","Desplegar sus aplicaciones con Portainer en un VPS","Pilote Docker visualmente con Portainer en su VPS: contenedores, stacks, volúmenes y redes gestionados desde una interfaz web clara.","2026-05-16T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[193],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-portainer-poster.svg",{"categorySlug":179,"appSlug":196},"portainer",{"id":198,"slug":199,"slugs":200,"title":204,"excerpt":205,"readTime":170,"views":206,"isPinned":19,"noindex":19,"publishedAt":207,"updatedAt":208,"category":209,"categories":210,"featuredImage":29,"bgImage":30,"posterImage":212,"relatedSolution":29},36,"desplegar-con-easypanel",{"fr":201,"en":202,"ar":203,"es":199},"deployer-avec-easypanel","deploy-your-applications-with-easypanel-on-a-vps","انشر-تطبيقاتك-باستخدام-easypanel-على-خادم-vps","Desplegar sus aplicaciones con Easypanel en un VPS","Guía completa de Easypanel: requisitos, instalación, Traefik, TLS, bases de datos, copias de seguridad, resolución de errores y comparativa Coolify \u002F Dokploy.",4,"2026-05-15T00:00:00+00:00","2026-11-08T01:13:13+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[211],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-easypanel-poster.svg",true,1794270587365]