Backup workflow i credentials w n8n służą do automatyzacji tworzenia kopii zapasowych wszystkich Twoich automatyzacji (workflow) i poufnych danych (credentials), co zapobiega ich utracie, umożliwia przywracanie po awarii, łatwe migracje i daje spokój ducha 🙂
W artykule 2 sposoby. Pierwszy wysyła i nadpisuje poprzednie backupy wszystkich workflow w osobnych plikach do każdego workflow. Druga wysyła i nadpisuje wszystkie workflow w jednym pliku oraz credentials również w jednym pliku.
Zapisy do 19 stycznia, 23:59
Sprawdź szczegóły: https://asdevops.pl/n8n
1. Automatyzacja – backup workflows
Przejdź do swojej instancji n8n w przeglądarce internetowej, stwórz nowy workflow. Kliknij „+”, w prawym górnym rogu i dodaj „Schedule Trigger”:


Po utworzeniu noda możesz ustawić „Trigger Interval” – częstotliwość uruchamiania wyzwalacza (w tym wypadku jest to Days, czyli raz dziennie), oraz „Trigger at Hour” – o której godzinie ma być uruchamiany wyzwalacz (aktualnie ustawiony jest na Midnight, czyli o północy). Możesz tutaj zmienić czas uruchamiania wyzwalacza według własnych potrzeb:

Następnie kliknij „+” przy node „Schedule Trigger”, wyszukaj node „n8n” i go dodaj klikając na niego:

Następnie wybierz z listy opcję „Get many workflows”:

W sekcji „Credential to cennect with” rozwin listę i kliknij „Create new credential”:

W lewym dolnym rogu instancji n8n, kliknij na trzy kropki i przejdź do „Settings” :

Wybierz z listy n8n API i kliknij „Create an API Key”

W sekcji „Label”, nazwij swój klucz API, w „Expiration”, wybierz po jakim czasie klucz wygaśnie i zapisz ustawienia klikając na „Save”:

Najedź myszką w prawy róg okna, skopiuj klucz API, kliknij „Done”:

Przejdź do nod „n8n” wklej klucz w sekcji „API Key”, następnie przepisz lub skopuj adres url Twojej instancji n8n wraz z https:// i dopisz /api/v1:

Kliknij „+” na node „n8n” i dodaj „Loop Over Items (Split in Batches):

Kliknij na ikonkę kosza i usuń node „Replace Me”:

Usuń węzeł analogicznie klikając ikonkę kosza:

Dodaj noda w węźle o nazwie „loop”:

Wybierz „Code”

A następnie „Code in JavaScript”:

Rozwiń edytor:

Usuń zawartość skryptu i dodaj poniższy skrypt:
// Loop over input items and add a new field called 'myNewField' to the JSON of each one
const obj = $input.first().json;
const jsonString = JSON.stringify(obj, null, 2);
return[{
json: {
fileName: $input.first().json.name + ".json",
rawJson: jsonString
}
}];
Skrypt selektywnie pobiera 1 item, nadaje mu pobraną nazwę workflow, pobiera zawartość workflow i zapisuje plik w formacie .json
Do noda „Code in JavaScript” dodaj noda „Convert to File”:

Z listy wybierz „Convert to text file”:

W sekcji „Text Input Field”, wpisz „rawJson” oraz w sekcji „File Name”, wspisz „{{ $json.fileName }}”:

Do noda „Convert to File” dodaj „Google Drive”:

Z listy wybierz „Upload file”:

Kolejnym ważnym krokiem jest konta Google Drive z n8n. By oszczędzić czas i nie pokazywać moich wrażliwych danych, skorzystaj z tego poradnika:
https://www.youtube.com/watch?v=q-oLU2U1ZHM
Po podłączeniu konta, stwórz folder w Google Drive i wybierz go rozwijając listę (w moim przypadku jest to folder n8n_backup):

Następnie przeciągnij węzeł z „Upload file” do węzła „Loop Over Items”:

Najedź myszką po lewej stronie node „Schedule Trigger” i kliknij „Execute workflow”, by przetestować działanie automatyzacji:

Tak wygląda poprawnie wykonana automatyzacja:

U mnie 55 worklfows zostało przesłanych na mój Google drive. Sprawdź czy pliki zostały przesłane. U mnie wygląda to w następujący sposób:

To jeszcze nie koniec. Pozostało jeszcze ustawienie aktualizacji wysyłanych plików, by zapobiec ich duplikacji. Usuń node „Upload file”, dodaj do node „Convert to File” node „Google Drive” / „Update file”:

W sekcji „File to Update”, wybierz „By ID”:

Przejdź do Swojego Google Drive, wysuń opcje folderu i wybierz „Kopiuj link”:

W przeglądarce intenetowej otwórz nowe okno, w polu adresów kliknij prawym przyciskiem myszy i kliknij „wklej”. Skopiuj sekcję po „folder/” i skopiuj do momentu znaku „?”:

W node „Update file” wklej ten ciąg znaków w sekcji „File to Update” za polem „By ID”:

Przeciągnij węzeł z „Upload file” do node „Loop Over Items”, uruchom automatyzację klikając Execute Workflow:

Gotowe! Po pomyślnym wykonaniu automatyzacji w folderze Google Drive, data utworzenia pliku powinna się zaktualizować.
2. Automatyza – backup workflows i credentials
Stwórz nowy projekt workflow. Tak jak przy poprzedniej automatyzacji utwórz „Schedule Trigger”, dodaj do niego node „Execute Command”:

W sekcji „Command”, wklej komendę:
n8n export:workflow --all --output=/tmp/workflows.json && n8n export:credentials --all --output=/tmp/credentials.json

Do node „Execute Command” dodaj „Read/Write Files from Disk” / „Read File(s) From Disk”:

W sekcji „File(s) Selector”, wpisz /tmp/*.json:

Dodaj do node „Read/Write Files from Disk”, dodaj „Switch”:

Rozwiń listę w „value1”, wybierz contains i kliknij „Execute step”, po chwili napłyną dane:

Kliknij na „JSON”, przeciągnij „fileName” do sekcji „value1”:

Wpisz credentials tak jak na obrazku poniżej i kliknij „Add Routing Rule”, przeciągnij ponownie „fileName” do „value1”. Wpisz workflows:

Pamiętaj by obie zmienne miały wybrane „contains” z listy po prawiej stronie !!!
Dodaj teraz do node „Swich”, „Google Drive” / „Upload file”, ponownie wklej ID folderu jak przy pierwszej automatyzacji (pamiętaj wybrać „By ID”):

Analogicznie dodaj do drugiego węzła kolejny node „Upload file”, ustawiając ID folderu:

Wykonaj automatyzację by przesłać pliki do Google Drive, usuń oba node „Uplad file”. Natępnie dodaj dwa node „Update file”. Rozwiń listę w sekcji „From list” i dodaj kolejno credentials.json w node gdzie masz węzeł „Credentials”:

Analogicznie ustaw węzeł „Workflows”:

Uruchom automatyzacje i sprawdź czy pliki zaktualizowały się z zmienioną datą na Twoim dysku Google drive.
Wystarczy teraz aktywować automatyzację. Przeciągnij suwak w prawo i gotowe !!!

Chcesz więcej? Zerknij na nasz kurs pod adresem:
https://grupadm.pl/product/n8n-wejdz-do-automatyzacji-i-ai

