--- title: "Cómo actualizar n8n a la última versión con Docker Compose" description: "Actualiza n8n instalado con Docker Compose: haz copia de la base de datos y los flujos, descarga la nueva imagen, verifica la versión y aprende a volver atrás." category: "Apps" language: es source: https://cubepath.com/es/docs/apps/como-actualizar-n8n-a-la-ultima-version updated: 2026-09-25 --- # Cómo actualizar n8n a la última versión con Docker Compose n8n publica versiones nuevas con frecuencia, con correcciones de seguridad, nodos nuevos y cambios en el editor. Si lo ejecutas con Docker Compose, actualizar consiste en descargar la imagen nueva y recrear el contenedor, pero antes conviene hacer una copia de seguridad para poder volver atrás si algo falla. En este tutorial actualizarás una instalación de n8n con PostgreSQL en Ubuntu 24.04, comprobarás la versión nueva y verás cómo revertir el cambio. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Ubuntu 24.04 LTS (u otra distribución con Docker) donde n8n ya funcione con Docker Compose, por ejemplo un VPS de CubePath. - Docker Engine con el plugin de Docker Compose v2 (el comando `docker compose`, sin guion). - Acceso SSH con un usuario con privilegios `sudo`. - Saber en qué carpeta está el archivo `docker-compose.yml` de n8n. En esta guía se usa `/opt/n8n`; sustitúyela por la tuya si es distinta. > Nota: Si todavía usas el antiguo binario `docker-compose` (con guion), los comandos son equivalentes, pero conviene migrar al plugin: `sudo apt install docker-compose-plugin` desde el repositorio oficial de Docker. ## Paso 1: Revisar la instalación actual Conéctate al servidor, sustituyendo `tu_usuario` y `ip_del_servidor` por tus datos: ```bash ssh tu_usuario@ip_del_servidor ``` Entra en la carpeta del proyecto y lista los servicios: ```bash cd /opt/n8n sudo docker compose ps ``` ```output NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS n8n docker.n8n.io/n8nio/n8n "tini -- /docker-ent…" n8n 3 months ago Up 3 months 0.0.0.0:5678->5678/tcp n8n-postgres postgres:16 "docker-entrypoint.s…" postgres 3 months ago Up 3 months (healthy) 5432/tcp ``` Anota los nombres de la columna `SERVICE` (aquí `n8n` y `postgres`), porque los usarás en los siguientes pasos. Consulta la versión que tienes ahora: ```bash sudo docker compose exec n8n n8n --version ``` ```output 1.110.1 ``` Abre `docker-compose.yml` y revisa la línea `image:` del servicio de n8n: ```bash grep -n "image:" docker-compose.yml ``` - Si pone `docker.n8n.io/n8nio/n8n` o `n8nio/n8n` sin etiqueta, o con `:latest`, al descargar obtendrás la última versión estable. - Si tiene una versión fija (por ejemplo `n8nio/n8n:1.110.1`), cámbiala por la versión a la que quieras ir antes de continuar. Antes de saltar de versión mayor (por ejemplo de 1.x a 2.x), lee las notas de la versión y la guía de cambios incompatibles en la documentación oficial de n8n, porque pueden requerir ajustes en variables de entorno o en tus flujos. ## Paso 2: Hacer una copia de seguridad Una actualización puede ejecutar migraciones en la base de datos que no se pueden deshacer. Guarda una copia antes de tocar nada. Crea una carpeta para las copias: ```bash sudo mkdir -p /opt/n8n/backups ``` Vuelca la base de datos de PostgreSQL. Sustituye `n8n` en `-U` y en el nombre de la base de datos por los valores de `POSTGRES_USER` y `POSTGRES_DB` de tu `docker-compose.yml` o de tu archivo `.env`: ```bash sudo docker compose exec -T postgres pg_dump -U n8n -d n8n -Fc | sudo tee /opt/n8n/backups/n8n-$(date +%F).dump > /dev/null ``` Comprueba que el archivo no está vacío: ```bash ls -lh /opt/n8n/backups/ ``` ```output -rw-r--r-- 1 root root 4.2M Sep 25 10:20 n8n-2026-09-25.dump ``` Exporta además los flujos y las credenciales con la CLI de n8n. Es una copia independiente de la base de datos que puedes importar en otra instalación. Las credenciales se exportan cifradas con la clave de cifrado de la instancia: ```bash sudo docker compose exec n8n n8n export:workflow --all --output=/home/node/.n8n/backup-workflows.json sudo docker compose exec n8n n8n export:credentials --all --output=/home/node/.n8n/backup-credentials.json ``` Los archivos quedan en el volumen de datos de n8n (`/home/node/.n8n`), que no se borra al recrear el contenedor. Guarda también la clave de cifrado (`N8N_ENCRYPTION_KEY` en tu `.env`, o el archivo `config` dentro de ese volumen): sin ella no podrás descifrar las credenciales. > Importante: Si usas SQLite en lugar de PostgreSQL, la base de datos es el archivo `database.sqlite` dentro del volumen de n8n. Detén n8n con `sudo docker compose stop n8n` y copia el volumen completo antes de actualizar. ## Paso 3: Descargar la nueva imagen Descarga las imágenes nuevas sin detener el servicio. Así el tiempo de corte se limita al reinicio del contenedor: ```bash sudo docker compose pull n8n ``` ```output [+] Pulling 1/1 n8n Pulled ``` Solo se actualiza n8n. No actualices la imagen de PostgreSQL a otra versión mayor (por ejemplo de 16 a 17) en el mismo paso: el formato de datos cambia entre versiones mayores y requiere una migración aparte. ## Paso 4: Recrear el contenedor Aplica la imagen nueva. Docker Compose solo recrea los contenedores cuya imagen o configuración ha cambiado, así que no hace falta ejecutar `docker compose down` antes: ```bash sudo docker compose up -d ``` ```output [+] Running 2/2 Container n8n-postgres Running Container n8n Started ``` Sigue los registros durante el arranque. La primera vez tras la actualización n8n aplica las migraciones de la base de datos, lo que puede tardar unos segundos o varios minutos si tienes muchas ejecuciones guardadas: ```bash sudo docker compose logs -f n8n ``` Espera a ver una línea similar a esta y pulsa `Ctrl+C` para salir: ```output Editor is now accessible via: https://n8n.tu_dominio.com ``` ## Paso 5: Verificar la actualización Comprueba la versión que se está ejecutando: ```bash sudo docker compose exec n8n n8n --version ``` ```output 1.112.0 ``` Confirma que los contenedores están en marcha: ```bash sudo docker compose ps ``` Por último, entra en el editor desde el navegador, abre un par de flujos y lanza una ejecución manual de uno que use credenciales. Revisa también que los flujos con disparadores (webhooks, cron) siguen activos. Cuando todo funcione, puedes eliminar las imágenes antiguas que ya no usa ningún contenedor para liberar espacio: ```bash sudo docker image prune ``` ## Paso 6: Volver a la versión anterior si algo falla Si la versión nueva da problemas, fija en `docker-compose.yml` la versión que tenías antes (la que anotaste en el paso 1): ```bash sudo nano /opt/n8n/docker-compose.yml ``` ```yaml services: n8n: image: docker.n8n.io/n8nio/n8n:1.110.1 ``` Como la versión nueva ya migró la base de datos, restaura la copia antes de arrancar la versión anterior. Detén n8n, restaura el volcado y vuelve a levantarlo: ```bash sudo docker compose stop n8n sudo docker compose exec -T postgres pg_restore -U n8n -d n8n --clean --if-exists < /opt/n8n/backups/n8n-2026-09-25.dump sudo docker compose up -d ``` Comprueba de nuevo la versión con `sudo docker compose exec n8n n8n --version`. Ten en cuenta que perderás las ejecuciones y cambios hechos después de la copia. ## Solución de problemas - **n8n se reinicia en bucle tras actualizar.** Revisa `sudo docker compose logs n8n`. Si el error menciona una migración, restaura la copia y vuelve a la versión anterior mientras revisas las notas de la versión. - **`Mismatching encryption keys`.** El contenedor nuevo no está usando la misma clave de cifrado. Asegúrate de que `N8N_ENCRYPTION_KEY` está definido en el `.env` o de que el volumen de datos sigue montado en `/home/node/.n8n`. - **La descarga no trae una versión nueva.** La imagen tiene una etiqueta fija en `docker-compose.yml`. Cámbiala por la versión que quieras y repite los pasos 3 y 4. ## Conclusión Has actualizado n8n con una copia de seguridad previa de la base de datos, los flujos y las credenciales, has verificado la versión nueva y sabes cómo volver atrás. Para las próximas actualizaciones, fija una versión concreta en `docker-compose.yml` en lugar de `latest`, así sabrás siempre qué se está ejecutando. Como siguientes pasos, programa copias diarias de PostgreSQL con cron y suscríbete a las notas de versión de n8n para enterarte de los cambios incompatibles.