[{"data":1,"prerenderedAt":165},["ShallowReactive",2],{"seo-verification":3,"blog-n8n-migracion-npm-docker-antes-v3-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-n8n-migracion-npm-docker-antes-v3-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":111,"ctaBody":112,"ctaButton":113,"ctaUrl":114,"relatedPosts":115},344,"n8n-migracion-npm-docker-antes-v3",{"fr":12,"en":13,"ar":14,"es":10},"n8n-migration-npm-docker-avant-v3","n8n-migration-npm-to-docker-before-v3","n8n-migration-npm-to-docker-before-v3-ar","n8n 3.0: migrar de npm a Docker antes de octubre de 2026","n8n 3.0 elimina el soporte de npm y npx en octubre de 2026. Detecta tu modo de lanzamiento, exporta tus flujos y migra a Docker Compose con PostgreSQL antes del plazo.",8,0,false,"2026-09-09T00:00:00+00:00","2026-09-09T21:41:07+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},2,"Automatización","automatisation","bg-brand-action\u002F10 text-brand-action",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fn8n-migration-npm-docker-avant-v3-poster.svg",{"categorySlug":33,"appSlug":34},"automatizacion","n8n","n8n 3.0 está previsto para octubre de 2026 y trae un cambio estructural: se elimina el soporte de instalaciones npm y npx. Solo Docker será distribuido. Si tu instancia aún funciona con `npx n8n` o un paquete npm global, la migración debe realizarse antes de esa fecha — no porque deje de funcionar hoy, sino porque una migración planificada siempre es más segura que una migración de emergencia un domingo por la noche.",[37,41,50,53,62,65,93,97,100,108],{"type":38,"title":39,"body":40},"h2","Qué cambia con n8n 3.0 y por qué actuar ahora","La documentación oficial de breaking changes de n8n 3.0 es clara: «Self-hosted n8n will require a Docker-based deployment. n8n 3.0 will no longer support installations run using `npm` or `npx n8n`.» No es una advertencia de deprecación gradual — es una fecha límite firme. En octubre de 2026, cualquier instancia lanzada mediante `npx n8n` o un paquete npm global no podrá actualizarse y quedará congelada en la última versión 2.x sin parches de seguridad.",{"type":42,"title":43,"items":44},"ul","Riesgos de posponer la migración a octubre",[45,46,47,48,49],"**Migración bajo presión** — migrar en urgencia mientras corren automatizaciones críticas expone a errores de configuración difíciles de diagnosticar.","**Pérdida de datos SQLite** — el issue #22341 de GitHub documenta casos donde contenedores Docker actualizados sin precauciones provocaron una regresión de la base de datos: los flujos de trabajo vuelven al estado de una copia de seguridad antigua.","**Sin parches de seguridad** — una instancia npm congelada en 2.x no recibe parches de seguridad ni correcciones de estabilidad para la rama 3.x.","**Incompatibilidad creciente** — las integraciones, nodos comunitarios y webhooks dependen de APIs que evolucionan; quedarse en una versión muerta genera deuda de incompatibilidad creciente.","**Duración impredecible** — una migración bien preparada tarda una hora; una improvisada puede ocupar un día entero con los flujos de trabajo parados.",{"type":38,"title":51,"body":52},"Requisitos previos antes de empezar","Este procedimiento está orientado a una instancia n8n existente en producción. Si partes de cero, consulta el artículo dedicado a la instalación de n8n en VPS.",{"type":42,"title":54,"items":55},"Lo que necesitas",[56,57,58,59,60,61],"**VPS con acceso root** — Ubuntu 22.04 o Debian 12 recomendados, mínimo 2 vCPU y 2 GB de RAM para n8n solo, 4 GB si añades PostgreSQL en el mismo servidor.","**Docker Engine y Docker Compose v2** — comprueba con `docker --version` y `docker compose version` (sintaxis sin guión, plugin v2).","**PostgreSQL recomendado** — n8n admite SQLite y PostgreSQL, pero SQLite en Docker conlleva riesgos de pérdida de datos en actualizaciones mal gestionadas (cf. issue #22341).","**Acceso a la instancia npm actual** — la migración requiere exportar los flujos de trabajo mediante la API REST antes de detener la instancia antigua.","**Un nombre de dominio y un certificado TLS** — `your-domain.com` con Let's Encrypt vía Nginx como reverse proxy.","**Una ventana de mantenimiento planificada** — aunque sea breve, evita perder ejecuciones en curso.",{"type":38,"title":63,"body":64},"Detectar tu modo de lanzamiento actual","Antes de nada, identifica con precisión cómo está lanzada tu instancia n8n. El comando a usar depende del modo de supervisión.",{"type":66,"title":67,"steps":68},"steps","Detectar, exportar, desplegar y validar",[69,72,75,78,81,84,87,90],{"title":70,"body":71},"Identificar el proceso n8n","Busca el ejecutable en ejecución: `which n8n` muestra la ruta si n8n está instalado globalmente vía npm. Luego comprueba si un servicio del sistema lo supervisa: `systemctl status n8n`. Si no existe servicio systemd, busca un proceso activo: `ps aux | grep n8n`. Un resultado con `npx n8n` confirma una instalación npm.",{"title":73,"body":74},"Localizar el archivo de configuración y la base de datos","El directorio de datos predeterminado es `~\u002F.n8n\u002F`. Comprueba su contenido: `ls -la ~\u002F.n8n\u002F`. El archivo `database.sqlite` indica una base SQLite. Anota la ruta completa — la necesitarás para la exportación.",{"title":76,"body":77},"Exportar todos tus flujos de trabajo mediante la API REST","Obtén primero una clave API desde la interfaz (`Settings → API → Create API Key`), luego exporta: `curl -s -H 'X-N8N-API-KEY: TU_CLAVE' http:\u002F\u002Flocalhost:5678\u002Fapi\u002Fv1\u002Fworkflows | python3 -m json.tool > workflows-export-$(date +%Y%m%d).json`. Verifica que el archivo contiene tus flujos antes de cualquier operación.",{"title":79,"body":80},"Detener correctamente la instancia npm","Si está supervisada por systemd: `systemctl stop n8n && systemctl disable n8n`. Si está lanzada manualmente, identifica el PID (`pgrep -f n8n`) y luego `kill -SIGTERM \u003CPID>`. Espera unos segundos a que n8n termine las ejecuciones en curso.",{"title":82,"body":83},"Crear el archivo docker-compose.yml con PostgreSQL","Crea un directorio dedicado: `mkdir -p \u002Fopt\u002Fn8n && cd \u002Fopt\u002Fn8n`. Luego crea el archivo `docker-compose.yml` con el contenido completo mostrado en la versión francesa, adaptando contraseñas y usando `your-domain.com`. La versión está fijada en `n8nio\u002Fn8n:2.38.4` (estable a 2026-09-09). Nunca uses `:latest`.",{"title":85,"body":86},"Arrancar el stack e importar los flujos de trabajo","Lanza el stack: `docker compose up -d`. Espera a que ambos contenedores estén sanos: `docker compose ps`. Una vez n8n accesible en `http:\u002F\u002F127.0.0.1:5678`, importa los flujos de trabajo vía API y verifica en la interfaz que están presentes y activos.",{"title":88,"body":89},"Configurar Nginx como reverse proxy con TLS","Instala Nginx y Certbot: `apt install nginx certbot python3-certbot-nginx -y`. Crea la configuración Nginx con proxy_pass a `http:\u002F\u002F127.0.0.1:5678`, cabeceras WebSocket y timeout de lectura de 300 segundos. Activa el sitio y obtén el certificado: `certbot --nginx -d your-domain.com`.",{"title":91,"body":92},"Validar que la migración ha tenido éxito","Realiza estas comprobaciones en orden: 1) accede a `https:\u002F\u002Fyour-domain.com` — la página de inicio de sesión aparece sin advertencia TLS; 2) verifica que tus flujos de trabajo están presentes y activos; 3) lanza manualmente un flujo simple para validar la ejecución completa; 4) actualiza los webhooks si servicios externos apuntan a la URL o puerto anteriores; 5) revisa los logs después de 24 horas: `docker compose logs n8n --since 24h | grep -i error`.",{"type":94,"title":95,"body":96},"tip","Fija siempre una versión, nunca uses :latest","Usar `n8nio\u002Fn8n:latest` en tu `docker-compose.yml` te expone a actualizaciones automáticas no controladas durante un `docker compose pull`. En una base SQLite, un salto de versión mayor sin migración previa puede desencadenar el escenario descrito en el issue #22341. Fija siempre una versión específica (`n8nio\u002Fn8n:2.38.4`) y planifica tus actualizaciones. Para pasar a una nueva versión: `docker compose pull && docker compose up -d`.",{"type":38,"title":98,"body":99},"Resolución de problemas: casos comunes tras la migración","Estos son los problemas más frecuentes durante esta transición.",{"type":42,"title":101,"items":102},"Problemas y soluciones",[103,104,105,106,107],"**Flujos vacíos tras la importación** — verifica que el formato JSON exportado coincide con lo que espera la API de importación; algunas versiones de n8n exportan `{ data: [] }`, otras un array directo.","**Webhooks que no responden** — `WEBHOOK_URL` debe coincidir exactamente con la URL pública de tu instancia (con `https:\u002F\u002F`).","**Credenciales inaccesibles** — las credenciales están cifradas con `N8N_ENCRYPTION_KEY`. Recupérala desde `~\u002F.n8n\u002F.n8n_encryption_key` en la instancia npm y configúrala como variable de entorno.","**Regresión de la base SQLite (issue #22341)** — si has conservado SQLite temporalmente, asegúrate de que el volumen Docker esté montado de forma persistente. La migración a PostgreSQL sigue siendo la solución definitiva.","**Error `ECONNREFUSED` en PostgreSQL** — la condición `depends_on.postgres.condition: service_healthy` y el healthcheck `pg_isready` garantizan que n8n espere a que PostgreSQL esté listo.",{"type":38,"title":109,"body":110},"Una migración que hacer ahora, no en octubre","La versión estable de n8n en el momento de este artículo es la 2.38.4. Tienes varias semanas para llevar a cabo esta migración en buenas condiciones: exportar correctamente tus flujos de trabajo, probar el stack Docker en un servidor de pruebas, y luego cambiar la producción con un plan de rollback real. En octubre, cuando n8n 3.0 esté disponible, solo necesitarás cambiar el número de versión en tu `docker-compose.yml` — cinco minutos. La diferencia entre cinco minutos y un día estresante empieza ahora.","Un VPS listo para Docker y n8n","ServOrbit ofrece VPS con acceso root, IPv4 dedicada y elección de sistema operativo. Lanza tu stack n8n en minutos con nuestra plantilla Docker.","Desplegar n8n en VPS ServOrbit","\u002Fvps-cloud",[116,133,149],{"id":117,"slug":118,"slugs":119,"title":123,"excerpt":124,"readTime":125,"views":23,"isPinned":19,"publishedAt":126,"updatedAt":127,"category":128,"categories":129,"featuredImage":29,"bgImage":30,"posterImage":131,"relatedSolution":132},3,"instalar-n8n-en-vps-con-docker",{"fr":120,"en":121,"ar":122,"es":118},"installer-n8n-vps","install-n8n-on-vps-with-docker-complete-2026-guide","تثبيت-n8n-على-vps-مع-docker-دليل-شامل-2026","Instalar n8n en un VPS con Docker: guía completa 2026","Despliegue n8n en VPS con Docker, reverse proxy y HTTPS. Crash V8, 502 nginx, migración de npm a Docker y seguridad de ejecuciones persistidas (advisory agosto 2026).",12,"2026-06-05T00:00:00+00:00","2026-09-08T22:00:02+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[130],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Finstaller-n8n-vps-poster.svg",{"categorySlug":33,"appSlug":34},{"id":134,"slug":135,"slugs":136,"title":140,"excerpt":141,"readTime":17,"views":142,"isPinned":19,"publishedAt":143,"updatedAt":144,"category":145,"categories":146,"featuredImage":29,"bgImage":30,"posterImage":148,"relatedSolution":29},338,"reemplazar-github-actions-con-woodpecker-ci-en-vps",{"fr":137,"en":138,"ar":139,"es":135},"remplacer-github-actions-woodpecker-ci-self-hosted-vps","replace-github-actions-with-woodpecker-ci-on-a-vps","استبدال-github-actions-بـwoodpecker-ci-على-vps","Reemplazar GitHub Actions con Woodpecker CI en VPS","GitHub anunció y luego suspendió la facturación de runners self-hosted. Migra a Woodpecker CI: sintaxis limpia, menos de 50 MB RAM, coste fijo en VPS.",1,"2026-09-07T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[147],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fremplacer-github-actions-woodpecker-ci-self-hosted-vps-poster.svg",{"id":150,"slug":151,"slugs":152,"title":156,"excerpt":157,"readTime":158,"views":18,"isPinned":19,"publishedAt":159,"updatedAt":160,"category":161,"categories":162,"featuredImage":29,"bgImage":30,"posterImage":164,"relatedSolution":29},307,"zapier-vs-n8n-costo-migracion-2026",{"fr":153,"en":154,"ar":155,"es":151},"zapier-vs-n8n-cout-migration-2026","zapier-vs-n8n-cost-migration-2026","zapier-مقابل-n8n-التكلفة-والهجرة-2026","Zapier vs n8n self-hosted: costo real y migración para agencias","Zapier Pro se limita a 750 tareas\u002Fmes. Compare el costo real frente a n8n self-hosted y siga la guía de migración paso a paso para agencias.",9,"2026-08-27T00:00:00+00:00","2026-09-07T19:17:14+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[163],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fzapier-vs-n8n-cout-migration-2026-poster.svg",1789665027921]