Automatizálás
n8n
Az n8n fair-code licencű munkafolyamat-automatizáló, amit saját szerveren futtatunk: vizuális node-szerkesztő, kód node-ok, ütemezett futások és végrehajtási előzmények.
Az n8n olyan munkafolyamat-automatizáló eszköz, amit a saját dokumentációja fair-code licencűként ír le. A munka nagy része vizuális: node-okat teszünk a vászonra, összekötjük őket, és a folyamat egy trigger feltételre elindul. Ugyanez az eszköz futhat felhőben vagy a saját infrastruktúránkon; nálunk az utóbbi, mert így az adat és a hitelesítő adatok nálunk maradnak.
Nem egyetlen feladatra használjuk. Egyszerre ad integrációs réteget külső API-khoz, ütemezett adatfeldolgozást és olyan lépéseket, ahol saját kód kell.
Hogyan épül fel egy munkafolyamat?
- Node-ok. Egy node lehet trigger, adatlekérés, feldolgozás vagy elágazás. Minden éles folyamathoz kell legalább egy trigger node, ami meghatározza, mikor induljon.
- Vászon és panelek. A szerkesztő központi része a canvas, ahol a node-okat összekötjük; az oldalsó és felső paneleken érjük el a hitelesítő adatokat, a változókat és a futások listáját.
- Hitelesítő adatok. Az API kulcsok és az OAuth titkok egy helyen, credentialként tárolódnak, és az app node-ok ezeken keresztül érik el a szolgáltatásokat.
- Kifejezések és kód. A node paramétereibe JavaScript kifejezéseket írhatunk, összetettebb logikához pedig a Code node ad JavaScript vagy Python futtatást.
- Futási előzmények. Minden végrehajtás rögzül, így egy hibát vissza lehet nézni; fejlesztés közben egy node kimenetét pinnelni is lehet, hogy ne kérjük le újra ugyanazt az adatot.
Üzemeltetés saját szerveren
Nálunk az n8n Docker Compose-ban fut. Az adatbázis alapértelmezésben SQLite, éles használatban viszont PostgreSQL-t adunk alá, mert a munkafolyamatok, a credentialök és a futási adatok mind a központi adatbázisban élnek.
Nagyobb terhelésnél a queue mode ad skálázhatóságot: egy main instance fogadja a triggereket, a worker processzek végzik a futásokat, a köztes sor pedig Redisben van. A workereknek ugyanahhoz az adatbázishoz kell hozzáférniük, és a main instance titkosítási kulcsát is meg kell osztani velük, különben nem érik el a tárolt credentialöket. A worker párhuzamossága beállítható.
A telepítési módok közül a hivatalos dokumentáció a Docker Compose-t és az egysoros telepítőt ajánlja; az npm-es telepítés a 3.0 verziótól elavultnak számít.
Amire figyelni kell
- Memória. Az n8n nem korlátozza, mennyi adatot dolgozhat fel egy node. A memóriahasználatot a JSON adat mennyisége, a bináris adatok mérete, a node-ok száma, a Code node és a manuális futtatás is növeli. Kevés memóriánál heap hiba jelenik meg a naplóban; a V8 számára a NODE_OPTIONS és a max-old-space-size beállításával adhatunk több helyet, a feldolgozást pedig kisebb batch-ekre bontva csökkenthetjük a csúcsot.
- Futási adatok. A lezárt futások törlése (pruning) alapból be van kapcsolva: az életkor (alapértelmezésben 336 óra, azaz 14 nap) vagy a darabszám alapján töröl a rendszer. A címkézett vagy értékelt futásokat nem törli. SQLite esetén a felszabaduló lemezterület nem jön vissza automatikusan, ahhoz VACUUM kell.
- Licenc. A kód a Sustainable Use License alatt érhető el, ami a saját belső üzleti célú vagy a nem kereskedelmi használatot engedi; a fájlnévben .ee jelölést viselő részek külön enterprise licenc hatálya alá esnek.
- Mentés. Az adatbázis és a titkosítási kulcs együtt kell a helyreállításhoz; a kulcs nélkül a mentett credentialök nem lesznek olvashatók.
Hogyan illeszkedik a rendszerünkbe?
Az n8n a determinisztikus automatizálás rétege: ahol a folyamat lépései előre rögzíthetők, ott node-okkal dolgozunk, mert az olvasható és visszakövethető. A Docker adja a futtató környezetet, a PostgreSQL az adatbázist, az n8n pedig a saját MCP szerverén keresztül külső ügynököknek is átadható. A döntést igénylő, nem kiszámítható részeket a Hermes Agent végzi, a workflow-t pedig a stabil, ismétlődő lépésekre tartjuk fenn.
Tovább olvasás
Nálunk az n8n a Docker Compose-os stack része: ütemezett adatfeldolgozást és ismétlődő tartalomfolyamatokat futtat, és ott lép be, ahol a folyamat pontosan leírható.