Checklist de n8n en producción
Lista imprimible para quien aloja n8n por su cuenta. Solo recoge lo que dice la documentación oficial, con enlace a cada punto. Consultada el 2026-11-05.
No es una auditoría ni una garantía: no la hemos aplicado a un servidor propio. Descargar en PDF o imprime esta página.
Copias de seguridad
- Incluye en la copia la carpeta .n8n (en Docker, el volumen n8n_data montado en /home/node/.n8n): contiene el archivo config con la clave de cifrado, la base SQLite por defecto y, si se guardan en disco, los datos binarios y de ejecuciones. [fuente]
- Si usas PostgreSQL externo, cópialo con las herramientas de tu base de datos. Aunque uses PostgreSQL, mantén montado el volumen /home/node/.n8n (guarda claves de cifrado y registros). [fuente]
- Copia también el almacenamiento externo (S3, Azure Blob), las rutas personalizadas de datos y los directorios de nodos propios cargados con N8N_CUSTOM_EXTENSIONS, si los usas. [fuente]
- Con SQLite, para n8n antes de copiar .n8n: copiar el archivo mientras n8n escribe puede dar una copia inconsistente. [fuente]
- Exportación por CLI de flujos: n8n export:workflow --backup --output=backups/workflows/ y de credenciales: n8n export:credentials --backup --output=backups/credentials/ (un directorio distinto para cada una). [fuente]
- Recuerda que la exportación por CLI NO incluye usuarios y roles, historial de ejecuciones, variables ni ajustes de la instancia (incluida la clave de cifrado): no basta para recuperar una instancia completa. [fuente]
- Guarda aparte la clave de cifrado (N8N_ENCRYPTION_KEY o el archivo config): las credenciales importadas necesitan la clave original. [fuente]
- Si exportas credenciales con --decrypted, el contenido queda en texto plano: bórralo tras restaurar. [fuente]
- Haz una copia antes de cada actualización. [fuente]
Actualizaciones
- Actualiza con frecuencia para evitar saltos de varias versiones; la documentación sugiere al menos una vez al mes. [fuente]
- Lee las notas de la versión antes de actualizar, por si hay cambios incompatibles. [fuente]
- Prueba la actualización primero en una instancia de prueba, no en producción. [fuente]
- Docker Compose, desde la carpeta del compose: docker compose pull, docker compose down, docker compose up -d. [fuente]
- Docker simple: docker pull n8nio/n8n, docker stop y docker rm del contenedor, y vuelve a arrancarlo con docker run. [fuente]
- Etiquetas de imagen: sin etiqueta = última versión estable; una etiqueta de versión fija esa versión; next es la inestable. [fuente]
Variables clave
- N8N_HOST (por defecto localhost), N8N_PORT (5678) y N8N_PROTOCOL (http por defecto; usa https detrás de HTTPS). [fuente]
- N8N_EDITOR_BASE_URL: URL pública del editor; también se usa en correos y redirecciones SAML. [fuente]
- N8N_PROXY_HOPS: número de proxies inversos delante de n8n (0 por defecto). [fuente]
- N8N_WEBHOOK_URL: URL pública de los webhooks (requiere n8n 2.30.0 o posterior según la doc de Compose; antes, WEBHOOK_URL). [fuente]
- GENERIC_TIMEZONE y TZ: zona horaria para Cron y nodos de programación. [fuente]
- N8N_ENCRYPTION_KEY: si no la defines, n8n genera una al primer arranque y la guarda en ~/.n8n; defínela con tu propia cadena aleatoria si no está ya en el archivo de ajustes. [fuente]
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true y N8N_RESTRICT_FILE_ACCESS_TO=/files, como en el ejemplo oficial de Compose. [fuente]
- Datos de ejecuciones (valores por defecto): EXECUTIONS_DATA_PRUNE=true, EXECUTIONS_DATA_MAX_AGE=336 horas, EXECUTIONS_DATA_PRUNE_MAX_COUNT=10000, EXECUTIONS_DATA_SAVE_ON_SUCCESS=all, EXECUTIONS_DATA_SAVE_ON_ERROR=all. [fuente]
- Para PostgreSQL: DB_TYPE=postgresdb y las variables DB_POSTGRESDB_*. [fuente]
Seguridad básica
- Sirve n8n por HTTPS (el ejemplo oficial usa Traefik y Let's Encrypt, redirige el puerto 80 a HTTPS y deja el 5678 solo en 127.0.0.1). [fuente]
- La sección de seguridad de la doc lista estas medidas para revisar: políticas de seguridad (incluida la obligación de MFA), auditorías de seguridad, configurar SSL, SSO (SAML u OIDC), rotar claves de cifrado, redactar datos de ejecución, desactivar la API pública, controlar la telemetría, bloquear nodos concretos, protección SSRF, verificar correos de usuarios y reforzar los task runners. [fuente]
- Requerir autenticación en dos factores aparece en la doc como recurso relacionado. [fuente]
- La API/panel de Traefik con api.insecure=true no lleva autenticación; la doc de Traefik no recomienda exponer ese panel en producción y aconseja restringirlo a redes internas. En el compose oficial no se publica su puerto. [fuente]
Fuentes
- n8n docs: Back up and restore (consultado el 2026-11-05)
- n8n docs: CLI commands (export/import) (consultado el 2026-11-05)
- n8n docs: Updating (consultado el 2026-11-05)
- n8n docs: Docker installation (apartado Updating) (consultado el 2026-11-05)
- n8n docs: variables de entorno de despliegue (consultado el 2026-11-05)
- n8n docs: Docker Compose server setup (consultado el 2026-11-05)
- n8n docs: clave de cifrado (N8N_ENCRYPTION_KEY) (consultado el 2026-11-05)
- n8n docs: variables de entorno de ejecuciones (consultado el 2026-11-05)
- n8n docs: visión general de seguridad (consultado el 2026-11-05)
- Traefik docs: API y dashboard (consultado el 2026-11-05)