Copia de seguridad automática de flujos de trabajo en GitHub con verificación de diferencias - Flujo de trabajo de n8n

Utiliza este potente flujo de trabajo de n8n para hacer una copia de seguridad automática de todos tus flujos de n8n en GitHub, garantizando el control de versiones y el historial. Incluye rutas dinámicas y una verificación de diferencias eficiente.

Vista previa del flujo

¿Listo para automatizar?

Descarga esta plantilla de flujo de trabajo de n8n y comienza a usarla al instante.

¿Para quién es ideal?

Administradores de n8n y equipos de DevOps que necesitan un control de versiones fiable para todas las configuraciones de flujos de trabajo de producción de n8n.
Usuarios que buscan plantillas avanzadas de n8n que utilicen flujos de trabajo recursivos que se autollaman.


  • Desarrolladores que necesitan una solución de copia de seguridad centralizada y automatizada para su instancia de n8n.

Descripción general

Esta es una solución de flujo de trabajo de n8n crítica para el mantenimiento, diseñada para organizaciones que ejecutan n8n en producción. Aborda el desafío de la pérdida de flujos de trabajo y la deriva de la configuración proporcionando copias de seguridad robustas y con control de versiones de cada archivo de flujo de trabajo de n8n (ID.json) en GitHub. El sistema utiliza un sofisticado enfoque recursivo de nodos de n8n para obtener e comparar iterativamente el estado actual del flujo de trabajo en ejecución con su versión almacenada en el repositorio.

Aventura clave de este flujo de trabajo de n8n es su eficiencia. Al emplear una lógica de comparación personalizada dentro de un nodo Code de n8n dedicado, solo interactúa con la API de GitHub para realizar una actualización si se detecta una diferencia funcional real. Esto minimiza las llamadas innecesarias a la API y asegura que el historial de tu repositorio sea limpio y significativo. Usando este flujo de trabajo de n8n como base, puedes garantizar que tu lógica de automatización esté respaldada y registrada de forma consistente.

Cómo funciona

El proceso se inicia manualmente usando el trigger de n8n On clicking 'execute' o automáticamente a través del nodo Schedule Trigger de n8n (configurado para una ejecución diaria, normalmente a las 7 AM).


  1. Descubrimiento de Flujos de Trabajo: El nodo n8n de n8n recupera una lista completa de todos los flujos de trabajo publicados en la instancia actual.

  2. Iteración Recursiva: El nodo Loop Over Items de n8n y el nodo subsiguiente Execute Workflow de n8n establecen un bucle recursivo que se autollama. Este patrón se implementa para manejar cientos de flujos de trabajo eficientemente procesando cada elemento como una llamada a un subflujo de trabajo.

  3. Contexto y Globales: Dentro del subflujo de trabajo, el nodo Globals de n8n define los parámetros de GitHub de destino (propietario, repo y rutas dinámicas basadas en las etiquetas del flujo de trabajo, gestionadas por los nodos anteriores tag? y / de n8n).

  4. Comprobar Copia de Seguridad Existente: El nodo GitHub Get file data de n8n intenta obtener el archivo JSON existente del repositorio. Es crucial que continúe si falla en caso de que el archivo sea nuevo. Si el archivo es demasiado grande para una obtención directa, If file too large redirige el elemento a Get File (HTTP Request) para descargar el contenido mediante la URL proporcionada.

  5. Análisis de Diferencias: El nodo Merge Items combina los datos del flujo de trabajo y los datos del archivo de GitHub. Luego, el nodo Code de n8n isDiffOrNew decodifica el contenido del archivo existente (si está presente), ordena las claves tanto en el objeto JSON antiguo como en el nuevo, y realiza una comparación. Asigna un estado: "same", "different", o "new".

  6. Ejecución de Acción: El nodo Switch de n8n Check Status dirige el flujo según el estado determinado. Si el estado es "new", se ejecuta el nodo GitHub Create new file de n8n. Si el estado es "different", el nodo GitHub Edit existing file de n8n actualiza el contenido. Si el estado es "same", el flujo de trabajo de n8n completa el elemento sin realizar ninguna acción.

Guía de instalación

Para desplegar este potente flujo de trabajo de n8n, sigue estos pasos:


  1. Importar: Importa este JSON del flujo de trabajo de n8n en tu instancia de n8n.

  2. Credenciales: Configura o selecciona tus credenciales de la API de GitHub en los nodos Get file data, Create new file y Edit existing file de n8n. Asegúrate de que el token de credenciales tenga acceso de lectura/escritura al repositorio.

  3. Credenciales de API: Configura tus credenciales de API de n8n en el nodo principal n8n para que pueda listar los flujos de trabajo de la instancia.

  4. Configuración: Abre el nodo Globals de n8n y actualiza los parámetros en la pestaña Asignaciones (Assignments):

repo.owner: Tu nombre de usuario/organización de GitHub.
repo.name: El nombre del repositorio que deseas usar para las copias de seguridad.
* repo.path: La ruta de subdirectorio deseada (ej. workflows/). Si deseas usar la función de etiquetado dinámico, mantén la expresión existente.

  1. Ejecución: Puedes ejecutar el flujo de trabajo manualmente a través del nodo Manual Trigger de n8n o confiar en el Schedule Trigger configurado para la automatización diaria.

Detalles del nodo

Este flujo de trabajo de n8n utiliza varios nodos clave para lograr su objetivo:

Schedule Trigger / Manual Trigger (trigger de n8n): Inicia el proceso de copia de seguridad, proporcionando flexibilidad para ejecuciones programadas o puntuales (ad-hoc).
n8n (nodo n8n): Recupera la lista de todos los flujos de trabajo de la instancia de n8n, proporcionando los datos de entrada para el bucle principal.
Execute Workflow (nodo n8n): Esencial para el patrón recursivo de subflujos de trabajo, permite una iteración eficiente sobre todos los flujos sin sobrecargar la memoria.
Globals (nodo Set de n8n): Contiene variables de configuración críticas (detalles del repositorio de GitHub) que deben modificarse antes de activar el flujo de trabajo de n8n.
Get file data (nodo GitHub de n8n): Intenta recuperar el archivo de copia de seguridad del flujo de trabajo existente desde GitHub, crucial para el paso de comparación. Configurado para continuar si falla.
If file too large (nodo If de n8n) & Get File (nodo HTTP Request de n8n): Gestiona los casos en los que GitHub devuelve una URL de descarga en lugar del contenido, asegurando que los archivos de flujo de trabajo grandes se recuperen correctamente.
isDiffOrNew (nodo Code de n8n): Contiene la lógica de scripting personalizada principal. Este nodo de n8n decodifica el contenido base64, ordena las claves JSON y compara los objetos convertidos a string para determinar si ha ocurrido un cambio significativo, estableciendo la propiedad githubstatus.
Check Status (nodo Switch de n8n): Dirige el flujo basándose en el github
status calculado por el nodo Code de n8n (new, different, o same).


  • Create new file / Edit existing file (nodo GitHub de n8n): Realiza las operaciones de API necesarias para hacer commit de los datos JSON del flujo de trabajo actual de n8n en el repositorio, utilizando la operación adecuada según el estado.

Flujos de trabajo de n8n relacionados

Gratis

Nodos: 15 Nodos
Actualizado: Diciembre 26 2025
Ver todo
Creado por

Presentado*