Language: hu
n8n VPS-en: saját automatizálási platform felesleges kézi munka nélkül
Megérkezik egy kérés a webhelyről. Az n8n ellenőrzi az adatokat, megkeresi a duplikációkat, létrehoz egy üzletet, AI segítségével választervezetet készít, és értesíti a vezetőt a Telegramban. Az ember csak akkor avatkozik be, amikor döntésre van szükség, nem azért, hogy adatokat másoljon a böngészőlapok között.
Az alábbiakban áttekintjük, hogyan működik az n8n, és hogyan telepíthető VPS-re Docker Compose, PostgreSQL, HTTPS és elkülönített kódvégrehajtás használatával.
Az n8n hét lépésben
Minimális indítási terv:
- Hozzon létre egy VPS-t, és irányítson rá egy aldomaint, például
n8n.example.com. - Telepítse a Dockert és a Docker Compose-t.
- Indítsa el az n8n-t PostgreSQL-lel, külső feladatfuttatóval és Caddyvel.
- Nyissa meg a felületet HTTPS-en keresztül, és hozza létre a tulajdonosi fiókot.
- Csatlakoztassa a Telegramot, egy CRM-et, az e-mailt vagy bármely külső API-t.
- Állítsa be a hibakezelést és a végrehajtási adatok megőrzési idejét.
- Automatizálja az adatbázis, az adatok és a titkosítási kulcs biztonsági mentését.
Kis éles telepítéshez érdemes 2 vCPU-val és 4 GB RAM-mal kezdeni. Teszteléshez gyakran elég 2 GB, de a PostgreSQL, a Docker és az egyidejű folyamatok gyorsan felhasználják a fennmaradó erőforrást.
Mi az n8n, és hogyan működik?
Az n8n munkafolyamat-automatizálási platform. A munkafolyamat csomópontokból áll: az egyik elindítja a folyamatot, a következők lekérik és átalakítják az adatokat, az utolsó pedig végrehajt egy műveletet.
Egy egyszerű munkafolyamat így néz ki:
Webhook → data validation → CRM → Telegram → website response
A láncot webhook, ütemezés, e-mail, üzenet vagy egy külső szolgáltatás eseménye indíthatja el. A csomópontok között feltételek, ciklusok, szűrők, várakozások és hibakezelés használható.
Az n8n egyik erőssége, hogy az automatizálás nem korlátozódik a kész integrációkra. A HTTP Request segítségével bármely API-val rendelkező szolgáltatás meghívható, a Code csomópontban pedig JavaScript vagy Python használatával egyedi logika írható. Az n8n ezért valahol egy egyszerű no-code építő és az egyedi szerveroldali kód között helyezkedik el.
Miért több egyszerű adattovábbításnál?
Az n8n akkor hasznos, amikor egy folyamat több rendszeren ível át és döntést igényel:
form → validation → duplicate search → AI assessment → manager approval → CRM
Az embert csak az ellenőrzési pontnál lehet bevonni. Például az AI elkészíti a választ, de az üzenet csak a munkatárs jóváhagyása után jut el az ügyfélhez.
Tipikus felhasználási területek:
- értékesítés és támogatás: kérések gyűjtése, leadek kiosztása és üzletek létrehozása;
- tartalom és AI: tervezetek készítése, megkeresések osztályozása és közzététel jóváhagyás után;
- DevOps: leállási értesítések, Git-webhookok és API-ellenőrzések;
- belső műveletek: táblázatok, e-mail, naptárak és vállalati rendszerek szinkronizálása.
A self-hosted telepítés ellenőrzést ad a folyamat és az adatbázis felett, de a külső szolgáltatásokat nem teszi helyivé. A Telegramnak, CRM-nek vagy felhős AI-modellnek küldött adatok elhagyják a VPS-t.
n8n Cloud vagy saját szerver
| Paraméter | n8n Cloud | n8n VPS-en |
|---|---|---|
| Indítás | Nincs szükség szerverbeállításra | Domain, Docker és HTTPS szükséges |
| Frissítések | Az n8n kezeli | A tulajdonos kezeli |
| Adatbázis és fájlok | A szolgáltatás infrastruktúrájában | A kiválasztott szerveren |
| Skálázás | A felhőcsomag szerint | Függetlenül konfigurálható |
| Felelősség | Kevesebb adminisztráció | A biztonsági mentés, a biztonság és a monitorozás a tulajdonos felelőssége |
| Kinek ajánlott | Gyors kezdés DevOps nélkül | Ellenőrzéshez, testreszabáshoz és folyamatosan futó folyamatokhoz |
A Community Edition ingyenesen self-hosted üzemeltethető saját szerveren személyes és belső üzleti folyamatokhoz. Az n8n azonban nem hagyományos nyílt forráskódú licenc alatt, hanem a fair-code Sustainable Use License alapján terjesztett szoftver. Ez engedélyezi a belső használatot és a módosítást, de nem teszi lehetővé, hogy egyszerűen telepítse az n8n-t, hozzáadja saját logóját, és önálló SaaS-ként értékesítse a hozzáférést. Ilyen termékhez a licencfeltételeket külön meg kell vizsgálni.
Az n8n szerverkövetelményei
A terhelés az adatmennyiségtől, a párhuzamosságtól és a műveletek típusától függ. A fájlok, a hosszú listák, a Code csomópontok és az AI-munkafolyamatok több memóriát igényelnek, mint kis JSON-adatok továbbítása az API-k között.
| Forgatókönyv | Kezdő konfiguráció |
|---|---|
| Tesztek és személyes, szövegalapú munkafolyamatok | 1 vCPU, 2 GB RAM, 20 GB NVMe |
| Kis éles telepítés | 2 vCPU, 4 GB RAM, 25–40 GB NVMe |
| Egyidejű folyamatok, AI vagy fájlok | 4 vCPU, 8 GB RAM vagy több |
| Több worker folyamat queue mode-ban | A végrehajtási mennyiséghez igazítva |
Az SQLite tanuláshoz és kis, egyetlen példányból álló telepítéshez megfelelő. Éles környezetben a PostgreSQL kényelmesebb: egyszerűbbek a biztonsági mentések, és később könnyebb áttérni queue mode-ra.
Az n8n telepítése VPS-re
Ez a példa Ubuntu 24.04-et, PostgreSQL-t, Caddyt és külső feladatfuttatót használ. A n8n.example.com értékét és az időzónát cserélje a saját értékeire.
1. DNS beállítása és a szerver előkészítése
Hozzon létre a VPS IPv4-címére mutató A DNS-rekordot, majd csatlakozzon SSH-n keresztül:
ssh root@SERVER_IP
apt update && apt upgrade -y
apt install -y ca-certificates curl ufw opensslTelepítse a Docker Engine-t és a Compose-bővítményt a hivatalos tárolóból:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose versionCsak az SSH, a HTTP és a HTTPS számára engedélyezzen hozzáférést:
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enableNe zárja be a jelenlegi SSH-munkamenetet, amíg nem igazolta, hogy az új kapcsolat működik.
2. Környezeti változók létrehozása
Készítse elő a könyvtárat:
mkdir -p /opt/n8n
cd /opt/n8nHozza létre a .env fájlt. Az alábbi parancsok azonnal különálló véletlenszerű titkokat generálnak a PostgreSQL, az n8n titkosítása és a feladatfuttató számára:
cat > .env <<EOF
N8N_VERSION=stable
N8N_HOST=n8n.example.com
GENERIC_TIMEZONE=Europe/Berlin
POSTGRES_DB=n8n
POSTGRES_USER=n8n
POSTGRES_PASSWORD=$(openssl rand -hex 32)
N8N_ENCRYPTION_KEY=$(openssl rand -hex 32)
RUNNERS_AUTH_TOKEN=$(openssl rand -hex 32)
EOF
chmod 600 .envA stable tag kényelmes az első indításhoz. A telepítés ellenőrzése után jobb egy konkrét n8n-verziót rögzíteni, így a következő image-frissítés nem történik meg váratlanul.
Ne veszítse el az N8N_ENCRYPTION_KEY értékét. Az n8n ezt a kulcsot használja a tárolt jelszavak, tokenek és egyéb hitelesítő adatok titkosítására. Ha csak a PostgreSQL-t állítja vissza a kulcs nélkül, a rekordok az adatbázisban maradnak, de az n8n nem tudja elolvasni őket.
3. Docker Compose-fájl létrehozása
Hozza létre a compose.yaml fájlt:
services:
postgres:
image: postgres:18-alpine
restart: unless-stopped
environment:
POSTGRES_DB: ${POSTGRES_DB}
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
PGDATA: /var/lib/postgresql/data
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n:${N8N_VERSION}
restart: unless-stopped
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: "5432"
DB_POSTGRESDB_DATABASE: ${POSTGRES_DB}
DB_POSTGRESDB_USER: ${POSTGRES_USER}
DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
N8N_HOST: ${N8N_HOST}
N8N_PORT: "5678"
N8N_PROTOCOL: https
N8N_EDITOR_BASE_URL: https://${N8N_HOST}
N8N_WEBHOOK_URL: https://${N8N_HOST}/
N8N_PROXY_HOPS: "1"
GENERIC_TIMEZONE: ${GENERIC_TIMEZONE}
TZ: ${GENERIC_TIMEZONE}
N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
N8N_BLOCK_ENV_ACCESS_IN_NODE: "true"
N8N_RUNNERS_MODE: external
N8N_RUNNERS_AUTH_TOKEN: ${RUNNERS_AUTH_TOKEN}
N8N_RUNNERS_BROKER_LISTEN_ADDRESS: 0.0.0.0
EXECUTIONS_DATA_PRUNE: "true"
EXECUTIONS_DATA_MAX_AGE: "168"
EXECUTIONS_DATA_PRUNE_MAX_COUNT: "10000"
volumes:
- n8n_data:/home/node/.n8n
expose:
- "5678"
depends_on:
postgres:
condition: service_healthy
n8n-runner:
image: n8nio/runners:${N8N_VERSION}
restart: unless-stopped
environment:
N8N_RUNNERS_AUTH_TOKEN: ${RUNNERS_AUTH_TOKEN}
N8N_RUNNERS_TASK_BROKER_URI: http://n8n:5679
depends_on:
- n8n
caddy:
image: caddy:2-alpine
restart: unless-stopped
environment:
N8N_HOST: ${N8N_HOST}
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
depends_on:
- n8n
volumes:
postgres_data:
name: n8n_postgres_data
n8n_data:
name: n8n_data
caddy_data:
name: n8n_caddy_data
caddy_config:
name: n8n_caddy_configA külső feladatfuttató a fő n8n-folyamattól elkülönítve hajtja végre a kódot. Ez biztonságosabb a belső módnál, és csökkenti annak esélyét, hogy egy Code csomópontban fellépő hiba hatással legyen a szerkesztőre és a webhook-feldolgozásra.
4. HTTPS engedélyezése
Hozza létre a Caddyfile fájlt:
{$N8N_HOST} {
reverse_proxy n8n:5678
}Ha a DNS már a VPS-re mutat, és a 80-as és 443-as port elérhető, a Caddy automatikusan TLS-tanúsítványt szerez. A belső 5678-as port nincs kitéve az internetnek: kívülről csak a 80-as és a 443-as port érhető el, a Caddy pedig a Docker-hálózaton keresztül éri el az n8n-t.
Az N8N_WEBHOOK_URL és az N8N_PROXY_HOPS változókra azért van szükség, hogy a szerkesztő helyes nyilvános webhook-címeket generáljon, és megbízzon egy reverse proxy fejléceiben.
5. Az n8n indítása
Ellenőrizze a végleges konfigurációt, és indítsa el a konténereket:
docker compose config
docker compose up -d
docker compose ps
docker compose logs --tail=100 n8n caddyNyissa meg:
https://n8n.example.comHozza létre a tulajdonosi fiókot. Ne ossza meg a jelszavát a kollégákkal: csapatmunka esetén használjon külön fiókokat, és mindenkinek csak a szükséges hozzáférést adja meg.
Az első hasznos munkafolyamat
Jó teszt egy webhelyről érkező kérés feldolgozása:
- Adjon hozzá egy
WebhookcsomópontotPOSTmetódussal. - Az
Edit Fieldshasználatával csak a nevet, az e-mail-címet és a forrást tartsa meg. - Egy kötelező adatokat nélkülöző kérés elutasításához használjon
Ifcsomópontot. - Hozzon létre üzletet a CRM-ben, vagy küldjön kérést a
HTTP Requestsegítségével. - Adjon hozzá Telegram-értesítést.
- Fejezze be a láncot egy
Respond to Webhookcsomóponttal. - A tesztelés után aktiválja a munkafolyamatot, és a teszt-webhookot cserélje le az éles URL-re.
Ez a példa azonnal ellenőrzi a domaint, a HTTPS-t, a bejövő kéréseket, a hitelesítő adatokat és a külső integrációt. Ezután adjon hozzá külön Error Workflow-t, amely értesíti, ha a fő lánc hibázik.
Az n8n védelme telepítés után
Egy telepített n8n-példány nem lesz automatikusan megbízható. Indítás után győződjön meg arról, hogy:
- a szerkesztő csak HTTPS-en keresztül érhető el;
- a
.envjogosultsága600, és nem kerül Gitbe; - a külső API-kulcsok csak a minimálisan szükséges jogosultságokkal rendelkeznek;
- minden webhook ellenőrzi a forrás aláírását vagy titkát;
- a végrehajtási előzmények automatikusan törlődnek;
- a kritikus munkafolyamatok hibái eljutnak az adminisztrátorhoz.
A Community csomópontok csomagként települnek, és hozzáférhetnek a munkafolyamat adataihoz és a szerverhez. Ismeretlen csomópontokat ne adjon hozzá ellenőrzés nélkül. Ha nincs rájuk szüksége, tiltsa le őket az N8N_COMMUNITY_PACKAGES_ENABLED=false beállítással.
Futtassa a beépített auditot:
docker compose exec n8n n8n auditSegít azonosítani a védelem nélküli webhookokat, a kockázatos csomópontokat és a hitelesítő adatok problémáit, de nem helyettesíti a kézi ellenőrzést.
Végrehajtási előzmények és személyes adatok
Az n8n hibakereséshez tárolja a bemeneti és kimeneti adatokat. Velük együtt e-mail-üzenetek, telefonszámok, dokumentumok és API-válaszok is az adatbázisban maradhatnak.
A fenti konfigurációban a végrehajtások hét nap után törlődnek, számuk pedig 10 000-re van korlátozva. Érzékeny folyamatoknál az adatmegőrzési szabályzatnak megfelelően válassza ki a megőrzési időt, és a munkafolyamat vége előtt távolítsa el a felesleges mezőket.
Biztonsági mentések és frissítések
A helyreállításhoz szükséges egy PostgreSQL dump, az n8n_data volume, a konfigurációs fájlok, az .env és a benne tárolt N8N_ENCRYPTION_KEY. Másolás előtt állítsa le a feldolgozókat, miközben a PostgreSQL maradjon futó állapotban. Ez rövid megszakítást okoz a munkafolyamatok végrehajtásában:
cd /opt/n8n
mkdir -p backup
docker compose stop n8n n8n-runner
docker compose exec -T postgres sh -c \
'pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB"' \
| gzip > "backup/n8n-db-$(date +%F).sql.gz"
docker run --rm \
-v n8n_data:/source:ro \
-v "$PWD/backup":/backup \
alpine sh -c \
'tar -czf /backup/n8n-data-$(date +%F).tar.gz -C /source .'
tar -czf "backup/n8n-config-$(date +%F).tar.gz" \
.env compose.yaml Caddyfile
docker compose start n8n n8n-runnerA .env fájlt tartalmazó archívum titkokat foglal magában: titkosítsa, és a VPS-en kívül tárolja. Rendszeresen ellenőrizze a biztonsági mentést egy próba-visszaállítással.
Frissítés előtt készítsen biztonsági mentést, és tekintse át a kiadási megjegyzéseket:
cd /opt/n8n
docker compose pull
docker compose up -d
docker compose psA feladatfuttatónak és a fő konténernek ugyanazt a verziótagot kell használnia.
Mikor válik szükségessé a skálázás?
Ne kezdjen Redis-szel és több workerrel, mielőtt valódi terhelés lenne. Egy PostgreSQL-t használó példány könnyebben karbantartható, és általában elegendő kisebb belső folyamatokhoz.
A queue mode akkor válik szükségessé, amikor a hosszú feladatok késleltetik a webhookokat, sok munkafolyamat indul egyszerre, vagy a fájlfeldolgozás rendszeresen felhasználja az összes memóriát. Ilyenkor a fő példány fogadja az eseményeket, a Redis elosztja a feladatokat, a workerek pedig párhuzamosan hajtják végre őket. Minden komponensnek ugyanahhoz a PostgreSQL-adatbázishoz kell csatlakoznia, és ugyanazt az N8N_ENCRYPTION_KEY értéket kell használnia.
Melyik VPS-t válassza az n8n-hez?
Az n8n, a PostgreSQL, a Caddy és a feladatfuttató együttes használatához érdemes 2 vCPU-val, 4 GB RAM-mal és NVMe-meghajtóval kezdeni. A tropic.host Light csomagja megfelel ennek a konfigurációnak: 2 vCPU, 4 GB RAM és 25 GB NVMe. Ez elegendő az első éles munkafolyamatokhoz nehéz fájlfeldolgozás nélkül.
Dokumentumokhoz, nagy adathalmazokhoz és sok egyidejű AI-munkafolyamathoz a 8 GB RAM jobb választás. A stabil hálózat szintén fontos: a webhookoknak, az OAuth callbackeknek és az ütemezett feladatoknak folyamatosan elérhetőnek kell maradniuk.
Összegzés
Az n8n az ismétlődő műveleteket világos vizuális folyamatokká alakítja: a kész csomópontok felgyorsítják az indítást, a HTTP Request szinte bármely API-t összeköt, a Code csomópont pedig lehetővé teszi saját logika hozzáadását.
A self-hosted verzió ellenőrzést ad a szerver és az adatbázis felett, de HTTPS-t, korlátozott kulcsokat, előzménytisztítást és ellenőrzött biztonsági mentéseket igényel. Az N8N_ENCRYPTION_KEY értékét a PostgreSQL-lel együtt tárolja: nélküle a visszaállított hitelesítő adatok nem fejthetők vissza.
FAQ
Használható az n8n ingyenesen?
Igen. A Community Edition saját szerveren ingyenesen üzemeltethető személyes és belső folyamatokhoz. A hosted n8n önálló SaaS-ként történő továbbértékesítését a fair-code licenc korlátozza.
Telepíthető az n8n domain nélkül?
Helyi teszteléshez igen. Nyilvános webhookokhoz és OAuth-hoz jobb domaint és HTTPS-t használni.
Mennyi RAM-ra van szüksége az n8n-nek?
Az egyszerű személyes munkafolyamatok gyakran 2 GB RAM-mal is működnek. PostgreSQL-lel, Caddyvel és feladatfuttatóval az n8n számára a 4 GB ésszerűbb; a fájlok és az egyidejű végrehajtások 8 GB-ot vagy többet igényelhetnek.
Minden adat a VPS-en marad?
Csak az az adat marad ott, amelyet a munkafolyamat nem küld tovább. Az adatbázis és a végrehajtási előzmények a VPS-en tárolódnak, de a Telegram-, CRM- vagy külső AI-modellcsomópontok a kiválasztott adatokat elküldik a megfelelő szolgáltatásnak.
Mit kell tartalmaznia egy n8n-biztonsági mentésnek?
Egy PostgreSQL dumpot, az n8n_data volume-ot, a compose.yaml-t, a Caddyfile-t, az .env fájlt és a benne tárolt N8N_ENCRYPTION_KEY értéket. A biztonsági mentést titkosítva, a VPS-en kívül tárolja, és visszaállítással ellenőrizze.
