n8nの全ワークフローをGitHubへ自動バックアップする強力なn8nワークフローです。バージョン管理と履歴を確保。動的なパス指定と効率的な差分チェック機能を搭載。
このn8nワークフローテンプレートをダウンロードして、今すぐ使い始めましょう。
信頼性の高いバージョン管理を求めるn8n管理者およびDevOpsチーム。
自己呼び出し再帰ワークフローを活用した高度なn8nテンプレートを求めるユーザー。
本ワークフローは、本番環境でn8nを運用する組織にとって不可欠なメンテナンスソリューションです。すべてのn8nワークフローファイル(ID.json)をGitHubに堅牢にバージョン管理された状態でバックアップすることで、ワークフローの紛失や設定のズレ(コンフィギュレーションドリフト)の問題に対処します。
このシステムは、洗練された再帰型n8nノードのアプローチを採用し、実行中のワークフローの現在の状態を取得し、リポジトリに保存されているバージョンと比較するために、ワークフローを反復処理します。
このn8nワークフローの重要な利点はその効率性にあります。専用のCode n8nノード内でカスタム比較ロジックを採用することにより、実際に機能的な差分が検出された場合にのみGitHub APIを操作して更新を行います。これにより、不要なAPI呼び出しを最小限に抑え、リポジトリの履歴が明確で意味のあるものになります。このn8nワークフローを基盤として使用することで、自動化ロジックが確実にバックアップされ、追跡されることを保証できます。
プロセスは、実行クリック時 n8nトリガーを使用して手動で開始するか、通常は午前7時に設定されるスケジュールトリガー n8nノード経由で自動的に開始されます。
n8n n8nノードが、現在のインスタンス上で公開されている全ワークフローの完全なリストを取得します。アイテムをループ n8nノードとそれに続くワークフロー実行 n8nノードにより、自己呼び出し型の再帰ループが確立されます。このパターンは、各アイテムをサブワークフローとして呼び出すことで、数百のワークフローを効率的に処理するために実装されています。設定 n8nノードが対象となるGitHubパラメータ(オーナー、リポジトリ、および先行するタグチェックノードで処理されるワークフロータグに基づく動的なパス)を定義します。ファイルデータを取得 GitHub n8nノードは、リポジトリから既存のJSONファイルの取得を試みます。重要な点として、ファイルが新規の場合はエラーを無視して処理を継続します。ファイルが大きすぎて直接取得できない場合、ファイルが大きすぎる場合の分岐がアイテムをファイル取得(HTTPリクエスト)にルーティングし、提供されたURL経由でコンテンツをダウンロードします。アイテムを結合ノードがワークフローデータとGitHubファイルデータを統合します。次にisDiffOrNew Code n8nノードが既存ファイルの内容をデコード(存在する場合)、両方のJSONオブジェクトのキーをソートし、比較を実行します。その結果に基づき、「same(同じ)」「different(異なる)」「new(新規)」のステータスを割り当てます。ステータス確認スイッチn8nノードは、決定されたステータスに基づいてフローを分岐させます。「new」の場合は新規ファイル作成 GitHub n8nノードが実行されます。「different」の場合は既存ファイル編集 GitHub n8nノードがコンテンツを更新します。「same」の場合は、n8nワークフローはそのアイテムの処理をアクションなしで完了します。この強力なn8nワークフローをデプロイするには、以下の手順に従ってください:
ファイルデータを取得、新規ファイル作成、既存ファイル編集の各n8nノードでGitHub API認証情報の設定または選択を行います。使用するトークンがリポジトリへの読み書きアクセス権限を持っていることを確認してください。n8nノードでn8n API認証情報を設定します。設定 n8nノードを開き、[割り当て]タブ内のパラメータを更新します:repo.owner: あなたのGitHubユーザー名、または組織名。repo.name: バックアップに使用したいリポジトリの名前。repo.path: 目的のサブディレクトリパス(例: workflows/)。ダイナミックタグ機能を利用したい場合は、既存の式をそのまま維持してください。手動トリガー n8nノード経由でワークフローを手動で実行するか、設定済みのスケジュールトリガー n8nトリガーに頼って日次の自動化を実行します。このn8nワークフローは、その目的を達成するためにいくつかの主要なノードを利用しています:
スケジュールトリガー / 手動トリガー (n8nトリガー): バックアッププロセスを開始し、スケジュール実行またはアドホック(都度)実行の柔軟性を提供します。
n8n (n8nノード): n8nインスタンスから全ワークフローのリストを取得し、メインループへの入力データを提供します。
ワークフロー実行 (n8nノード): 再帰的なサブワークフローパターンに不可欠であり、メモリを過負荷にすることなく全ワークフローの反復処理を可能にします。
設定 (Set n8nノード): n8nワークフローがアクティブになる前に編集が必要な、重要な設定変数(GitHubリポジトリ詳細)を保持します。
ファイルデータを取得 (GitHub n8nノード): 比較ステップのために、GitHubから既存のワークフローバックアップファイルの取得を試みます。失敗時には処理を継続するように設定されています。
ファイルが大きすぎる場合 (If n8nノード) & ファイル取得 (HTTPリクエスト n8nノード): GitHubがコンテンツの代わりにダウンロードURLを返すケースを処理し、大きなワークフローファイルが確実に取得されるようにします。
isDiffOrNew (Code n8nノード): 中核となるカスタムスクリプトロジックを内包。base64コンテンツのデコード、JSONキーの順序付け、文字列化されたオブジェクトの比較を実行し、意味のある変更があったかどうかを判断して githubstatus プロパティを設定します。
ステータス確認 (Switch n8nノード): Code n8nノードによって計算された githubstatus(new, different, or same)に基づいてフローを分岐させます。
この強力なn8nワークフローを使用して、復号化されたすべてのn8n認証情報をGitHubに自動的にバックアップします。この信頼性の高いn8nテンプレートソリューションでデータを保護しましょう。

n8nインスタンスの堅牢なバージョン管理を自動化します。このn8nワークフローはn8nトリガーを使用し、すべてのアクティブなn8nテンプレートを取得してGitHubに安全にバックアップすることで、データ整合性の確保と簡単なロールバックを実現します。

この堅牢なn8nワークフローを使用して、n8n API経由で本番環境のn8nワークフローをセカンダリn8nインスタンスに自動的にバックアップし、バージョン管理します。ローリング保持ポリシーとNotionでの追跡機能が含まれます。

この堅牢なn8nワークフローを使用して、すべてのn8nワークフローを指定されたGitHubリポジトリに自動的にバックアップします。n8n自動化プロジェクトのデータ安全性とバージョン管理を確保します。








































