Automatyzacja z wykorzystaniem n8n – z czym to się je?

O narzędziu n8n w ostatnim czasie słyszę prawie na każdym kroku. Rozbudowana, ale zarazem prosta w obsłudze, aplikacja do automatyzacji self-hosted. Niby na ten moment żyję bez tego, nie mam potrzeby, no ale zapoznać się z samym narzędziem warto. A może jednak coś ciekawego się dowiem i zmienię zdanie 😉

Tworzymy w nim automatyzacje (przepływy) czyli ciągi zadań (node). Do pomocy mamy masę bibliotek i rozszerzeń, które pomogą nam wykonać integrację z innymi aplikacjami.

 

# Uruchomienie z wykorzystaniem Dockera

Wykorzystując oficjalną dokumentację od n8n https://docs.n8n.io/hosting/installation/docker/#prerequisites najpierw utworzymy wolumin na dane dla aplikacji, a następnie uruchamiamy kontener z wykorzystaniem tego woluminu.

 

# Instalacja na Proxmox

W przypadku proxmoxa wystarczy wykorzystać Helper-Scripts https://community-scripts.github.io/ProxmoxVE/scripts?id=n8n . Następnie wklejamy to do naszego proxmox shella. Podczas instalacji wybieramy domyślne ustawienia.

 

# Tworzenie automatyzacji

n8n -> Overview -> Create workflow
Potrzebujemy zawsze trigger, który uruchomi zadanie, a następnie kolejne nody.

– node, czyli kolejne kroki w automatyzacji
– Tworzenie nowego serwera, na którym będziemy wykonywać automatyzację:
password / private key , adres IP serwera, port, nazwa usera i hasło
– Aby automatyzacja działała musimy ustawić jej status na Active
– Lista wszystkich automatyzacji: n8n -> Overwiew -> Workflows
– Możemy wykonać kopię całego naszego przepływu; w prawy górym roku … -> Duplicate
– Możemy również skopiować cały node z obecnymi ustawieniami, PPM na Node -> Duplicate -> Podłączyć do flow
– Zmiana nazwy node: PPM na node -> Open -> Na górze przy >_\

 

Przykład 1:
Trigger manually -> SSH -> Execute a command -> Wybieramy serwer (jeżeli nie mamy żadnego to Create new credential) -> Command -> podajemy komendę (tak jak byśmy wpisywali bezpośrednio na serwerze), working Directory możemy wybrać ścieżkę gdzie będziemy pracować -> Test workflow
Żeby sprawdzić, klikamy PPM na danym nodzie -> Open -> W output będzie zwrotka z komendy

Przykład 2:
Spróbujmy dorzucić do powyższego workflowa AI. Sprawmy, aby AI podało komendę, która następnie będzie uruchamiana na serwerze przez SSH.
Pomiędzy nodami dodajemy kolejny. + -> OpenAI -> Message a model -> Wybieramy poświadczenia (do dodania nowego wystarczy API Key wygenerowany w OpenAI) -> Resource: Text -> Operation: Message a Model -> Wybieramy model, może być jakiś Latest -> Prompt: wpisujemy prompt do AI -> włączamy Output as JSON
Następnie edytujemy node SSH i z lewej strony wybieramy zmienną, która przechowuje komendę zwróconą przez OpenAI. Drag & Drop do sekcji Command w SSH.

Przykład 3:
Zmodyfikujmy przykład 1. Instalacja nginx -> Uruchomienie usługi -> Odblokowanie portu na firewall -> Pobranie pliku z serwera -> Skopiowanie do katalogu WWW

 

# Uruchomienie SSL (HTTPS)

SSL konieczny jest gdybyśmy chcieli np. wykorzystywać API telegram.

Tworzymy konto na cloudflare -> podajemy domenę -> Continue -> domyślne ustawienia -> Darmowy plan -> wszystko na domyślnych ustawieniach -> Otrzymamy dwa serwery DNS, które musimy ustawić dla naszej domeny

Następnie na serwerze uruchomimy kontener traefik, który przekieruje ruch na https i będzie odpowiedzialny za certyfikaty SSL. Dodatkowo w kontenerze n8n musimy ustawić, aby obsługiwał domenę.

Kolejnym krokiem jest utworzenie tunelu pomiędzy cloudflare, a naszą maszyną. Cloudflare -> Tunnels -> Create a tunnel -> Cloudflared -> podajemy nazwę -> Wybieramy system i kopiujemy wygenerowany kod -> wklejamy na serwerze -> uruchamiamy tunel z wykorzystaniem komendy podanej przez cloudflare -> Dodajemy subdomenę i wybieramy protokół https oraz wklejamy nasz adres IP -> odznaczamy TLS verification

 

# Integracja z Telegram (narzędzie dowolne)

Wybieramy odpowiedni trigger, np. Telegram – On channel post. W Create credential mamy instrukcje do poszczególnych API. Tworzymy nowego bota i generujemy nowy token.
All updates (*) – tryb nasłuchiwania, cokolwiek stanie się z botem wywoła się trigger.

W przypadku telegrama: https://t.me/nazwa_bota i następnie możemy go uruchomić i wysłać jakąś wiadomość.

Na końcu warto otrzymać jakąś zwrotkę, efekt itp. Możemy dostać odpowiedź na telegrama. Możemy np. najpierw zrobić wrzutkę do AI, żeby podsumował wynik poprzedniego noda, następnie dodać Telegram „Send a text message”. Message -> Send Mesage -> ID profilu (id podane w konwersacji) -> Text, wrzucamy podsumowanie z poprzedniego noda.

 

Wpis powstał na bazie szkolenia „Podstawy automatyzacji w n8n” autorstwa Grupy ADM.

W celu świadczenia usług na najwyższym poziomie stosujemy pliki cookies, które będą zamieszczane w Państwa urządzeniu (komputerze, laptopie, smartfonie). W każdym momencie mogą Państwo dokonać zmiany ustawień Państwa przeglądarki internetowej i wyłączyć opcję zapisu plików cookies. View more
Zaakceptuj